Étape 1: Une histoire d’échoue
N’hésitez pas à sauter cette étape. Je suis juste documenter comment je suis arrivé à cette solution spécifique.
TL; DR: bien que ce projet réussit, je doute si je vais jamais utiliser les kits de 433 / 315MHz pour quelque chose de sérieux (du moins pas les plus simples). Le bruit RF l’Arduino lui-même génère (surtout si connecté à et [et/ou] transmission série) rend ces choses plutôt inutile à mon humble avis. Plus précisément - Arduino Micro est le pire (et Pendant que nous y sommes : le Micro met aussi longtemps puissante pour réinitialiser. Il. A obtenu de ma poitrine).
Au début, cela a fonctionné
Il y avait un prototype fonctionnel (voir photo). Il avait un algorithme différent, mais cela a fonctionné.
Puis je suis rentré à la maison, il construit à nouveau (voir photo de Tupperware), cela a fonctionné, mais avec beaucoup de fausses détections (détecté signal lorsqu’il n’était pas tout), mais j’ai réussi à affiner les choses et cela a fonctionné.
Puis vint le Micro de l’Arduino
Puis j’ai essayé un plus petit récepteur basé sur un Arduino Micro (voir photo porte-savon), et tout s’est mal passé : la chose seulement pouvait détecter le signal si c’était à quelques centimètres de l’émetteur (et même dans ce cas, c’est un peu incertain).
Alors j’ai commencé à faire quelques "organiques debugging"(TM): J’ai connecté le buzzer piezo directement sur la broche de données du récepteur et commencé à écouter - la chose a été fait beaucoup de bruit RF: même si l’émetteur était éteint.
Même dans les champs (à l’écart de tout électrique).
Il s’est amélioré quand je l’ai dit d’arrêter d’utiliser le numéro de série, mais encore - vous pouvez écouter le son attaché (avant / après que j’ai allumé l’émetteur, et une fois qu’il obtient 20 à 30cm de l’émetteur).
Pour référence, j’ai construit un circuit avec seulement la réception et un buzzer piezo sur la broche de données. Vous pouvez écouter le son attaché (avant / après que je me tourne sur l’émetteur et alors que je [bruyamment] marche loin ~ 2m).
Donc j’ai décidé d’aller grand public
J’ai commencé à réfléchir : l’idée de ne pas avoir un Arduino du côté de l’émetteur est peut-être stupide. Peut-être les bibliothèques comme VirtualWire ou RadioHead sont là pour obtenir quoi que ce soit à un tel niveau de signal/bruit faible. Alors j’ai essayé un exemple simple de « Hello » entre un Arduino comme transmetteur et le Micro de l’Arduino comme récepteur, a reçu aucun Accueil. Commute entre la grande Arduino et le Micro, Nada.
J’ai brûler mon récepteur ?
Après quelques expériences même le prototype « Tupperware » (celui qui a l’habitude de travailler) est devenu bien pire. J’ai donc décidé j’ai endommagé le récepteur. Peut-être au cours de toutes ces expériences, une esquisse de l’émetteur a été téléchargée vers la machine mal et envoyée des signaux aux données du récepteur. Pas sûr que c’est important (si vous connaissez la réponse, s’il vous plaît commentaire), mais quand vous ne savez pas si vous avez brûlé le récepteur seul vous avez ou non - c’est vraiment nul.
Donc j’ai commandé un peu plus de kits RF [et attendit...]
Quand les nouveaux kits sont arrivés - nada. Je ne pouvais pas l’exemple VirtualWire fonctionne. Alors j’ai cherché sur le forum et trouvé quelqu'un avec un problème similaire (je souligne) :
J’ai acheté ce kit et l’utilisation VirtualWire avait il fonctionne parfaitement... Puis soudain, il a cessé de fonctionner. ... J’ai utilisé pour obtenir beaucoup de bruit qui traverse... maintenant il n’y a rien.
et il y a une réponse en disant:
Source d’alimentation USB sont très mauvais. Essayez la mise sous tension de la batterie. Petite distance entre tx et rx ne sont pas bonnes. Petite distance au PC n’est pas bonne (ils sont comme un brouilleur hf).
J’ai donc essayé de déboguer des trucs sans courant série ou externe
Comme un « outil de débogage sans fil » J’ai essayé d’utiliser un écran LCD I2C, mais le problème consistait à faire fonctionner sur batterie (un câble série à un PC ou même prise rf confitures mal), mais je n’avais un vieux Arduino (je vais commander quelques plus modernes bientôt) avec un cavalier de sélection manuels USB/batterie, et ce n’est pas trivial pour obtenir le travail de moniteur LCD I2C en mode « battery » (si vous avez des problèmes similaires Voici un howto je l’ai écrit).
Succès
Une fois que j’ai eu le problème de l’écran LCD de la route, j’ai écrit une version de stick2cane qui a présenté l’histogramme (voir algorithme plus tard. Il est beaucoup plus simple que la précédente). Le truc était de voir les histogrammes visuellement et étudiez-les. Aucun montant de débogage serial ne pourrait fournir ces connaissances (à moins que vous importer csv ou json via serial - une idée pour un projet futur;)).