- Munka magyarázat:
- Szükséges alkatrészek:
- Kördiagramm:
- Az nRF24L01 + vezeték nélküli adó-vevő modul használata:
- Az Arduinos programozása:
- Feldolgozó program:
- Tesztelés:
A személyi és bizalmas adatok megosztására szolgáló helyi hálózat létrehozása szinte lehetetlenné vált egy közönséges ember számára a modern világunkban. Ennek oka elsősorban az, hogy az összes elterjedt csevegési módszer, például a Whatsapp, a Facebook, a Hangout és szinte minden, internetkapcsolattal jár.
Mi lenne, ha megoszthatnánk az adatokat az internet adathordozója nélkül ?
Mennyire jó lenne, ha net-csomag vagy internetkapcsolat nélkül kommunikálhatna otthonában vagy munkahelyén tartózkodó emberekkel ?
Mi lenne, ha testre szabhatnánk a csevegés képernyőjét a saját elképzeléseink szerint?
Mindez mikrovezérlővel és vezeték nélküli átviteli közeggel lehetséges. Ez az nRF24L01 Projektet használó Arduino csevegőszoba végigvezeti Önt egy alacsony költségű csevegőszoba felállításán a saját területén.
Szóval ugorjunk be, és nézzük meg, hogyan működik.
Munka magyarázat:
Alapvetően ahhoz, hogy ez a dolog működjön, szükségünk lesz egy pár Arduino táblára és olcsó vezeték nélküli modulokra. Az itt használt vezeték nélküli modulok az nRF24L01. Ezeknek a moduloknak a választása az az oka, hogy ezek a Zigbee utódjai, és könnyen kezelhető egy beállított kapcsolattal. Ezek a modulok 2,4 GHz-en (ISM sávon) is működnek, frekvenciaugrásos szórásspektrummal és sokkos tört-opciókkal, ami nyugodtnak érezzük magunkat az interferencia problémák miatt.
Arduinónk és az NRF24L01 egységünk össze van kötve egy soros kommunikáció létrehozása érdekében, hogy beszélhessenek egymással. Az NRF24L01 félig duplex adó-vevő modulok, így képesek adatokat küldeni és fogadni. Az adatokat a felhasználótól gyűjtik és továbbítják, ezeket bármely (vagy egy adott) modul fogadhatja és megjelenítheti a képernyőn.
De!!!!! Csevegni fogunk az Arduino Debug képernyőjén? Természetesen nem. A „Feldolgozás” segítségével elkészítjük és testre szabjuk saját csevegőképernyőnket. A feldolgozás olyan szoftver, amely képes kommunikálni az Arduinóval az UART használatával. Létrehozunk egy.exe fájlt a Processing nyelvvel, amely bármely Java Runtime számítógépen futtatható. A csevegéshez csak be kell csatlakoztatnunk az Arduino-t és meg kell nyitnunk ezt az.exe fájlt, és a Booooom !! belépünk a saját privatizált, teljesen ingyenes chat- szobánkba.
Ez a projekt csak két tag felvételére korlátozódik a csevegőszobába, de az nRF24L01 6 csővezetékkel rendelkezik, és így legfeljebb 6 tag lehet a csevegőszobánkban. Ez a faszoba az nRF24L01 moduloktól függően 100 méteres hatótávolságon belül működhet.
Tehát menjünk vásárolni !!!!
Szükséges alkatrészek:
- Arduino (bármilyen verzió vagy modell) - 2
- nRF24L01 + vezeték nélküli adó-vevő modul - 2
- 3.3 Feszültségszabályozó - 2Nos. (Nem kötelező)
- Csatlakozó vezetékek
- Kamat (Lolz)
Kördiagramm:
Arduino Mega nRF24L01-vel:
Arduino Nano nRF24L01-vel:
Projektünk nem tartalmaz komplex kapcsolatokat. Használtam egy Arduino Mega-t és egy Arduino Nano-t, és ezek kapcsolata az nRF24L01-vel fent látható. Bármely Arduino modellt használhat.
Az nRF24L01 + vezeték nélküli adó-vevő modul használata:
Annak érdekében azonban, hogy az nRF24L01 zajmentesen működjön, érdemes a következő dolgokat figyelembe venni. Sokáig dolgoztam ezen az nRF24L01 + -on, és megtanultam, hogy a következő pontok segíthetnek abban, hogy a falnak ütközzen.
1. A legtöbb nRF24L01 + modul hamis. Az Ebay-en és az Amazon-on található legolcsóbbak a legrosszabbak (Ne aggódj, kevés módosítással működtethetjük őket)
2. A fő probléma az áramellátás, nem pedig a kód. Az online kódok többsége megfelelően fog működni, nekem is van egy működő kódom, amelyet személyesen teszteltem. Mondja meg, ha szüksége van rájuk.
3. Figyeljen, mert az NRF24L01 + néven nyomtatott modulok valójában Si24Ri (igen, kínai termékek).
4. A klón és a hamis modulok több energiát fognak fogyasztani, ezért ne az nRF24L01 + adatlap alapján fejlessze a főáramkört, mert a Si24Ri nagy áramfogyasztással rendelkezik, körülbelül 250 mA-vel.
5. Óvakodjon a feszültség hullámaitól és az áramfeszültségektől, ezek a modulok nagyon érzékenyek és könnyen kiéghetnek. (;-(eddig 2 modult sütött fel)
6. Egy pár kondenzátor (10uF és 0,1uF) hozzáadása a modul Vcc-jéhez és Gnd-jéhez elősegíti az ellátás tisztaságát, és ez a legtöbb modul esetében működik.
Mégis, ha problémái vannak, jelentse a megjegyzés részt, vagy olvassa el ezt.
Az Arduinos programozása:
Az Arduino Nano és a Mega programja hasonló lesz a CE és CS csapok változásához. A programot úgy fogom elmagyarázni, hogy apró részekre bontom.
Mivel az Arduino és az nRF24L01 az SPI-n keresztül kommunikál, hívtuk az SPI könyvtárat. Az RF modulok működéséhez a Maniacbug RF24 lib szoftverünket is beépítettük. Töltse le a fájlt innen, és adja hozzá őket az IDE-hez.
#include
Az NRF moduljaink a 8. és 10. érintkezőhöz csatlakoznak a CE-hez, illetve a CS-hez.
RF24 myRadio (8, 10);
Készítünk egy strukturált adatok nevű csomagot csomagot . A változó szöveget az adatok levegőn történő továbbítására fogják használni.
struct csomag {char text; // levegőben továbbítandó szöveg}; typedef struct csomag Csomag; Csomagadatok;
A void setup () függvényben az átviteli sebességet 9600-ra inicializáljuk, és moduljainkat 115-re állítjuk MIN energiafogyasztással és 250KBPS sebességgel. Ezekkel az értékekkel később lehet babrálni.
void setup () {Soros.kezdés (9600); késés (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 sáv feletti WIFI jelek myRadio.setPALevel (RF24_PA_MIN); // MIN teljesítmény alacsony düh myRadio.setDataRate (RF24_250KBPS); // Minimális sebesség}
A modul átviteli üzemmódban működik, ha az adatokat soros pufferen keresztül fogadja, különben vevő módban lesz, és levegőben lévő adatokat keres. A felhasználótól származó adatokat egy char tömbben tárolják, és továbbítják a WriteData () -nak .
void loop () {while (Serial.available ()> 0) // Értékek beolvasása a {val = Serial.peek () felhasználótól; if (index <19) // eggyel kisebb a tömb méreténél {inChar = Serial.read (); // Karakter olvasása inData = inChar; // tárolja index ++; // A következő helyre növekszik inData = '\ 0'; // A karakterlánc Null felmondása} if (val == '#') {strcpy (data.text, inData); WriteData (); // Helyezze a modult Átviteli módba, miközben (index! = 0) {inData = ''; index--; }}} ReadData (); // Modul fogadása üzemmód}
void WriteData () függvény írja az adatokat a 0xF0F0F0F0AA címre, ezt a címet írjuk be a másik modul csöveként.
void WriteData () {myRadio.stopListening (); // Állítsa le a vételt, és indítsa el a myRadio.openWritingPipe (0xF0F0F0F066) átvitelt; // Adatokat küld ezen a 40 bites címen myRadio.write (& data, sizeof (data)); késés (300); }
void A ReadData () függvény írja be az adatokat a 0xF0F0F0F066 fájlra erre a címre, ezt a címet más modul olvasócsöveként használják.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Melyik pipát kell olvasni, 40 bites cím myRadio.startListening (); // Állítsa le az átírást és indítsa el a Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Soros.println (adat.szöveg); }}
Ez az, a programozási részünknek vége. Ha itt nem ért néhány dolgot, ellenőrizze a két programot mindkét Arduinos esetében, amelyet az alábbi Kód szakasz tartalmaz. Hozzáadtam a megjegyzések sorait, hogy sokkal jobban elmagyarázzam a dolgokat.
Feldolgozó program:
A „Processing” egy nyílt forráskódú szoftver, amelyet a művészek használnak a grafikai tervezéshez. Ezt a szoftvert szoftverek és Android alkalmazások fejlesztésére használják. Könnyen fejleszthető és nagyon hasonlít az Android Development IDE-hez. Ezért lerövidítettem a magyarázatot.
A feldolgozási kód mind a Chat képernyők itt adott:
- 1. csevegőképernyő Kód feldolgozása
- 2. csevegőképernyő kód feldolgozása
Kattintson jobb gombbal rájuk, és kattintson a "Hivatkozás mentése másként" gombra, hogy letöltse őket, és az Arduinos beállítása után megnyissa a számítógépén. A *.pde fájlok megnyitásához telepítenie kell a „Processing” szoftvert, majd a „Futtatás” paranccsal meg kell nyitnia a Chat Boxokat. Megjegyzés szakasz nyitva van a lekérdezésekhez. Az adó és a vevő modul feldolgozási vázlata megegyezik.
Az alábbi kódrészben fontos a "port = new Serial (this, Serial.list (), 9600); // 9600 baudrátán olvassa a 4. portot " , mivel eldönti, hogy melyik portról kívánja az adatokat.
void setup () {size (510 500); port = new Serial (ez, Serial.list (), 9600); // A 4. PORT beolvasása 9600 baudrate nyomtatással (Serial.list ()); háttér (0); }
Itt olvastam adatokat az Arduino-m 4. portjáról.
Tehát például ha van COM COM COM COM COM COM
Ezután a fenti kód beolvassa a COM adatait.
Tesztelés:
Most, hogy a Processing and Arduino vázlatunk készen áll, töltse fel a programot az Arduino-ra, és hagyja csatlakoztatva a laptopjához. Nyissa meg a Feldolgozás vázlatát, és kezdje el a gépelést, majd nyomja meg az "Enter" billentyűt. Az üzenet továbbításra kerül a másik Arduino-hoz, amely a fogadott szöveget megjeleníti egy másik, más számítógéphez csatlakoztatott feldolgozó alkalmazásban. További bemutatásért ellenőrizze az alábbi videót.
Tehát így beszélhet barátaival és családtagjaival a környékén internetkapcsolat nélkül, ezzel az olcsó Arduino csevegőszobával.