Table des matières:

Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2 : 4 étapes (avec photos)
Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2 : 4 étapes (avec photos)

Vidéo: Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2 : 4 étapes (avec photos)

Vidéo: Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2 : 4 étapes (avec photos)
Vidéo: TRONIK AVENTUR 227 - MODULE UHF RF433 SANS ARDUINO - DECOUVERTE MODE EMPLOI 2024, Novembre
Anonim
Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2
Communication sans fil utilisant des modules RF 433 MHz bon marché et des microcontrôleurs Pic. Partie 2

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

Modifications de l'émetteur
Modifications de l'émetteur
Modifications de l'émetteur
Modifications de l'émetteur
Modifications de l'émetteur
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

Modifications du récepteur: ajout des écrans LCD PIC16F887 et HD44780
Modifications du récepteur: ajout des écrans LCD PIC16F887 et HD44780
Modifications du récepteur: ajout des écrans LCD PIC16F887 et HD44780
Modifications du récepteur: ajout des écrans LCD PIC16F887 et HD44780
Modifications du récepteur: ajout des écrans LCD PIC16F887 et HD44780
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é: