- Delovna razlaga:
- Potrebne komponente:
- Shema vezja:
- Delo z modulom brezžičnega oddajnika nRF24L01 +:
- Programiranje Arduinosa:
- Program obdelave:
- Testiranje:
Ustvarjanje lokalne mreže za izmenjavo osebja in zaupnih podatkov je za običajnega človeka v našem sodobnem svetu skoraj nemogoče. To je predvsem zato, ker vse običajne metode klepeta, kot so Whatsapp, Facebook, Hangout in skoraj vse vključujejo internetno povezavo.
Kaj če bi lahko podatke delili brez interneta ?
Kako kul bi bilo, če bi lahko komunicirali z ljudmi v vašem domu ali na delovnem mestu brez mrežnega paketa ali internetne povezave?
Kaj če bi lahko zaslon za klepet prilagodili z lastno domišljijo?
Vse to je mogoče z mikrokrmilnikom in brezžičnim prenosnim medijem. Ta klepetalnica Arduino s projektom nRF24L01 vas bo vodila pri postavitvi poceni klepetalnice v vašem lokalnem okolju.
Torej, skočimo in poglejmo, kako deluje.
Delovna razlaga:
V bistvu bomo za to potrebovali par Arduino plošč in poceni brezžične module. Brezžični moduli, ki jih bomo tukaj uporabljali, so nRF24L01. Razlog za izbiro teh modulov je, da so ti nasledniki Zigbeeja in je enostavno delati z nastavljeno povezavo. Ti moduli delujejo tudi na frekvenci 2,4 GHz (pas ISM) z razširjenim spektrom frekvenčnega preskakovanja in možnostmi razpoka udarcev, zaradi česar se počutimo sproščeno zaradi motenj.
Naši Arduino in NRF24L01 so povezani skupaj, da vzpostavijo serijsko komunikacijo, tako da se lahko pogovarjajo med seboj. NRF24L01 so pol dupleksni oddajniški moduli, zato lahko pošiljajo in prejemajo podatke. Podatki se zbirajo od uporabnika in jih lahko pošlje kateri koli (ali en poseben) modul in jih prikaže na svojem zaslonu.
Ampak !!!!! Ali bomo klepetali z zaslonom za odpravljanje napak v Arduinu? Seveda ne. S pomočjo 'Processing' bomo zgradili in prilagodili svoj zaslon za klepet. Processing je programska oprema, ki je sposobna komunicirati z Arduinom z uporabo UART. Ustvarili bomo datoteko.exe z jezikom za obdelavo, ki bi se lahko izvajala v katerem koli računalniku z Java Runtime. Če želite klepetati, moramo samo priključiti naš Arduino in odpreti to datoteko.exe in Booooom !! smo v lastni Privatizirani popolnoma brezplačni klepetalnici.
Ta projekt je omejen na dodajanje dveh članov v klepetalnico, toda nRF24L01 ima 6 cevovodov, zato je v naši klepetalnici lahko največ 6 članov. Ta soba za oglede lahko deluje v območju 100 metrov, odvisno od modulov nRF24L01.
Pa pojdimo po nakupih !!!!
Potrebne komponente:
- Arduino (katera koli različica ali model) - 2 št
- nRF24L01 + modul brezžičnega oddajnika - 2 št
- 3.3 Napetostni regulator - 2 št. (Ni obvezno)
- Priključne žice
- Obresti (Lolz)
Shema vezja:
Arduino Mega z nRF24L01:
Arduino Nano z nRF24L01:
Naš projekt ne vključuje nobenih zapletenih povezav. Uporabil sem Arduino Mega in Arduino Nano, njihove povezave z nRF24L01 pa so prikazane zgoraj. Uporabite lahko katere koli modele Arduino.
Delo z modulom brezžičnega oddajnika nRF24L01 +:
Da bi naš nRF24L01 deloval brez hrupa, bomo morda želeli razmisliti o naslednjih stvareh. Dolgo sem delal na tem modelu nRF24L01 + in se naučil, da vam bodo naslednje točke lahko pomagale pri udarcu po steni.
1. Večina modulov nRF24L01 + na trgu je ponarejenih. Poceni, ki jih najdemo na Ebayu in Amazonu, so najslabši (ne skrbite, z nekaj popravki jih bomo lahko pripravili)
2. Glavna težava je napajanje in ne vaša koda. Večina spletnih kod bo delovala pravilno, sam imam delujočo kodo, ki sem jo osebno preizkusil. Sporočite mi, če jih potrebujete.
3. Bodite pozorni, ker so moduli, ki so natisnjeni kot NRF24L01 +, dejansko Si24Ri (ja, kitajski izdelek).
4. Klonski in ponarejeni moduli bodo porabili več energije, zato svojega napajalnega vezja ne razvijajte na podlagi podatkovnega lista nRF24L01 +, ker bo imel Si24Ri visoko trenutno porabo približno 250 mA.
5. Pazite se valovanja napetosti in trenutnih napetosti, ti moduli so zelo občutljivi in lahko zlahka izgorijo. (;- (do zdaj prepražili 2 modula)
6. Dodajanje parnih kondenzatorjev (10uF in 0,1uF) v Vcc in Gnd modula pomaga pri čiščenju vaše oskrbe, kar deluje pri večini modulov.
Še vedno, če imate težave, poročajte v razdelku s komentarji ali preberite to.
Programiranje Arduinosa:
Program za Arduino Nano in Mega bo podoben pri spremembi zatičev CE in CS. Program bom razložil tako, da ga bom razdelil na majhne segmente.
Ker Arduino in nRF24L01 komunicirata prek SPI, smo poklicali knjižnico SPI. Vključili smo tudi našo maniacbug RF24 lib za delovanje naših RF modulov. Datoteko prenesite od tukaj in jih dodajte v svoj IDE.
#include
Naši moduli NRF so povezani na zatič 8 in 10 na CE oziroma CS.
RF24 myRadio (8, 10);
Ustvarimo strukturiran podatkovni paket, imenovan paket . Spremenljivo besedilo bo uporabljeno za prenos podatkov v eter.
strukturni paket {besedilo char; // Besedilo za prenos v eter}; typedef struct paket Paket; Podatki o paketu;
V funkciji void setup () inicializiramo hitrost prenosa na 9600 in nastavimo naše module na 115 z MIN porabo energije in hitrostjo 250KBPS. S temi vrednostmi se lahko kasneje ukvarjate.
void setup () {Serial.begin (9600); zamuda (1000); //Serial.print("Nastavitev je bila inicializirana "); myRadio.begin (); myRadio.setChannel (115); // pas 115 nad WIFI signali myRadio.setPALevel (RF24_PA_MIN); // MIN moči nizke stopnje myRadio.setDataRate (RF24_250KBPS); // Minimalna hitrost}
Modul deluje tako, da deluje v načinu prenosa, če podatke prejema serijski vmesnik, sicer bo v načinu sprejemnika iskal podatke v zraku. Podatki uporabnika se shranijo v matriko char in pošljejo v WriteData () za njihov prenos.
void loop () {while (Serial.available ()> 0) // Pridobi vrednosti od uporabnika {val = Serial.peek (); if (index <19) // Eno manjše od velikosti polja {inChar = Serial.read (); // Preberemo znak inData = inChar; // Shrani indeks ++; // Povečanje, kam naj zapišemo inData = '\ 0'; // Ničelno zaključi niz} if (val == '#') {strcpy (data.text, inData); WriteData (); // Modul postavimo v način prenosa, medtem ko (indeks! = 0) {inData = ''; indeks--; }}} ReadData (); // Vstavi modul Sprejemni način}
void WriteData () funkcija zapisuje podatke na naslov 0xF0F0F0F0AA, ta naslov se uporablja kot cev za zapisovanje v drug modul.
void WriteData () {myRadio.stopListening (); // Nehajte prejemati in začnite prenašati myRadio.openWritingPipe (0xF0F0F0F066); // Pošlje podatke na ta 40-bitni naslov myRadio.write (& data, sizeof (data)); zamuda (300); }
void ReadData () funkcija zapisuje podatke na 0xF0F0F0F066 ta naslov, ta naslov se uporablja kot bralna cev na drugem modulu.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Katero cev za branje, 40-bitni naslov myRadio.startListening (); // Nehajte pošiljati in začnite preverjati, če je (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
To je to, našega programskega dela je konec. Če tukaj ne razumete nekaj stvari, preverite dva programa za oba Arduinosa, podana v spodnjem oddelku Code, dodal sem vrstice komentarjev, da stvari pojasnim veliko bolje.
Program obdelave:
'Processing' je odprtokodna programska oprema, ki jo umetniki uporabljajo za grafično oblikovanje. Ta programska oprema se uporablja za razvoj programske opreme in aplikacij za Android. Preprosto ga je razviti in je zelo podoben IDE za razvoj Android. Zato sem razlago skrajšal.
Koda obdelave za oba zaslona klepeta je podana tukaj:
- Zaslon klepeta 1 Obdelava kode
- Zaslon klepeta 2 Obdelava kode
Z desno miškino tipko kliknite nanje in kliknite »Shrani povezavo kot..«, da jih prenesete in odprete v računalniku po nastavitvi Arduinosa. Če želite odpreti te datoteke.pde, morate namestiti programsko opremo 'Processing' in jih nato zagnati, da odprete klepetalnice. Oddelek za komentarje je odprt za poizvedbe. Skica za obdelavo oddajnika in sprejemnika je enaka.
V spodnjem odseku kode je pomemben "port = new Serial (this, Serial.list (), 9600); // prebere 4. PORT s hitrostjo 9600 baudrov" , saj se odloči, iz katerega pristanišča bodo podatki.
void setup () {velikost (510.500); port = new Serial (this, Serial.list (), 9600); // prebere 4. PORT na 9600 baudrate println (Serial.list ()); ozadje (0); }
Tukaj sem prebral podatke iz 4. pristanišča iz mojega Arduina.
Tako na primer, če imate COM COM COM COM COM
Nato bo zgornja koda prebrala podatke iz COM.
Testiranje:
Ker je naša skica za obdelavo in Arduino pripravljena, samo naložite program v Arduino in ga pustite priključenega na prenosni računalnik. Odprite skico za obdelavo in začnite tipkati in pritisnite "Enter", vaše sporočilo bo poslano drugemu Arduinu, ki bo prejeto besedilo prikazal v drugi aplikaciji za obdelavo, ki je povezana z drugim računalnikom. Nadalje preverite spodnji video za popoln prikaz.
Tako lahko s to poceni klepetalnico Arduino pogovorite s prijatelji in družino na vašem območju, ne da bi imeli internetno povezavo.