Sommario:
- Passaggio 1: modifiche al trasmettitore
- Passaggio 2: modifiche al ricevitore: aggiunta di PIC16F887 e LCD HD44780
- Passaggio 3: alcuni riferimenti…
- Fase 4: Conclusioni e lavoro futuro
Video: Comunicazione wireless utilizzando moduli RF a 433 MHz economici e microcontrollori Pic. Parte 2: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Nella prima parte di questa istruzione, ho dimostrato come programmare un PIC12F1822 utilizzando MPLAB IDE e il compilatore XC8, per inviare una semplice stringa in modalità wireless utilizzando moduli TX/RX 433MHz economici.
Il modulo ricevitore è stato collegato tramite un cavo adattatore da USB a UART TTL a un PC e i dati ricevuti sono stati visualizzati su RealTerm. La comunicazione è stata effettuata a 1200 baud e la portata massima raggiunta è stata di circa 20 metri attraverso i muri. I miei test hanno mostrato che per le applicazioni in cui non è necessaria un'elevata velocità di trasmissione dei dati e un lungo raggio, e per la trasmissione continua, questi moduli hanno funzionato eccezionalmente bene.
La seconda parte di questo progetto mostra come aggiungere un microcontrollore PIC16F887 e un modulo LCD 16×2 caratteri sul ricevitore. Inoltre, sul trasmettitore, viene seguito un semplice protocollo con l'aggiunta di alcuni byte di preamp. Questi byte sono necessari al modulo RX per regolare il suo guadagno prima di ottenere il payload effettivo. Dal lato del ricevitore, il PIC è responsabile dell'acquisizione e della convalida dei dati visualizzati sullo schermo LCD.
Passaggio 1: modifiche al trasmettitore
Nella prima parte, il trasmettitore inviava una semplice stringa ogni pochi ms utilizzando otto bit di dati, un bit di inizio e uno di arresto a 1200 bit al secondo. Poiché la trasmissione era quasi continua, il ricevitore non ha avuto problemi ad adattare il suo guadagno ai dati ricevuti. Nella seconda parte, il firmware viene modificato in modo che la trasmissione venga eseguita ogni 2,3 secondi. Ciò si ottiene utilizzando l'interruzione del timer del watchdog (impostato su 2.3s) per riattivare il microcontrollore, che viene messo in modalità di sospensione tra ogni trasmissione.
Affinché il ricevitore abbia il tempo di mettere a punto il suo guadagno, alcuni byte di preambolo con tempi LO brevi "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" vengono inviati prima dei dati effettivi. Il carico utile viene quindi indicato da un byte di inizio '&' e un byte di arresto '*'.
Quindi, il protocollo semplice è descritto come segue:
(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&Ciao InstWorld!*
Inoltre, viene aggiunto un condensatore al tantalio di disaccoppiamento da 10uF tra V+ e GND del modulo RF per eliminare l'ondulazione causata dal modulo step-up dc-dc.
Il baud rate è rimasto lo stesso, ma i miei test hanno mostrato che anche a 2400 baud la trasmissione era efficiente.
Passaggio 2: modifiche al ricevitore: aggiunta di PIC16F887 e LCD HD44780
Il design del ricevitore era basato su PIC16F887, ma è possibile utilizzare un PIC diverso con piccole modifiche. Nel mio progetto ho usato questo μC a 40 pin, poiché avrò bisogno di pin aggiuntivi per progetti futuri basati su questo design. L'uscita del modulo RF è collegata al pin rx UART, mentre un lcd 16x2 caratteri (HD44780) è collegato tramite i pin PORTB b2-b7 per visualizzare i dati ricevuti.
Come per la Parte 1, i dati ricevuti vengono visualizzati anche su RealTerm. Ciò si ottiene utilizzando il pin tx UART che è collegato tramite un cavo adattatore da USB a UART TTL a un PC.
Esaminando il firmware, quando si verifica un interrupt UART, il programma controlla se il byte ricevuto è un byte di inizio ('&'). Se sì, inizia a registrare i byte successivi, finché non viene catturato un byte di stop ('*'). Non appena l'intera frase è ottenuta, e se è conforme al semplice protocollo descritto prima, viene quindi inviata allo schermo lcd, oltre che alla porta tx UART.
Prima di ricevere il byte di inizio, il ricevitore ha già regolato il suo guadagno utilizzando i precedenti byte di preambolo. Questi sono fondamentali per il buon funzionamento del ricevitore. Viene eseguito un semplice controllo dell'overrun e degli errori di frame, tuttavia questa è solo un'implementazione di base della gestione degli errori UART.
In termini di hardware, sono necessarie alcune parti per il ricevitore:
1 x PIC16F887
1 x HD44780
1 x modulo RF Rx 433 Mhz
1 x condensatore al tantalio da 10 μF (disaccoppiamento)
1 x 10 K trimmer (luminosità caratteri LCD)
1 x resistenza da 220 1/4 W (retroilluminazione LCD)
1 x 1 KΩ 1/4 W
1 x Antenna 433Mhz, 3dbi
In pratica, il ricevitore ha funzionato eccezionalmente bene a distanze fino a 20 metri attraverso i muri.
Passaggio 3: alcuni riferimenti…
Ci sono molti blog sul web che danno suggerimenti sulla programmazione PIC e sulla risoluzione dei problemi oltre al sito web ufficiale di Microschip. Ho trovato molto utile quanto segue:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Fase 4: Conclusioni e lavoro futuro
Spero che questo tutorial ti abbia aiutato a capire come utilizzare i moduli RF e i microcontrollori Pic. Puoi adattare il firmware alle tue esigenze e includere CRC e crittografia. Se vuoi rendere il tuo design ancora più sofisticato, puoi utilizzare la tecnologia Keeloq di Microschip. Nel caso in cui la tua applicazione necessiti di dati bidirezionali, dovresti avere una coppia di TX/RX su entrambi i microcontrollori, oppure puoi usare un ricetrasmettitore più sofisticato moduli. Tuttavia, utilizzando questo tipo di moduli economici a 433 MHz, è possibile ottenere solo una comunicazione half duplex. Oltre a ciò, al fine di rendere la comunicazione più affidabile, è necessario disporre di una qualche forma di handshake tra TX e RX.
Nella prossima istruzione, ti mostrerò un'applicazione pratica in cui viene aggiunto al trasmettitore un sensore ambientale con temperatura, pressione barometrica e umidità. Qui, i dati trasmessi includeranno crc e avranno una crittografia di base.
Il sensore utilizzerà la porta i2c del PIC12F1822, mentre l'implementazione sia del trasmettitore che del ricevitore sarà esposta tramite schemi e file PCB. Grazie per avermi letto!
Consigliato:
Walkie-talkie fai-da-te con moduli RF generici a 433 MHz: 4 passaggi
Walkie-Talkie fai-da-te con moduli RF generici a 433 MHz: in questo progetto ti mostrerò come utilizzare moduli RF generici a 433 MHz di Ebay per creare un walkie-talkie funzionale. Ciò significa che confronteremo diversi moduli RF, impareremo qualcosa su un amplificatore di classe d e infine costruiremo il Walkie-Talkie
Radiocomando RF 433MHZ con HT12D HT12E - Realizzare un telecomando RF utilizzando HT12E e HT12D con 433 mhz: 5 passaggi
Radiocomando RF 433MHZ con HT12D HT12E | Realizzare un telecomando RF utilizzando HT12E e HT12D con 433 mhz: In questo tutorial ti mostrerò come realizzare un telecomando RADIO utilizzando un modulo ricevitore trasmettitore 433 mhz con codifica HT12E e amp; HT12D decoder IC.In questo istruibile potrai inviare e ricevere dati utilizzando COMPONENTI molto molto economici COME: HT
Rete di sensori wireless a basso costo su banda 433 MHz: 5 passaggi (con immagini)
Rete di sensori wireless a basso costo su banda 433 MHz: Molte grazie a Teresa Rajba per avermi gentilmente concesso di accettare di utilizzare i dati dalle loro pubblicazioni in questo articolo. * Nell'immagine sopra - le cinque unità sensore-mittente che ho usato per testare Cosa sono i sensori wireless reti? Una semplice definizione sarebbe
Comunicazione wireless utilizzando il modulo ricetrasmettitore NRF24L01 per progetti basati su Arduino: 5 passaggi (con immagini)
Comunicazione wireless utilizzando il modulo ricetrasmettitore NRF24L01 per progetti basati su Arduino: questo è il mio secondo tutorial istruttivo su robot e microcontrollori. È davvero incredibile vedere il tuo robot vivo e funzionare come previsto e credimi sarà più divertente se controlli il tuo robot o altre cose wireless con velocità e
Comprensione di ICSP per microcontrollori PIC: 4 passaggi (con immagini)
Comprendere ICSP per i microcontrollori PIC: la programmazione dei microcontrollori non è difficile. Costruire un programmatore è un ottimo primo progetto di elettronica. L'obiettivo di questa guida è spiegare il semplice metodo di "programmazione seriale in circuito" utilizzato con i Microchip PIC