- Arbetsförklaring:
- Komponenter som krävs:
- Kretsschema:
- Arbeta med nRF24L01 + Trådlös sändtagarmodul:
- Programmering av Arduinos:
- Bearbetningsprogram:
- Testning:
Att skapa ett lokalt nätverk för att dela personal och konfidentiella data har blivit nästan omöjligt för en vanlig man i vår moderna värld. Detta beror främst på att alla vanliga chattmetoder som Whatsapp, Facebook, Hangout och nästan allt innebär en internetanslutning.
Vad händer om vi kunde dela data utan Internet ?
Hur coolt skulle det vara om du kunde kommunicera med människor i ditt hem eller på din arbetsplats utan ett nätpaket eller internetanslutning?
Vad händer om vi kunde anpassa vår chatt-skärm med vår egen fantasi?
Allt detta är möjligt med en mikrokontroller och ett trådlöst överföringsmedium. Detta Arduino-chattrum med nRF24L01-projektet hjälper dig att skapa ett billigt chattrum i ditt lokala område.
Så låt oss hoppa in och se hur det fungerar.
Arbetsförklaring:
I grund och botten för att denna sak ska fungera behöver vi ett par Arduino-kort och billiga trådlösa moduler. De trådlösa modulerna som vi kommer att använda här är nRF24L01. Anledningen till att välja dessa moduler är att dessa är efterföljare för Zigbee och är lätta att arbeta med en inställd anslutning. Dessa moduler fungerar också på 2,4 GHz (ISM-band) med frekvenshoppande spridningsspektrum och chock burst-alternativ som gör att vi känner oss avslappnade för störningsproblem.
Vår Arduino och NRF24L01 är sammankopplade för att skapa en seriekommunikation så att de kan prata med varandra. NRF24L01 är halv duplex sändtagarmoduler, så de kan skicka och ta emot data. Uppgifterna samlas in från användaren och överförda dessa data kan tas emot av valfri (eller en viss) modul och visas på deras skärm.
Men!!!!! Ska vi chatta med Arduino-skärmen Debug? Självklart inte. Vi ska bygga och anpassa vår egen chattskärm med hjälp av 'Processing'. Bearbetning är en programvara som kan kommunicera med Arduino med hjälp av UART. Vi skapar en.exe-fil med Processing-språk, som kan köras på vilken dator som helst med Java Runtime. För att chatta måste vi bara ansluta vår Arduino och öppna den här.exe-filen och Booooom !! vi är i vårt eget privatiserade helt gratis chattrum.
Detta projekt är begränsat till att bara lägga till två medlemmar i chattrummet, men nRF24L01 har 6 rörledningar, så det kan vara högst 6 medlemmar i vårt chattrum. Detta char room kan fungera inom 100 meters räckvidd beroende på nRF24L01-modulerna.
Så låt oss handla !!!!
Komponenter som krävs:
- Arduino (vilken version eller modell som helst) - 2Nos
- nRF24L01 + Trådlös sändtagarmodul - 2Nr
- 3.3 Spänningsregulator - 2Nr. (Inte obligatoriskt)
- Anslutande ledningar
- Intresse (Lolz)
Kretsschema:
Arduino Mega med nRF24L01:
Arduino Nano med nRF24L01:
Vårt projekt involverar inga komplexa kopplingar. Jag har använt en Arduino Mega och en Arduino Nano och deras anslutningar med nRF24L01 visas ovan. Du kan använda alla Arduino-modeller.
Arbeta med nRF24L01 + Trådlös sändtagarmodul:
För att få vår nRF24L01 att fungera utan buller kan vi dock överväga följande saker. Jag har arbetat med den här nRF24L01 + länge och lärde mig att följande punkter kan hjälpa dig att bli träffad på en vägg.
1. De flesta av nRF24L01 + -modulerna på marknaden är falska. De billigaste som vi kan hitta på Ebay och Amazon är de värsta (Oroa dig inte, med få tweaks kan vi få dem att fungera)
2. Det största problemet är strömförsörjningen inte din kod. De flesta koder online kommer att fungera ordentligt, jag har själv en arbetskod som jag personligen testade. Låt mig veta om du behöver dem.
3. Var uppmärksam eftersom modulerna som skrivs ut som NRF24L01 + faktiskt är Si24Ri (Ja en kinesisk produkt).
4. Klon- och falskmodulerna förbrukar mer ström, därför utvecklar du inte din strömkrets baserat på datablad nRF24L01 +, eftersom Si24Ri kommer att ha hög strömförbrukning cirka 250 mA.
5. Se upp för krusningar och strömspänningar, dessa moduler är mycket känsliga och kan lätt brinna upp. (;-(stekt upp 2 moduler hittills)
6. Att lägga till ett par kondensatorer (10uF och 0.1uF) över Vcc och GND i modulen hjälper till att göra din leverans ren och detta fungerar för de flesta modulerna.
Fortfarande om du har problem rapporterar du om kommentarsektionen eller läser igenom detta.
Programmering av Arduinos:
Programmet för både Arduino Nano och Mega kommer att vara liknande för förändringen i CE- och CS-stift. Jag kommer att förklara programmet genom att dela upp det i små segment.
Eftersom Arduino och nRF24L01 kommunicerar via SPI har vi efterfrågat SPI-bibliotek. Vi har också inkluderat vår Maniacbug RF24 lib för att våra RF-moduler ska fungera. Ladda ner filen härifrån och lägg till dem i din IDE.
#omfatta
Våra NRF-moduler är anslutna till stift 8 och 10 till CE respektive CS.
RF24 myRadio (8, 10);
Vi skapar ett strukturerat datapaket som kallas paket . Den variabla texten kommer att användas för att överföra data i luften.
struct paket {char text; // Text att sända i luften}; typedef struct paketpaket; Paketdata;
I void setup () -funktionen initialiserar vi överföringshastigheten till 9600 och ställer in våra moduler till 115 med MIN strömförbrukning och 250KBPS-hastighet. Du kan bråka med dessa värden senare.
ogiltig installation () {Serial.begin (9600); fördröjning (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 band ovanför WIFI signalerar myRadio.setPALevel (RF24_PA_MIN); // MIN kraft låg raseri myRadio.setDataRate (RF24_250KBPS); // Minsta hastighet}
Modulen är gjord för att fungera i sändningsläge om data tas emot via seriell buffert, annars kommer den att vara i mottagarläge och letar efter data i luften. Data från användaren lagras i en char Array och skickas till WriteData () för att överföra dem.
void loop () {while (Serial.available ()> 0) // Hämta värden från användare {val = Serial.peek (); if (index <19) // En mindre än storleken på matrisen {inChar = Serial.read (); // Läs ett tecken inData = inChar; // Store it index ++; // Öka var du ska skriva nästa inData = '\ 0'; // Null avsluta strängen} if (val == '#') {strcpy (data.text, inData); Skrivdata (); // Sätt modulen i sändningsläge medan (index! = 0) {inData = ''; index--; }}} Läsdata (); // Sätt modulen mottagningsläge}
void WriteData () -funktionen skriver data på 0xF0F0F0F0AA-adressen, den här adressen används som skrivrör på annan modul.
ogiltig WriteData () {myRadio.stopListening (); // Stoppa mottagning och starta transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Skickar data på denna 40-bitars adress myRadio.write (& data, sizeof (data)); fördröjning (300); }
ogiltig ReadData () -funktionen skriver data på 0xF0F0F0F066 denna adress, den här adressen används som läsrör på annan modul.
ogiltig ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Vilket rör som ska läsas, 40-bitars Adress myRadio.startListening (); // Stoppa sändningen och börja granska om (myRadio.available ()) {medan (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Det är det, vår programmeringsdel är över. Om du inte kan förstå några saker här, kolla de två programmen för båda Arduinos, som anges i kodavsnittet nedan, jag har lagt till kommentarrader för att förklara saker mycket bättre.
Bearbetningsprogram:
'Processing' är programvara med öppen källkod som används av artister för grafisk design. Denna programvara används för att utveckla programvara och Android-applikationer. Det är ganska lätt att utveckla och mycket liknar Android Development IDE. Därför har jag förkortat förklaringen.
Behandlingskoden för båda chattskärmarna ges här:
- Chattskärm 1 Bearbetningskod
- Chattbild 2 Bearbetningskod
Högerklicka på dem och klicka på 'Spara länk som…' för att ladda ner dem och öppna dem på din dator efter att du har konfigurerat Arduinos. Du måste installera 'Processing' -programvara för att öppna dessa *.pde-filer och sedan 'Köra' dem för att öppna chattrutorna. Kommentarsektionen är öppen för frågor. Bearbetningsskissen för sändare och mottagarmodul är identisk.
I nedanstående kodavsnitt är "port = new Serial (this, Serial.list (), 9600); // Läser den fjärde PORTEN vid 9600 baudrate" eftersom den bestämmer från vilken port till data från.
ogiltig installation () {storlek (510 500); port = ny serie (denna, Serial.list (), 9600); // Läser den 4: e PORT vid 9600 baudrate println (Serial.list ()); bakgrund (0); }
Här har jag läst data från den fjärde porten från min Arduino.
Så till exempel om du har COM COM COM COM COM
Då läser ovanstående kod data från COM.
Testning:
Nu eftersom vår process- och Arduino-skiss är klar, ladda bara upp programmet till Arduino och låt det vara anslutet till din bärbara dator. Öppna din bearbetningsskiss och börja skriva och tryck på "Enter" ditt meddelande kommer att överföras till den andra Arduino som visar den mottagna texten på en annan behandlingsapplikation som är ansluten till en annan dator. Se vidare videon nedan för fullständig demonstration.
Så här kan du prata med dina vänner och familj i ditt lokala område utan att ha någon internetanslutning, med hjälp av detta billiga Arduino Chattrum.