Étape 7: Le récepteur
Mon récepteur n’est pas une unité finie pour ce système, c’est plutôt un projet antérieur que j’ai modifiée pour agir comme un récepteur. L’unité se compose d’un rudimentaire Arduino ATmega328p monté dans un boîtier en plastique avec un I2C afficheur à cristaux liquides 16 x 2, un relais de 10 a 240VAC, une LED RGB, un signal sonore et un émetteur/récepteur NRF24L01. L’idée ici est que lorsqu’un signal d’alarme est reçu l’écran LCD affiche un message et clignote pour un RGB LED, le signal sonore retentit et le relais commute un projecteur de sécurité ou quelque chose de même élevée alimenté.
Mon récepteur inclut également une autre Arduino Uno avec Ethernet Shield qui est programmé pour accéder à un service en ligne appelé Twilio qui enverra un message texte SMS sur mon téléphone portable. Cependant, je me concentrerai uniquement sur le circuit de réception ATmega328p, si vous voulez inclure cette fonctionnalité dans votre appareil, puis dirigez-vous vers ici pour apprendre comment. Mon code montre comment j’ai envoyé une sortie numérique du circuit récepteur ATmega328p à l’Arduino Uno pour déclencher le code SMS envoi. Notez également que mon récepteur abrite une carte à 4 voies de relais, mais mon code utilise uniquement l’un de ces relais.
Si nous prenons un coup d’oeil sur le code :
Ici, nous mettons une instance pour l’écran LCD, appelé « lcd ». Les fichiers d’en-tête inclus font tous partie de la bibliothèque de LiquidCrystal_I2C trouvée ici.
Ensuite, nous avons créé l’instance de NRF24L01 utilisant la même méthode que l’émetteur à veiller à ce que nous utilisons les mêmes adresses de tuyau.
La partie suivante du code définit les diverses variables de l’esquisse. La durée de l’alarme et la durée de la sonnerie sont configurables ici - j’ai la durée de sonnerie définie à 0 en ce moment comme il pousse ma femme folle chaque fois que je le tester:)
Le code d’installation configure les broches GPIO, envoie un message à l’écran LCD et la LED verte clignote en dix fois. Puis il configure le NRF24L01 avec le même débit de données et le canal comme l’unité émettrice et commence à écouter pour les transmissions entrantes.
La boucle principale appelle simplement la fonction checkRadio() maintes et maintes fois.
La fonction checkRadio() fonctionne simplement en vérifiant toutes les données reçues et si ces données sont égales à 1, puis sautent à la fonction triggerAlarm().
La fonction triggerAlarm() d’abord envoie un signal de message texte à mon autre Arduino (non inclus dans ce Instructable). Puis le reste est ce qu’on appelle le code non-bloquant pour nous permettent de travailler avec des retards et fondamentalement sonne l’alarme pour une durée prédéterminée (ALARM_DURATION) avant de revenir le système à un état « armé ».
Amusez-vous!