- Pracovné vysvetlenie:
- Požadované komponenty:
- Schéma zapojenia:
- Práca s modulom bezdrôtového vysielača / prijímača nRF24L01 +:
- Programovanie Arduinos:
- Program spracovania:
- Testovanie:
Vytvorenie lokálnej siete na zdieľanie personálu a dôverných údajov je pre bežného človeka v našom modernom svete takmer nemožné. Je to hlavne preto, že všetky bežné metódy chatu ako Whatsapp, Facebook, Hangout a takmer všetko zahŕňajú pripojenie na internet.
Čo ak by sme mohli zdieľať údaje bez použitia internetu ?
Aké by to bolo, keby ste mohli komunikovať s ľuďmi v domácnosti alebo na pracovisku bez sieťového balíka alebo internetového pripojenia?
Čo ak by sme si mohli prispôsobiť našu obrazovku chatu podľa vlastných predstáv?
To všetko je možné pomocou mikrokontroléra a bezdrôtového prenosového média. Táto chatovacia miestnosť Arduino využívajúca projekt nRF24L01 vás prevedie nastavením nízkonákladovej chatovacej miestnosti vo vašej miestnej oblasti.
Poďme teda naskočiť a pozrime sa, ako to funguje.
Pracovné vysvetlenie:
V zásade, aby táto vec fungovala, budeme potrebovať pár dosiek Arduino a lacné bezdrôtové moduly. Bezdrôtové moduly, ktoré tu budeme používať, sú nRF24L01. Dôvodom pre výber týchto modulov je, že ide o nástupcov Zigbee a je ľahké pracovať s nastaveným pripojením. Tieto moduly tiež pracujú na pásme 2,4 GHz (pásmo ISM) s možnosťou rozšírenia spektra frekvenčného skákania a možnosťami nárazových nárazov, vďaka čomu sa cítime uvoľnení od problémov s rušením.
Naše Arduino a NRF24L01 sú prepojené tak, aby nadviazali sériovú komunikáciu, aby mohli spolu komunikovať. NRF24L01 sú poloduplexné vysielacie a prijímacie moduly, a preto môžu odosielať a prijímať údaje. Údaje sa zhromažďujú od používateľa a prenášajú sa. Tieto údaje môžu prijímať ľubovoľné (alebo jeden konkrétny) modul a zobrazovať ich na svojej obrazovke.
Ale!!!!! Budeme chatovať pomocou obrazovky Debug v Arduine? Samozrejme, že nie. Chystáme sa vytvoriť a prispôsobiť našu vlastnú obrazovku rozhovoru pomocou 'Spracovania'. Processing je softvér, ktorý je schopný komunikovať s Arduinom pomocou UART. Vytvoríme súbor.exe s jazykom Processing, ktorý je možné spustiť na ľubovoľnom počítači s Java Runtime. Aby sme mohli chatovať, stačí zapojiť naše Arduino a otvoriť tento súbor.exe a Booooom !! sme v našej vlastnej Privatizovanej úplne bezplatnej chatovacej miestnosti.
Tento projekt je obmedzený na iba pridanie dvoch členov do chatovacej miestnosti, ale nRF24L01 má 6 potrubí, a tak by v našej chatovacej miestnosti mohlo byť maximálne 6 členov. Táto char izba môže pracovať v rozmedzí 100 metrov v závislosti od modulov nRF24L01.
Tak poďme nakupovať !!!!
Požadované komponenty:
- Arduino (ľubovoľná verzia alebo model) - 2Nos
- Modul bezdrôtového vysielača / prijímača nRF24L01 + - 2Nos
- 3.3 Regulátor napätia - 2 č. (Nie je povinné)
- Pripojovacie vodiče
- Úroky (lolz)
Schéma zapojenia:
Arduino Mega s nRF24L01:
Arduino Nano s nRF24L01:
Náš projekt nezahŕňa žiadne zložité spojenia. Použil som Arduino Mega a Arduino Nano a ich spojenia s nRF24L01 sú uvedené vyššie. Môžete použiť akékoľvek modely Arduino.
Práca s modulom bezdrôtového vysielača / prijímača nRF24L01 +:
Avšak aby náš nRF24L01 fungoval bez šumu, možno budeme chcieť zvážiť nasledujúce veci. Na tomto nRF24L01 + pracujem už dlho a zistil som, že nasledujúce body vám môžu pomôcť pri zasiahnutí steny.
1. Väčšina modulov nRF24L01 + na trhu je falošná. Lacné, ktoré nájdeme na Ebay a Amazone, sú najhoršie (nebojte sa, vďaka niekoľkým vylepšeniam ich dokážeme zariadiť)
2. Hlavným problémom je napájanie, nie váš kód. Väčšina kódov online bude fungovať správne. Ja sám mám pracovný kód, ktorý som osobne testoval. Ak potrebujete, dajte mi vedieť.
3. Venujte pozornosť, pretože moduly, ktoré sú vytlačené ako NRF24L01 +, sú v skutočnosti Si24Ri (Áno, čínsky produkt).
4. Klony a falošné moduly budú spotrebovávať viac energie, preto nevyvíjajte svoj napájací obvod na základe údajového listu nRF24L01 +, pretože Si24Ri bude mať vysoký prúdový odber asi 250 mA.
5. Dávajte pozor na zvlnenie napätia a prúdové rázy, tieto moduly sú veľmi citlivé a mohli by sa ľahko spáliť. (;-(dosiaľ vyprážané 2 moduly)
6. Pridanie párového kondenzátora (10 uF a 0,1 uF) medzi moduly Vcc a Gnd modulu pomáha zabezpečiť čistý zdroj napájania, čo funguje pre väčšinu modulov.
Napriek tomu, ak máte problémy, nahláste komentár alebo si ich prečítajte.
Programovanie Arduinos:
Program pre Arduino Nano aj Mega bude pri zmene pinov CE a CS podobný. Program vysvetlím tak, že ho rozdelím na malé segmenty.
Pretože Arduino a nRF24L01 komunikujú prostredníctvom SPI, požadovali sme knižnicu SPI. Taktiež sme zahrnuli náš Maniacbug RF24 lib, aby naše RF moduly fungovali. Stiahnite si súbor odtiaľto a pridajte ich do svojho IDE.
#include
Naše moduly NRF sú pripojené na pin 8 a 10 na CE a CS.
RF24 myRadio (8, 10);
Vytvárame balík štruktúrovaných údajov s názvom balíček . Variabilný text sa použije na prenos údajov o vzduchu.
struct balíček {char text; // Text na vysielanie v éteri}; typedef struct balíček Balíček; Údaje o balíku;
Vo funkcii void setup () inicializujeme prenosovú rýchlosť na 9600 a nastavíme naše moduly na 115 s MIN príkonom a rýchlosťou 250 kBps. S týmito hodnotami sa môžete pohrávať neskôr.
void setup () {Serial.begin (9600); oneskorenie (1 000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // pásmo 115 nad WIFI signály myRadio.setPALevel (RF24_PA_MIN); // MIN nízky výkon myRadio.setDataRate (RF24_250KBPS); // Minimálna rýchlosť}
Modul je vyrobený tak, aby pracoval v režime vysielania, ak sú dáta prijímané cez sériovú vyrovnávaciu pamäť, inak bude v režime prijímača vyhľadávať údaje o vzduchu. Dáta od používateľa sú uložené v znakovom poli a na ich prenos sa odosielajú do WriteData () .
void loop () {while (Serial.available ()> 0) // Získanie hodnôt od používateľa {val = Serial.peek (); if (index <19) // O jedno menšie ako veľkosť poľa {inChar = Serial.read (); // Čítanie znaku inData = inChar; // Ulož to index ++; // Prírastok kam zapísať ďalší inData = '\ 0'; // Null ukončite reťazec} if (val == '#') {strcpy (data.text, inData); WriteData (); // Prepnutie modulu do režimu vysielania while (index! = 0) {inData = ''; index--; }}} ReadData (); // Vložte modul do režimu príjmu}
void WriteData () funkcia zapíše údaje na adresu 0xF0F0F0F0AA, táto adresa sa použije ako zápis rúry na iný modul.
void WriteData () {myRadio.stopListening (); // Zastaviť príjem a spustiť transmisiu myRadio.openWritingPipe (0xF0F0F0F066); // Odošle údaje na túto 40-bitovú adresu myRadio.write (& data, sizeof (data)); oneskorenie (300); }
void ReadData () funkcia zapíše dáta na 0xF0F0F0F066 túto adresu, táto adresa sa použije ako čítacia rúra na inom module.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Ktoré potrubie sa má načítať, 40 bitová adresa myRadio.startListening (); // Zastavte prenos a začnite reveicing, ak (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
To je všetko, naša programátorská časť skončila. Ak tu nemôžete pochopiť niekoľko vecí, skontrolujte oba programy pre Arduinos, ktoré sú uvedené v časti Kód nižšie. Pridal som riadky komentárov, aby som veci vysvetlil oveľa lepšie.
Program spracovania:
„Spracovanie“ je softvér s otvoreným zdrojovým kódom, ktorý používajú umelci na grafickú tvorbu. Tento softvér sa používa na vývoj softvéru a aplikácií pre Android. Jeho vývoj je dosť jednoduchý a veľmi podobný vývojovému prostrediu Android Development IDE. Preto som vysvetlenie skrátil.
Procesný kód pre obe obrazovky rozhovoru je uvedený tu:
- Chatovací obrazovka 1 Spracovávací kód
- Kód spracovania obrazovky Chat 2
Kliknite na ne pravým tlačidlom myši a kliknutím na položku „Uložiť odkaz ako..“ ich stiahnite a po nastavení Arduina otvorte vo svojom počítači. Musíte otvoriť softvér „Processing“, aby ste otvorili tieto súbory *.pde, a potom ich „spustiť“, aby ste otvorili chat boxy. Sekcia komentárov je otvorená pre dotazy. Náčrt spracovania pre modul vysielača prijímač sú identické.
V nasledujúcej časti s kódom je dôležitý „port = new Serial (this, Serial.list (), 9600); // Číta 4. PORT pri 9600 baudrate“, pretože rozhoduje, z ktorého portu majú údaje vychádzať.
void setup () {size (510 500); port = new Serial (this, Serial.list (), 9600); // Prečíta 4. PORT na 9600 baudrate println (Serial.list ()); pozadie (0); }
Tu som prečítal údaje zo 4. portu z môjho Arduina.
Takže napríklad ak máte COM COM COM COM COM
Vyššie uvedený kód potom načíta údaje z modelu COM.
Testovanie:
Teraz, keď je náš náčrt Processing and Arduino pripravený, stačí nahrať program do Arduina a nechať ho pripojený k notebooku. Otvorte náčrt spracovania a začnite písať a stlačte kláves „Enter“, vaša správa sa prenesie na druhé Arduino, ktoré zobrazí prijatý text v inej aplikácii na spracovanie pripojenej k inému počítaču. Ďalšiu ukážku nájdete vo videu nižšie.
Takto môžete hovoriť so svojimi priateľmi a rodinou vo vašej oblasti bez pripojenia k internetu pomocou tejto lacnej chatovacej miestnosti Arduino.