- Explicație de lucru:
- Componente necesare:
- Diagrama circuitului:
- Lucrul cu modulul nRF24L01 + Wireless Transceiver:
- Programarea Arduino-urilor:
- Program de procesare:
- Testare:
Crearea unei rețele locale pentru a partaja personal și date confidențiale a devenit aproape imposibilă pentru un om obișnuit în lumea noastră modernă. Acest lucru se datorează în principal faptului că toate metodele de chat obișnuite precum Whatsapp, Facebook, Hangout și aproape totul implică o conexiune la internet.
Ce se întâmplă dacă am putea partaja date fără suportul internetului ?
Cât de mișto ar fi dacă ai putea comunica cu oamenii din interiorul casei sau al locului de muncă fără un pachet net sau conexiune la internet?
Dacă ne-am putea personaliza ecranul de chat cu propriile noastre imaginații?
Toate acestea sunt posibile cu un microcontroler și un mediu de transmisie fără fir. Această cameră de chat Arduino care folosește proiectul nRF24L01 vă va ghida cu privire la configurarea unei camere de chat cu cost redus în zona dvs. locală.
Deci, să sărim și să vedem cum funcționează.
Explicație de lucru:
Practic, pentru ca acest lucru să funcționeze, vom avea nevoie de o pereche de plăci Arduino și module wireless ieftine. Modulele wireless pe care le vom folosi aici sunt nRF24L01. Motivul alegerii acestor module este că aceștia sunt succesorii Zigbee și este ușor de lucrat cu o conexiune configurată. De asemenea, aceste module funcționează pe 2,4 GHz (bandă ISM), cu opțiuni de spectru răspândit și frecvență de șoc, ceea ce ne face să ne simțim relaxați de problemele de interferență.
Arduino și NRF24L01 sunt conectate împreună pentru a stabili o comunicare în serie, astfel încât să poată vorbi între ei. NRF24L01 sunt module de emisie-recepție semi-duplex, prin urmare pot trimite și primi date. Datele sunt colectate de la utilizator și transmise aceste date pot fi primite de orice (sau un anumit) modul și afișate pe ecranul lor.
Dar!!!!! Vom discuta folosind ecranul de depanare al Arduino? Desigur că nu. Vom construi și personaliza propriul ecran de chat cu ajutorul „Procesării”. Procesarea este un software capabil să comunice cu Arduino folosind UART. Vom crea un fișier.exe cu limbaj de procesare, care ar putea rula pe orice computer cu Java Runtime. Pentru a conversa, trebuie doar să conectăm Arduino și să deschidem acest fișier.exe și Booooom !! suntem în propria noastră cameră de chat privatizată, complet gratuită.
Acest proiect se limitează doar la adăugarea a doi membri în camera de chat, dar nRF24L01 are 6 conducte, astfel încât ar putea fi maximum 6 membri în camera noastră de chat. Această cameră char poate funcționa în intervalul de 100 de metri, în funcție de modulele nRF24L01.
Așa că hai să mergem la cumpărături !!!!
Componente necesare:
- Arduino (orice versiune sau model) - 2Nos
- nRF24L01 + Modul Wireless Transceiver - 2Nos
- 3.3 Regulator de tensiune - 2No. (Nu este obligatoriu)
- Conectarea firelor
- Interes (Lolz)
Diagrama circuitului:
Arduino Mega cu nRF24L01:
Arduino Nano cu nRF24L01:
Proiectul nostru nu implică legături complexe. Am folosit un Arduino Mega și un Arduino Nano, iar conexiunile lor cu nRF24L01 sunt prezentate mai sus. Puteți utiliza orice modele Arduino.
Lucrul cu modulul nRF24L01 + Wireless Transceiver:
Cu toate acestea, pentru a face ca nRF24L01 să funcționeze fără zgomot, ar putea dori să luăm în considerare următoarele lucruri. Lucrez de mult la acest nRF24L01 + și am aflat că următoarele puncte vă pot ajuta să nu vă loviți de un perete.
1. Majoritatea modulelor nRF24L01 + de pe piață sunt false. Cele mai ieftine pe care le putem găsi pe Ebay și Amazon sunt cele mai rele (nu vă faceți griji, cu câteva modificări le putem face să funcționeze)
2. Principala problemă este sursa de alimentare, nu codul dvs. Majoritatea codurilor online vor funcționa corect, eu însumi am un cod de lucru pe care l-am testat personal, anunțați-mă dacă aveți nevoie de ele.
3. Acordați atenție deoarece modulele tipărite ca NRF24L01 + sunt de fapt Si24Ri (Da, un produs chinezesc).
4. Clona și modulele false vor consuma mai multă energie, prin urmare nu vă dezvoltați circuitul de alimentare bazat pe foaia de date nRF24L01 +, deoarece Si24Ri va avea un consum mare de curent de aproximativ 250mA.
5. Feriți-vă de valurile de tensiune și de supratensiunile de curent, aceste module sunt foarte sensibile și ar putea arde cu ușurință. (;-(prăjit 2 module până acum)
6. Adăugarea unui condensator cuplat (10 uF și 0,1 uF) pe Vcc și Gnd al modulului vă ajută să vă purificați alimentarea și acest lucru funcționează pentru majoritatea modulelor.
Totuși, dacă aveți probleme raportați la secțiunea de comentarii sau citiți acest lucru.
Programarea Arduino-urilor:
Programul atât pentru Arduino Nano, cât și pentru Mega va fi similar pentru schimbarea pinilor CE și CS. Voi explica programul împărțindu-l în segmente mici.
Deoarece Arduino și nRF24L01 comunică prin SPI, am solicitat biblioteca SPI. Am inclus, de asemenea, lib Maniacbug RF24 pentru ca modulele noastre RF să funcționeze. Descărcați fișierul de aici și adăugați-l la IDE.
#include
Modulele noastre NRF sunt conectate la pinul 8 și respectiv 10 la CE și respectiv CS.
RF24 myRadio (8, 10);
Creăm un pachet de date structurat numit pachet . Textul variabil va fi utilizat pentru a transmite date pe aer.
struct package {text text; // Text de transmis pe aer}; pachet typedef struct Pachet; Date pachet;
În funcția de setare nulă () , inițializăm rata de transmisie la 9600 și configurăm modulele noastre la 115 cu consum de energie MIN și viteză de 250KBPS. Puteți juca cu aceste valori mai târziu.
void setup () {Serial.begin (9600); întârziere (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 benzi deasupra semnalelor WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN putere scăzută furie myRadio.setDataRate (RF24_250KBPS); // Viteza minimă}
Modulul este pus în funcțiune în modul de transmisie dacă datele sunt recepționate prin tampon serial, altfel va fi în modul receptor în căutarea datelor pe aer. Datele de la utilizator sunt stocate într-o matrice de caractere și trimise către WriteData () pentru a le transmite.
void loop () {while (Serial.available ()> 0) // Obțineți valori de la utilizator {val = Serial.peek (); if (index <19) // Unul mai mic decât dimensiunea matricei {inChar = Serial.read (); // Citiți un caracter în Date = inChar; // Stocați-l index ++; // Incrementarea unde se scrie următorul inData = '\ 0'; // Nul termină șirul} if (val == '#') {strcpy (data.text, inData); WriteData (); // Puneți modulul în modul Transmitere în timp ce (index! = 0) {inData = ""; index--; }}} ReadData (); // Puneți modul Primire modul}
funcția void WriteData () scrie datele pe adresa 0xF0F0F0F0AA, această adresă este utilizată ca țeavă de scriere pe alt modul.
void WriteData () {myRadio.stopListening (); // Opriți primirea și porniți transmiterea myRadio.openWritingPipe (0xF0F0F0F066); // Trimite date pe această adresă de 40 de biți myRadio.write (& data, sizeof (data)); întârziere (300); }
funcția void ReadData () scrie datele pe 0xF0F0F0F066 această adresă, această adresă este utilizată ca țeavă de citire pe alt modul.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Ce pipă de citit, 40 biți Adresă myRadio.startListening (); // Opriți Transminting și începeți Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Gata, partea noastră de programare s-a terminat. Dacă nu puteți înțelege câteva lucruri aici, verificați cele două programe pentru ambele Arduinos, prezentate în secțiunea Cod de mai jos, am adăugat linii de comentarii pentru a explica lucrurile mult mai bine.
Program de procesare:
„Prelucrarea” este un software open source utilizat de artiști pentru proiectarea grafică. Acest software este utilizat pentru a dezvolta aplicații software și Android. Este destul de ușor de dezvoltat și foarte asemănător cu IDE-ul de dezvoltare Android. De aceea am scurtat explicația.
Codul de procesare pentru ambele ecrane de chat este dat aici:
- Ecranul de chat 1 Cod de procesare
- Ecranul de chat 2 Cod de procesare
Faceți clic dreapta pe ele și faceți clic pe „Salvați linkul ca..” pentru a le descărca și a le deschide în computer după configurarea Arduino-urilor. Trebuie să instalați software-ul „Procesare” pentru a deschide aceste fișiere *.pde și apoi „Rulați-le” pentru a deschide casetele de chat. Secțiunea de comentarii este deschisă pentru interogări. Schița de procesare pentru emițător și modul receptor este identică.
În secțiunea de cod de mai jos, „port = Serial nou (acesta, Serial.list (), 9600); // Citește al patrulea PORT la 9600 baudrate” este important, deoarece decide de la ce port la date.
setare nulă () {dimensiune (510.500); port = Serial nou (acesta, Serial.list (), 9600); // Citește al 4-lea PORT la 9600 baudrate println (Serial.list ()); fundal (0); }
Aici am citit date de la cel de-al 4-lea port de pe Arduino.
Deci, de exemplu, dacă aveți COM COM COM COM COM
Apoi, codul de mai sus va citi datele de la COM.
Testare:
Acum, deoarece schița noastră de procesare și Arduino este gata, trebuie doar să încărcați programul pe Arduino și să-l lăsați conectat la laptop. Deschideți schița de procesare și începeți să tastați și apăsați „Enter” mesajul dvs. va fi transmis către celălalt Arduino care va afișa textul primit pe o altă aplicație de procesare conectată la alt computer. Consultați în continuare videoclipul de mai jos pentru a demonstra complet.
Deci, astfel puteți discuta cu prietenii și familia din zona dvs. locală fără a avea nicio conexiune la Internet, folosind această cameră de chat Arduino ieftină.