Table des matières:
- Étape 1: Modifications de l'émetteur
- Étape 2: Modifications du récepteur: Ajout des écrans LCD PIC16F887 et HD44780
- Étape 3: Quelques références…
- Étape 4: Conclusions et travaux futurs
Vidéo: Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2 : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Dans la première partie de cette instructable, j'ai montré comment programmer un PIC12F1822 à l'aide du compilateur MPLAB IDE et XC8, pour envoyer une chaîne simple sans fil à l'aide de modules TX/RX 433MHz bon marché.
Le module récepteur a été connecté via un adaptateur de câble USB vers UART TTL à un PC, et les données reçues ont été affichées sur RealTerm. La communication a été effectuée à 1200 bauds et la portée maximale atteinte était d'environ 20 mètres à travers les murs. Mes tests ont montré que pour les applications où il n'y a pas besoin d'un débit de données élevé et d'une longue portée, et pour une transmission continue, ces modules fonctionnaient exceptionnellement bien.
La deuxième partie de ce projet montre comment ajouter un microcontrôleur PIC16F887 et un module LCD 16×2 caractères sur le récepteur. De plus, sur l'émetteur, un protocole simple est suivi avec l'ajout de quelques octets de préampli. Ces octets sont nécessaires au module RX pour ajuster son gain avant d'obtenir la charge utile réelle. Côté récepteur, le PIC est chargé d'obtenir et de valider les données qui s'affichent sur l'écran LCD.
Étape 1: Modifications de l'émetteur
Sur la première partie, l'émetteur envoyait une simple chaîne toutes les quelques ms en utilisant huit bits de données, un bit de démarrage et un bit d'arrêt à 1200 bits par seconde. Comme la transmission était presque continue, le récepteur n'a eu aucun mal à ajuster son gain aux données reçues. Sur la deuxième partie, le firmware est modifié pour que la transmission s'effectue toutes les 2,3 secondes. Ceci est réalisé en utilisant l'interruption du temporisateur de surveillance (réglée sur 2,3 s) pour réveiller le microcontrôleur, qui est mis en mode veille entre chaque transmission.
Afin que le récepteur ait le temps d'affiner son gain, quelques octets de préambule avec des temps LO courts "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" sont envoyés avant les données réelles. La charge utile est alors indiquée par un octet de début '&' et un octet d'arrêt '*'.
Par conséquent, le protocole simple est décrit comme suit:
(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&Bonjour InstWorld !*
De plus, un condensateur de découplage au tantale de 10 uF est ajouté entre le V+ et le GND du module RF pour éliminer l'ondulation causée par le module élévateur dc-dc.
Le débit en bauds est resté le même, mais mes tests ont montré qu'à 2400 bauds également, la transmission était efficace.
Étape 2: Modifications du récepteur: Ajout des écrans LCD PIC16F887 et HD44780
La conception du récepteur était basée sur le PIC16F887, mais vous pouvez utiliser un PIC différent avec peu de modifications. Dans mon projet, j'ai utilisé ce 40 broches C, car j'aurai besoin de broches supplémentaires pour les futurs projets basés sur cette conception. La sortie du module RF est connectée à la broche UART rx, tandis qu'un écran LCD 16x2 caractères (HD44780) est connecté via les broches PORTB b2-b7 pour afficher les données reçues.
Comme pour la partie 1, les données reçues sont également affichées sur RealTerm. Ceci est réalisé en utilisant la broche UART tx qui est connectée via un adaptateur de câble USB vers UART TTL à un PC.
En regardant dans le firmware, lorsqu'une interruption UART a lieu, le programme vérifie si l'octet reçu est un octet de début ('&'). Si oui, il commence à enregistrer les octets suivants, jusqu'à ce qu'un octet d'arrêt soit intercepté ('*'). Dès que la phrase entière est obtenue, et si elle est conforme au protocole simple décrit précédemment, elle est alors envoyée à l'écran lcd, ainsi qu'au port UART tx.
Avant de recevoir l'octet de début, le récepteur a déjà ajusté son gain en utilisant les octets de préambule précédents. Ceux-ci sont essentiels pour le bon fonctionnement du récepteur. Une simple vérification des erreurs de dépassement et de cadrage est effectuée, mais il ne s'agit que d'une implémentation de base de la gestion des erreurs UART.
En termes de matériel, quelques pièces sont nécessaires pour le récepteur:
1 x PIC16F887
1xHD44780
1 module RF Rx 433Mhz
1 condensateur au tantale 10 F (découplage)
1 trimmer 10 K (luminosité de la police LCD)
1 x résistance 220 Ω 1/4 W (rétroéclairage LCD)
1 x 1 KΩ 1/4 W
1 x antenne 433Mhz, 3dbi
Dans la pratique, le récepteur fonctionnait exceptionnellement bien dans des portées allant jusqu'à 20 mètres à travers les murs.
Étape 3: Quelques références…
Il existe de nombreux blogs sur le Web donnant des conseils sur la programmation et le dépannage du PIC en plus du site Web officiel de Microschip. J'ai trouvé ce qui suit très utile:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Étape 4: Conclusions et travaux futurs
J'espère que cette instructable vous a aidé à comprendre comment utiliser les modules RF et les microcontrôleurs Pic. Vous pouvez ajuster votre micrologiciel à vos propres besoins et inclure le CRC et le cryptage. Si vous souhaitez rendre votre conception encore plus sophistiquée, vous pouvez utiliser la technologie Keeloq de Microschip. Au cas où votre application aurait besoin de données bidirectionnelles, vous auriez besoin d'une paire de TX/RX sur les deux microcontrôleurs, ou vous pouvez utiliser un émetteur-récepteur plus sophistiqué. modules. Cependant, en utilisant ce type de modules 433MHz bon marché, seule une communication semi-duplex peut être réalisée. De plus, afin de rendre la communication plus fiable, vous aurez besoin d'une forme d'établissement de liaison entre TX et RX.
Sur le prochain instructable, je vais vous montrer une application pratique où un capteur environnemental avec température, pression barométrique et humidité est ajouté sur l'émetteur. Ici, les données transmises comprendront crc et auront un cryptage de base.
Le capteur utilisera le port i2c du PIC12F1822, tandis que la mise en œuvre de l'émetteur et du récepteur sera exposée à travers des schémas et des fichiers PCB. Merci de m'avoir lu !
Conseillé:
Comment mesurer correctement la consommation d'énergie des modules de communication sans fil à l'ère de la faible consommation d'énergie ? : 6 étapes
Comment mesurer correctement la consommation d'énergie des modules de communication sans fil à l'ère de la faible consommation d'énergie ? : La faible consommation d'énergie est un concept extrêmement important dans l'Internet des objets. La plupart des nœuds IoT doivent être alimentés par des batteries. Ce n'est qu'en mesurant correctement la consommation électrique du module sans fil que nous pouvons estimer avec précision la quantité de batterie que je
Compteur RPM simple utilisant des modules bon marché : 8 étapes
Compteur RPM simple utilisant des modules bon marché: C'est un projet très intéressant et utlisé très peu d'efforts. Il fait un compteur RPM très simple (rond par seconde dans mon cas)
Système de feux tricolores à 4 voies utilisant 5 modules Arduinos et 5 modules sans fil NRF24L01 : 7 étapes (avec photos)
Système de feux de circulation à 4 voies utilisant 5 Arduinos et 5 modules sans fil NRF24L01 : il y a peu de temps, j'ai créé un Instructable détaillant une seule paire de feux de circulation sur une planche à pain. J'ai également créé un autre Instructable montrant le cadre de base pour l'utilisation d'un module sans fil NRF24L01. Ceci m'a fait réfléchir! Il y a pas mal de
Caméra de casque contrôlée par PIC bon marché utilisant Sony LANC (bon pour les sports extrêmes): 4 étapes
Caméra de casque contrôlée par PIC bon marché utilisant Sony LANC (bon pour les sports extrêmes): Ce Instructable vous montrera comment faire une caméra de casque bon marché qui peut être contrôlée via une télécommande afin que votre caméra principale puisse rester en toute sécurité dans votre sac à dos. Le contrôleur peut être attaché à l'une des bretelles de votre sac à dos, et wi
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est