- Spiegazione di lavoro:
- Componenti richiesti:
- Schema elettrico:
- Lavorare con nRF24L01 + modulo ricetrasmettitore wireless:
- Programmazione degli Arduino:
- Programma di elaborazione:
- Collaudo:
Creare una rete locale per condividere il personale e i dati riservati è diventato quasi impossibile per un uomo comune nel nostro mondo moderno. Ciò è principalmente dovuto al fatto che tutti i metodi di chat comuni come Whatsapp, Facebook, Hangout e quasi tutto implicano una connessione Internet.
E se potessimo condividere i dati senza il supporto di Internet ?
Non sarebbe bello se potessi comunicare con le persone all'interno della tua casa o sul posto di lavoro senza un net pack o una connessione Internet?
E se potessimo personalizzare la nostra schermata di chat con la nostra immaginazione?
Tutto questo è possibile con un microcontrollore e un mezzo di trasmissione Wireless. Questa chat room di Arduino che utilizza il progetto nRF24L01 ti guiderà nella creazione di una chat room a basso costo nella tua zona.
Quindi saltiamo e vediamo come funziona.
Spiegazione di lavoro:
Fondamentalmente per far funzionare questa cosa avremo bisogno di un paio di schede Arduino e moduli wireless economici. I moduli wireless che useremo qui sono nRF24L01. La ragione per la scelta di questi moduli è che questi sono i successori di Zigbee ed è facile lavorare con una connessione impostata. Inoltre, questi moduli funzionano su 2,4 GHz (banda ISM) con opzioni di spettro di frequenza a salto di frequenza e shock burst che ci fanno sentire rilassati dai problemi di interferenza.
Il nostro Arduino e NRF24L01 sono collegati insieme per stabilire una comunicazione seriale in modo che possano parlare tra loro. NRF24L01 sono moduli ricetrasmettitori half duplex, quindi possono inviare e ricevere dati. I dati vengono raccolti dall'utente e trasmessi questi dati possono essere ricevuti da qualsiasi (o un particolare) modulo e visualizzarli sul loro schermo.
Ma!!!!! Stiamo per chattare usando la schermata Debug di Arduino? Ovviamente no. Costruiremo e personalizzeremo la nostra schermata di chat con l'aiuto di "Processing". L'elaborazione è un software in grado di comunicare con Arduino utilizzando UART. Creeremo un file.exe con il linguaggio di elaborazione, che potrebbe essere eseguito su qualsiasi computer con Java Runtime. Per chattare dobbiamo solo collegare il nostro Arduino e aprire questo file.exe e Booooom !! siamo nella nostra chat room privatizzata totalmente gratuita.
Questo progetto si limita ad aggiungere solo due membri alla chat room, ma nRF24L01 ha 6 pipeline, quindi potrebbero esserci un massimo di 6 membri nella nostra chat room. Questa camera di carbone può funzionare entro un raggio di 100 metri a seconda dei moduli nRF24L01.
Allora andiamo a fare shopping !!!!
Componenti richiesti:
- Arduino (qualsiasi versione o modello) - 2Nos
- nRF24L01 + Modulo ricetrasmettitore wireless - 2Nos
- 3.3 Regolatore di tensione - 2No. (Non obbligatorio)
- Cavi di collegamento
- Interesse (Lolz)
Schema elettrico:
Arduino Mega con nRF24L01:
Arduino Nano con nRF24L01:
Il nostro progetto non prevede connessioni complesse. Ho usato un Arduino Mega e un Arduino Nano e le loro connessioni con nRF24L01 sono mostrate sopra. Puoi utilizzare qualsiasi modello Arduino.
Lavorare con nRF24L01 + modulo ricetrasmettitore wireless:
Tuttavia, per far funzionare il nostro nRF24L01 senza rumore, potremmo considerare le seguenti cose. Ho lavorato su questo nRF24L01 + per molto tempo e ho imparato che i seguenti punti possono aiutarti a non essere colpito da un muro.
1. La maggior parte dei moduli nRF24L01 + sul mercato sono falsi. Quelli economici che possiamo trovare su Ebay e Amazon sono i peggiori (non preoccuparti, con pochi ritocchi possiamo farli funzionare)
2. Il problema principale è l'alimentatore, non il tuo codice. La maggior parte dei codici online funzionerà correttamente, io stesso ho un codice funzionante che ho testato personalmente, fammi sapere se ne hai bisogno.
3. Prestare attenzione perché i moduli stampati come NRF24L01 + sono in realtà Si24Ri (Sì, un prodotto cinese).
4. I moduli clone e fake consumeranno più energia, quindi non sviluppare il circuito di alimentazione in base alla scheda tecnica nRF24L01 +, perché Si24Ri avrà un elevato consumo di corrente di circa 250mA.
5. Fare attenzione alle ondulazioni di tensione e ai picchi di corrente, questi moduli sono molto sensibili e potrebbero facilmente bruciarsi. (;-(2 moduli fritti finora)
6. L'aggiunta di un paio di condensatori (10uF e 0.1uF) tra Vcc e Gnd del modulo aiuta a rendere pura l'alimentazione e questo funziona per la maggior parte dei moduli.
Tuttavia, se hai problemi, segnala la sezione dei commenti o leggi questo.
Programmazione degli Arduino:
Il programma sia per Arduino Nano che per Mega sarà simile per la modifica dei pin CE e CS. Spiegherò il programma suddividendolo in piccoli segmenti.
Poiché Arduino e nRF24L01 comunicano tramite SPI, abbiamo richiesto la libreria SPI. Abbiamo anche incluso la nostra libreria Maniacbug RF24 affinché i nostri moduli RF funzionino. Scarica il file da qui e aggiungili al tuo IDE.
#includere
I nostri moduli NRF sono collegati rispettivamente ai pin 8 e 10 a CE e CS.
RF24 myRadio (8, 10);
Creiamo un pacchetto di dati strutturati chiamato pacchetto . Il testo variabile verrà utilizzato per trasmettere i dati in onda.
pacchetto struct {testo char; // Testo da trasmettere in onda}; typedef struct pacchetto Pacchetto; Dati del pacchetto;
Nella funzione void setup () , inizializziamo la velocità di trasmissione su 9600 e impostiamo i nostri moduli su 115 con consumo energetico MIN e velocità di 250KBPS. Puoi giocherellare con questi valori in seguito.
void setup () {Serial.begin (9600); ritardo (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 bande sopra i segnali WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN power low rage myRadio.setDataRate (RF24_250KBPS); // Velocità minima}
Il modulo è fatto per funzionare in modalità trasmissione se i dati vengono ricevuti tramite buffer seriale, altrimenti sarà in modalità ricevitore alla ricerca di dati in onda. I dati dell'utente vengono memorizzati in un char Array e inviati a WriteData () per trasmetterli.
void loop () {while (Serial.available ()> 0) // Ottiene i valori dall'utente {val = Serial.peek (); if (index <19) // Uno in meno rispetto alla dimensione dell'array {inChar = Serial.read (); // Legge un carattere inData = inChar; // Memorizzalo index ++; // Incrementa dove scrivere il prossimo inData = '\ 0'; // Null termina la stringa} if (val == '#') {strcpy (data.text, inData); WriteData (); // Mette il modulo in modalità di trasmissione while (index! = 0) {inData = ''; indice--; }}} ReadData (); // Metti la modalità di ricezione del modulo}
La funzione void WriteData () scrive i dati sull'indirizzo 0xF0F0F0F0AA, questo indirizzo viene utilizzato come pipe di scrittura su un altro modulo.
void WriteData () {myRadio.stopListening (); // Interrompi la ricezione e avvia la trasmissione di myRadio.openWritingPipe (0xF0F0F0F066); // Invia i dati su questo indirizzo a 40 bit myRadio.write (& data, sizeof (data)); ritardo (300); }
La funzione void ReadData () scrive i dati su 0xF0F0F0F066 questo indirizzo, questo indirizzo viene utilizzato come pipe di lettura su un altro modulo.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quale pipe leggere, indirizzo a 40 bit myRadio.startListening (); // Stop Transminting and start Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Ecco fatto, la nostra parte di programmazione è finita. Se non riesci a capire poche cose qui, controlla i due programmi per entrambi gli Arduino, dati nella sezione Codice qui sotto, ho aggiunto righe di commento per spiegare le cose molto meglio.
Programma di elaborazione:
"Processing" è un software open source utilizzato dagli artisti per la progettazione grafica. Questo software viene utilizzato per sviluppare software e applicazioni Android. È abbastanza facile da sviluppare e molto simile all'IDE di sviluppo Android. Quindi ho accorciato la spiegazione.
Il codice di elaborazione per entrambe le schermate di chat è fornito qui:
- Schermata chat 1 Codice di elaborazione
- Schermata chat 2 Codice di elaborazione
Fare clic con il pulsante destro del mouse su di essi e fare clic su "Salva collegamento come.." per scaricarli e aprirli sul computer dopo aver configurato Arduino. È necessario installare il software "Processing" per aprire questi file *.pde e poi "Esegui" per aprire le caselle chat. La sezione dei commenti è aperta per le domande. Lo schizzo di elaborazione per il modulo trasmettitore e ricevitore sono identici.
Nella sezione di codice sottostante "port = new Serial (this, Serial.list (), 9600); // Legge la 4a PORTA a 9600 baudrate" è importante in quanto decide da quale porta i dati.
void setup () {size (510,500); port = new Serial (this, Serial.list (), 9600); // Legge la 4a PORTA a 9600 baudrate println (Serial.list ()); sfondo (0); }
Qui ho letto i dati dalla 4a porta dal mio Arduino.
Quindi, per esempio, se hai COM COM COM COM COM
Quindi il codice sopra leggerà i dati da COM.
Collaudo:
Ora che il nostro schizzo di elaborazione e Arduino è pronto, carica il programma su Arduino e lascialo collegato al tuo laptop. Apri il tuo sketch di Processing e inizia a digitare e premi "Enter" il tuo messaggio verrà trasmesso all'altro Arduino che visualizzerà il testo ricevuto su un'altra applicazione di Processing collegata ad un altro computer. Controlla ulteriormente il video qui sotto per una dimostrazione completa.
Quindi è così che puoi parlare con i tuoi amici e familiari nella tua zona senza avere alcuna connessione Internet, utilizzando questa economica chat room di Arduino.