- Darba skaidrojums:
- Nepieciešamās sastāvdaļas:
- Ķēdes shēma:
- Darbs ar nRF24L01 + bezvadu raiduztvērēja moduli:
- Arduinos programmēšana:
- Apstrādes programma:
- Testēšana:
Vietējā tīkla izveide personāla un konfidenciālu datu apmaiņai ir kļuvusi gandrīz neiespējama parastam cilvēkam mūsdienu pasaulē. Tas galvenokārt notiek tāpēc, ka visas parastās tērzēšanas metodes, piemēram, Whatsapp, Facebook, Hangout un gandrīz viss, ir saistītas ar interneta savienojumu.
Kā būtu, ja mēs varētu koplietot datus bez interneta nesēja ?
Cik forši būtu, ja jūs varētu sazināties ar cilvēkiem jūsu mājas vai darba vietā bez tīkla paketes vai interneta savienojuma?
Ko darīt, ja mēs varētu pielāgot tērzēšanas ekrānu pēc savas iztēles?
Tas viss ir iespējams ar mikrokontrolleru un bezvadu pārraides nesēju. Šī Arduino tērzēšanas istaba, kurā tiek izmantots nRF24L01 projekts, palīdzēs jums izveidot zemu cenu tērzēšanas istabu savā reģionā.
Tāpēc ielecam un redzēsim, kā tas darbojas.
Darba skaidrojums:
Būtībā, lai šī lieta darbotos, mums būs nepieciešami pāris Arduino dēļi un lēti bezvadu moduļi. Bezvadu moduļi, kurus mēs šeit izmantosim, ir nRF24L01. Šo moduļu izvēles iemesls ir tas, ka šie ir Zigbee pēcteci, un ar izveidotu savienojumu ir viegli strādāt. Arī šie moduļi darbojas ar 2,4 GHz (ISM joslu) ar frekvenču lēciena izplatības spektru un trieciena pārsprāgt iespējām, kas liek mums justies atvieglotiem no traucējumu problēmām.
Mūsu Arduino un NRF24L01 ir savienoti kopā, lai izveidotu sērijas sakarus, lai viņi varētu sarunāties savā starpā. NRF24L01 ir pusdupleksu raiduztvērēju moduļi, tādējādi tie var nosūtīt un saņemt datus. Dati tiek savākti no lietotāja un pārsūtīti. Tos var saņemt jebkurš (vai viens konkrēts) modulis un parādīt to uz ekrāna.
Bet !!!!! Vai mēs tērzēsim, izmantojot Arduino atkļūdošanas ekrānu? Protams, nē. Mēs izveidosim un pielāgosim savu tērzēšanas ekrānu, izmantojot 'Apstrāde'. Apstrāde ir programmatūra, kas spēj sazināties ar Arduino, izmantojot UART. Mēs izveidosim.exe failu ar apstrādes valodu, kas varētu darboties jebkurā datorā ar Java Runtime. Lai tērzētu, mums vienkārši jāpievieno mūsu Arduino un jāatver šis.exe fails, un Booooom !! mēs esam savā privatizētajā, pilnīgi bezmaksas tērzēšanas telpā.
Šis projekts aprobežojas ar divu dalībnieku pievienošanu tērzēšanas istabai, taču nRF24L01 ir 6 cauruļvadi, un tāpēc mūsu tērzēšanas telpā varētu būt ne vairāk kā 6 dalībnieki. Šī char zāle var darboties 100 metru diapazonā atkarībā no nRF24L01 moduļiem.
Tātad ejam iepirkties !!!!
Nepieciešamās sastāvdaļas:
- Arduino (jebkura versija vai modelis) - 2Nos
- nRF24L01 + bezvadu raiduztvērēja modulis - 2Nos
- 3.3. Sprieguma regulators - 2Nos. (Nav obligāti)
- Savienojošie vadi
- Procenti (Lolz)
Ķēdes shēma:
Arduino Mega ar nRF24L01:
Arduino Nano ar nRF24L01:
Mūsu projekts neietver sarežģītus savienojumus. Esmu izmantojis Arduino Mega un Arduino Nano, un to savienojumi ar nRF24L01 ir parādīti iepriekš. Jūs varat izmantot visus Arduino modeļus.
Darbs ar nRF24L01 + bezvadu raiduztvērēja moduli:
Tomēr, lai mūsu nRF24L01 darbotos bez trokšņa, ieteicams apsvērt šādas lietas. Es ilgu laiku strādāju ar šo nRF24L01 + un uzzināju, ka šādi punkti var palīdzēt jums nokļūt pret sienu.
1. Lielākā daļa tirgū esošo nRF24L01 + moduļu ir viltoti. Lētākie, kurus mēs varam atrast ebay un Amazon, ir vissliktākie (neuztraucieties, jo ar dažiem pielāgojumiem mēs varam tos darbināt)
2. Galvenā problēma ir barošanas avots, nevis jūsu kods. Lielākā daļa tiešsaistes kodu darbosies pareizi, man pašam ir darba kods, kuru es personīgi pārbaudīju. Informējiet mani, ja jums tie ir nepieciešami.
3. Pievērsiet uzmanību, jo moduļi, kas tiek drukāti kā NRF24L01 +, faktiski ir Si24Ri (jā, ķīniešu ražojums).
4. Klona un viltus moduļi patērēs vairāk enerģijas, tāpēc neattīstiet savu strāvas ķēdi, pamatojoties uz nRF24L01 + datu lapu, jo Si24Ri būs liels strāvas patēriņš aptuveni 250mA.
5. Sargieties no sprieguma viļņiem un strāvas pārsprieguma, šie moduļi ir ļoti jutīgi un var viegli izdegt. (;-(līdz šim apcepis 2 moduļus)
6. Pievienojot pāris kondensatorus (10uF un 0,1uF) pāri moduļa Vcc un Gnd, jūsu padeve kļūst tīra, un tas darbojas lielākajā daļā moduļu.
Tomēr, ja jums ir problēmas, ziņojiet par komentāru sadaļu vai izlasiet to.
Arduinos programmēšana:
Gan Arduino Nano, gan Mega programma būs līdzīga izmaiņām CE un CS tapās. Es paskaidrošu programmu, sadalot to mazos segmentos.
Tā kā Arduino un nRF24L01 sazinās caur SPI, mēs esam aicinājuši izveidot SPI bibliotēku. Mēs esam iekļāvuši arī mūsu Maniacbug RF24 lib, lai darbotos mūsu RF moduļi. Lejupielādējiet failu šeit un pievienojiet tos savam IDE.
# iekļaut
Mūsu NRF moduļi ir savienoti ar 8. un 10. kontaktu attiecīgi ar CE un CS.
RF24 myRadio (8, 10);
Mēs izveidojam strukturētu datu paketi, ko sauc par paketi . Mainīgais teksts tiks izmantots, lai pārraidītu datus pa gaisu.
struct pakete {char text; // Teksts, kas jāpārraida ēterā}; typedef struct pakete Package; Iepakojuma dati;
Jo spēkā uzstādīšana () funkciju, mēs sāktu bodu likmi 9.600 un uzstādīšana mūsu moduļus 115 ar MIN enerģijas patēriņu un 250kbps ātrumu. Ar šīm vērtībām jūs varat pakavēties vēlāk.
void setup () {Sērijas.sākt (9600); kavēšanās (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 josla virs WIFI signāliem myRadio.setPALevel (RF24_PA_MIN); // MIN jauda zema dusmas myRadio.setDataRate (RF24_250KBPS); // Minimālais ātrums}
Modulis ir paredzēts darbam pārraides režīmā, ja dati tiek saņemti, izmantojot seriālo buferi, pretējā gadījumā tas būs uztvērēja režīmā, meklējot datus gaisā. Lietotāja dati tiek glabāti char Array un nosūtīti uz WriteData (), lai tos pārsūtītu.
void loop () {while (Serial.available ()> 0) // Iegūstiet vērtības no lietotāja {val = Serial.peek (); if (indekss <19) // Viens mazāks par masīva lielumu {inChar = Serial.read (); // Lasīt rakstzīmi inData = inChar; // Store it index ++; // Pieaugums, kur rakstīt nākamo inData = '\ 0'; // Nulle pārtrauc virkni} if (val == '#') {strcpy (data.text, inData); WriteData (); // Ievietojiet moduli raidīšanas režīmā while (indekss! = 0) {inData = ''; indekss--; }}} ReadData (); // Put moduļa saņemšanas režīms}
void WriteData () funkcija raksta datus uz 0xF0F0F0F0AA adresi, šī adrese tiek izmantota kā rakstīšanas caurule citā modulī.
void WriteData () {myRadio.stopListening (); // Pārtrauciet saņemšanu un sāciet pārvaldīt myRadio.openWritingPipe (0xF0F0F0F066); // Nosūta datus par šo 40 bitu adresi myRadio.write (& data, sizeof (data)); kavēšanās (300); }
void ReadData () funkcija raksta datus uz 0xF0F0F0F066 šo adresi, šī adrese tiek izmantota kā cita moduļa lasīšanas caurule.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // kuru cauruli lasīt, 40 bitu adrese myRadio.startListening (); // Pārtrauciet pārsūtīšanu un sāciet Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (dati.teksts); }}
Tas ir viss, mūsu programmēšanas daļa ir beigusies. Ja jūs šeit nevarat saprast dažas lietas, pārbaudiet abas Arduinos programmas, kas norādītas zemāk esošajā sadaļā Kods. Esmu pievienojis komentāru rindiņas, lai daudz labāk izskaidrotu lietas.
Apstrādes programma:
“Apstrāde” ir atvērtā pirmkoda programmatūra, kuru mākslinieki izmanto grafikas projektēšanā. Šī programmatūra tiek izmantota programmatūras un Android lietojumprogrammu izstrādei. Tas ir diezgan viegli izstrādājams un ļoti līdzīgs Android Development IDE. Tāpēc esmu saīsinājis paskaidrojumu.
Abu tērzēšanas ekrānu apstrādes kods ir norādīts šeit:
- 1. tērzēšanas ekrāns Apstrādā kodu
- Tērzēšanas ekrāns 2 Apstrādā kodu
Ar peles labo pogu noklikšķiniet uz tiem un noklikšķiniet uz Saglabāt saiti kā.., lai tos lejupielādētu un pēc Arduinos iestatīšanas atvērtu datorā. Lai atvērtu šos *.pde failus, jāinstalē programmatūra “Apstrāde” un pēc tam “Palaist”, lai atvērtu tērzēšanas kastes. Komentāru sadaļa ir atvērta vaicājumiem. Raidītāja un uztvērēja moduļa apstrādes skice ir identiska.
Zemāk esošajā koda sadaļā "ports = new Serial (this, Serial.list (), 9600); // 4. portu nolasa ar 9600 baudratu" ir liela nozīme, jo tas izlemj, no kura porta uz datiem.
void setup () {izmērs (510 500); ports = jauna sērija (this, Serial.list (), 9600); // Izlasa 4. OSTU pie 9600 baudrate println (Serial.list ()); fons (0); }
Šeit es esmu izlasījis datus no 4. porta no sava Arduino.
Tā, piemēram, ja jums ir COM COM COM COM COM COM
Tad iepriekš minētais kods nolasīs datus no COM.
Testēšana:
Tā kā mūsu apstrādes un Arduino skice ir gatava, vienkārši augšupielādējiet programmu Arduino un atstājiet to pieslēgtu klēpjdatoram. Atveriet savu apstrādes skici un sāciet rakstīt un nospiediet taustiņu "Enter". Jūsu ziņa tiks pārsūtīta uz otru Arduino, kas parādīs saņemto tekstu citā apstrādes lietojumprogrammā, kas savienota ar citu datoru. Tālāk pārbaudiet tālāk redzamo videoklipu, lai pilnībā demonstrētu.
Tādējādi, izmantojot šo lēto Arduino tērzēšanas istabu, varat sarunāties ar draugiem un ģimeni vietējā apkārtnē bez interneta savienojuma.