- Radno objašnjenje:
- Potrebne komponente:
- Kružni dijagram:
- Rad s modulom bežičnog primopredajnika nRF24L01 +:
- Programiranje Arduinosa:
- Program obrade:
- Testiranje:
Stvaranje lokalne mreže za razmjenu osoblja i povjerljivih podataka postalo je gotovo nemoguće za običnog čovjeka u našem modernom svijetu. To je uglavnom zato što sve uobičajene metode chata poput Whatsappa, Facebooka, Hangouta i gotovo sve uključuju internetsku vezu.
Što ako bismo mogli dijeliti podatke bez Interneta ?
Kako bi bilo cool kad biste mogli komunicirati s ljudima u vašem domu ili na poslu bez mrežnog paketa ili internetske veze?
Što ako svoj zaslon za chat možemo prilagoditi vlastitom maštom?
Sve je to moguće s mikrokontrolerom i bežičnim prijenosnim medijem. Ova Arduino chat soba pomoću projekta nRF24L01 vodit će vas oko postavljanja jeftine chat sobe u vašem lokalnom području.

Pa uskočimo i vidimo kako to funkcionira.
Radno objašnjenje:
U osnovi da bi ova stvar funkcionirala trebat će nam par Arduino ploča i jeftini bežični moduli. Bežični moduli koje ćemo ovdje koristiti su nRF24L01. Razlog odabira ovih modula je taj što su to nasljednici Zigbeea i lako je raditi s postavljenom vezom. Također ovi moduli rade na 2,4 GHz (ISM opseg) s opsegom širenja spektra skakanja frekvencije i opcijama probijanja udara što nas čini opuštenim zbog problema sa smetnjama.


Naši Arduino i NRF24L01 povezani su zajedno kako bi uspostavili serijsku komunikaciju kako bi mogli međusobno razgovarati. NRF24L01 su poludupleksni primopredajni moduli, stoga mogu slati i primati podatke. Podaci se prikupljaju od korisnika, a prenesene podatke mogu primiti bilo koji (ili jedan određeni) modul i prikazati ih na svom zaslonu.
Ali!!!!! Hoćemo li razgovarati pomoću zaslona za otklanjanje pogrešaka u Arduinu? Naravno da ne. Izradit ćemo i prilagoditi vlastiti zaslon za chat uz pomoć "Obrade". Obrada je softver koji je sposoban komunicirati s Arduinom pomoću UART-a. Stvorit ćemo.exe datoteku s jezikom za obradu koja se može izvoditi na bilo kojem računalu s Java Runtimeom. Da bismo razgovarali, jednostavno moramo priključiti naš Arduino i otvoriti ovu.exe datoteku i Booooom !! ušli smo u vlastitu privatiziranu potpuno besplatnu chat sobu.
Ovaj je projekt ograničen na samo dodavanje dva člana u chat sobu, ali nRF24L01 ima 6 cjevovoda, tako da u našoj chat sobi može biti najviše 6 članova. Ova prostorija za obožavanje može raditi u krugu od 100 metara, ovisno o modulima nRF24L01.
Pa krenimo u kupovinu !!!!
Potrebne komponente:
- Arduino (bilo koja verzija ili model) - 2Br
- nRF24L01 + modul bežičnog primopredajnika - 2Br
- 3.3 Regulator napona - 2Br. (Nije obavezno)
- Spajanje žica
- Kamata (Lolz)
Kružni dijagram:
Arduino Mega s nRF24L01:

Arduino Nano s nRF24L01:

Naš projekt ne uključuje složene veze. Koristio sam Arduino Mega i Arduino Nano i njihove veze s nRF24L01 prikazane su gore. Možete koristiti bilo koji Arduino model.
Rad s modulom bežičnog primopredajnika nRF24L01 +:
Međutim, kako bi naš nRF24L01 radio bez buke, možda bismo trebali razmotriti sljedeće stvari. Već dugo radim na ovom nRF24L01 + i naučio sam da vam sljedeće točke mogu pomoći u udarivanju u zid.
1. Većina nRF24L01 + modula na tržištu su lažni. Najjeftinije koje možemo pronaći na Ebayu i Amazonu su najgore (ne brinite, s nekoliko podešavanja možemo ih natjerati da rade)
2. Glavni problem je napajanje, a ne vaš kod. Većina internetskih kodova ispravno će raditi, i sam imam radni kod koji sam osobno testirao. Javite mi ako vam trebaju.
3. Obratite pažnju jer su moduli koji su otisnuti kao NRF24L01 + zapravo Si24Ri (da, kineski proizvod).
4. Klonski i lažni moduli trošit će više energije, stoga nemojte razvijati svoj krug napajanja zasnovan na tehničkom listu nRF24L01 +, jer će Si24Ri imati veliku trenutnu potrošnju od oko 250 mA.
5. Čuvajte se mreškanja napona i strujnih udara, ovi su moduli vrlo osjetljivi i lako mogu izgorjeti. (;-(zasad je spržio 2 modula)
6. Dodavanje nekoliko kondenzatora (10uF i 0,1uF) preko Vcc i Gnd modula pomaže vam da opskrba postane čista, a to djeluje za većinu modula.
Ipak, ako imate problema, prijavite odjeljak za komentare ili pročitajte ovo.
Programiranje Arduinosa:
Program za Arduino Nano i Mega bit će sličan za promjenu u CE i CS pinovima. Objasnit ću program dijeljenjem na male segmente.
Budući da Arduino i nRF24L01 komuniciraju putem SPI-a, pozvali smo na SPI knjižnicu. Uključili smo i našu Maniacbug RF24 lib za rad naših RF modula. Preuzmite datoteku odavde i dodajte ih u svoj IDE.
#include
Naši NRF moduli povezani su na pin 8, odnosno 10 na CE i CS.
RF24 myRadio (8, 10);
Izrađujemo paket strukturiranih podataka koji se naziva paket . Varijabilni tekst koristit će se za prijenos podataka u eteru.
strukturni paket {char tekst; // Tekst za prijenos u eter}; typedef struct paket Paket; Podaci o paketu;
U funkciji void setup () , inicijaliziramo brzinu prijenosa na 9600 i postavljamo naše module na 115 s MIN potrošnjom energije i brzinom od 250KBPS. Kasnije možete petljati oko tih vrijednosti.
void setup () {Serial.begin (9600); kašnjenje (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // pojas 115 iznad WIFI signala myRadio.setPALevel (RF24_PA_MIN); // MIN snage low rage myRadio.setDataRate (RF24_250KBPS); // Minimalna brzina}
Modul je napravljen za rad u načinu prijenosa ako se podaci primaju kroz serijski međuspremnik, inače će biti u načinu primanja i tražiti podatke u zraku. Podaci korisnika pohranjuju se u polje s char-om i šalju WriteData () za njihov prijenos.
void loop () {while (Serial.available ()> 0) // Dobivanje vrijednosti od korisnika {val = Serial.peek (); if (index <19) // Jedan manji od veličine niza {inChar = Serial.read (); // Čitanje znaka inData = inChar; // Spremite ga index ++; // Povećati gdje dalje pisati inData = '\ 0'; // Null završava niz} if (val == '#') {strcpy (data.text, inData); WriteData (); // Stavite modul u način prijenosa while (index! = 0) {inData = ''; indeks--; }}} ReadData (); // Stavite modul Receive mode}
void WriteData () funkcija zapisuje podatke na 0xF0F0F0F0AA adresu, ta se adresa koristi kao cijev za upisivanje na drugi modul.
void WriteData () {myRadio.stopListening (); // Zaustavite primanje i započnite transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Šalje podatke na ovu 40-bitnu adresu myRadio.write (& data, sizeof (data)); kašnjenje (300); }
void ReadData () funkcija zapisuje podatke na 0xF0F0F0F066 ovu adresu, ova adresa se koristi kao cijev za čitanje na drugom modulu.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Koju cijev čitati, 40-bitna adresa myRadio.startListening (); // Zaustavite prenošenje i započnite s otkrivanjem ako (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
To je to, naš programski dio je gotov. Ako ovdje ne možete razumjeti nekoliko stvari, provjerite dva programa za oba Arduinosa, data u donjem odjeljku Code, dodao sam retke komentara da bih puno bolje objasnio stvari.
Program obrade:
'Processing' je softver otvorenog koda koji umjetnici koriste za grafičko dizajniranje. Ovaj se softver koristi za razvoj softvera i Android aplikacija. Prilično je lako razviti i vrlo je sličan Android IDE razvoju. Stoga sam skratio objašnjenje.
Kod za obradu za oba zaslona chata dat je ovdje:
- Zaslon za chat 1 Obrada koda
- Zaslon za chat 2 Obrada koda
Desnom tipkom miša kliknite ih i kliknite na "Spremi vezu kao.." da biste ih preuzeli i otvorili na računalu nakon postavljanja Arduinosa. Morate instalirati softver "Obrada" da biste otvorili ove *.pde datoteke, a zatim ih "Pokreni" da biste otvorili okvire za chat. Odjeljak za komentare otvoren je za upite. Skica obrade za odašiljač i modul prijemnika identični su.
U donjem odjeljku koda važan je "port = new Serial (this, Serial.list (), 9600); // Čita 4. PORT na 9600 baudrate" , jer odlučuje s kojeg će porta ulaziti podatke.
void setup () {veličina (510.500); port = novi serijski (ovaj, Serial.list (), 9600); // Čita 4. PORT na 9600 baudrate println (Serial.list ()); pozadina (0); }
Ovdje sam pročitao podatke s četvrte luke s mog Arduina.
Tako na primjer ako imate COM COM COM COM COM
Tada će gornji kôd čitati podatke iz COM-a.
Testiranje:

Budući da je naša skica za obradu i Arduino spremna, samo prenesite program na Arduino i ostavite ga priključenim na vaš laptop. Otvorite svoju skicu za obradu i počnite tipkati i pritisnite "Enter", vaša će se poruka poslati na drugi Arduino koji će prikazati primljeni tekst na drugoj aplikaciji za obradu koja je spojena na drugo računalo. Dalje provjerite donji videozapis za cjelovitu demonstraciju.
Dakle, na ovaj način možete razgovarati s prijateljima i obitelji u vašem lokalnom području bez ikakve internetske veze, koristeći ovu jeftinu Arduino chat sobu.
