- Explicació de treball:
- Components necessaris:
- Esquema de connexions:
- Treballar amb el mòdul de transceptor sense fils nRF24L01 +:
- Programació dels Arduinos:
- Programa de processament:
- Proves:
La creació d’una xarxa local per compartir dades confidencials i de personal s’ha convertit en gairebé impossible per a un home comú al nostre món modern. Això es deu principalment a que tots els mètodes de xat habituals com Whatsapp, Facebook, Hangout i gairebé tot impliquen una connexió a Internet.
I si poguéssim compartir dades sense el mitjà d'Internet ?
Què faria de bo que poguessis comunicar-te amb persones de casa o del lloc de treball sense un paquet de xarxa ni connexió a Internet?
I si poguéssim personalitzar la nostra pantalla de xat amb la nostra imaginació?
Tot això és possible amb un microcontrolador i un mitjà de transmissió sense fils. Aquesta sala de xat Arduino que utilitza el projecte nRF24L01 us guiarà a configurar una sala de xat de baix cost a la vostra zona.

Així que anem a saltar i veure com funciona.
Explicació de treball:
Bàsicament, perquè això funcioni, necessitarem un parell de plaques Arduino i mòduls sense fils econòmics. Els mòduls sense fils que farem servir aquí són nRF24L01. La raó per triar aquests mòduls és que aquests són els successors de Zigbee i que és fàcil de treballar amb una connexió configurada. A més, aquests mòduls funcionen a 2,4 GHz (banda ISM) amb opcions d’espectre estès de salt de freqüència i ràfegues de xoc que ens fan sentir relaxats davant de problemes d’interferència.


El nostre Arduino i NRF24L01 estan connectats entre si per establir una comunicació en sèrie perquè puguin parlar entre ells. Els NRF24L01 són mòduls transceptors mig dúplex, per tant poden enviar i rebre dades. Les dades es recopilen de l’usuari i es transmeten per qualsevol (o per un mòdul en particular) i es poden transmetre a la seva pantalla.
Però !!!!! Anem a xatejar amb la pantalla de depuració d'Arduino? És clar que no. Anem a construir i personalitzar la nostra pròpia pantalla de xat amb l'ajuda de "Processament". El processament és un programari capaç de comunicar-se amb l'Arduino mitjançant UART. Crearem un fitxer.exe amb llenguatge de processament, que es podria executar en qualsevol equip amb Java Runtime. Per xatejar només hem d’endollar el nostre Arduino i obrir aquest fitxer.exe i Booooom !! estem a la nostra pròpia sala de xat totalment gratuïta privatitzada.
Aquest projecte es limita a afegir dos membres a la sala de xat, però el nRF24L01 té 6 canonades i, per tant, hi pot haver un màxim de 6 membres a la nostra sala de xat. Aquesta sala de dades pot funcionar dins dels 100 metres, depenent dels mòduls nRF24L01.
Així que anem a comprar !!!!
Components necessaris:
- Arduino (qualsevol versió o model) - 2Nos
- nRF24L01 + Mòdul de transceptor sense fils - 2Nos
- 3.3 Regulador de tensió - 2Nos. (No obligatori)
- Connexió de cables
- Interès (Lolz)
Esquema de connexions:
Arduino Mega amb nRF24L01:

Arduino Nano amb nRF24L01:

El nostre projecte no implica cap connexió complexa. He utilitzat un Arduino Mega i un Arduino Nano i les seves connexions amb nRF24L01 es mostren més amunt. Podeu utilitzar qualsevol model Arduino.
Treballar amb el mòdul de transceptor sense fils nRF24L01 +:
Tanmateix, per tal de fer que el nostre nRF24L01 funcioni lliure de sorolls, potser voldríem tenir en compte les coses següents. He estat treballant en aquest nRF24L01 + durant molt de temps i he après que els següents punts us poden ajudar a no colpejar-vos a una paret.
1. La majoria dels mòduls nRF24L01 + del mercat són falsos. Els més econòmics que podem trobar a Ebay i Amazon són els pitjors (No us preocupeu, amb pocs ajustaments els podem fer funcionar)
2. El principal problema és que la font d'alimentació no és el vostre codi. La majoria dels codis en línia funcionaran correctament, jo mateix tinc un codi de treball que he provat personalment. Feu-me saber si els necessiteu.
3. Presteu atenció perquè els mòduls impresos com a NRF24L01 + són en realitat Si24Ri (Sí, un producte xinès).
4. El clon i els mòduls falsos consumiran més energia, de manera que no desenvolupeu el vostre circuit d’alimentació basat en el full de dades nRF24L01 +, perquè Si24Ri tindrà un consum de corrent elevat d’uns 250 mA.
5. Compte amb les ondulacions de tensió i les sobretensions de corrent, aquests mòduls són molt sensibles i poden cremar-se fàcilment. (;-(fregit 2 mòduls fins ara)
6. Afegir un parell de condensador (10uF i 0.1uF) a través de Vcc i Gnd del mòdul ajuda a fer que el vostre subministrament sigui pur i això funciona per a la majoria dels mòduls.
Tot i això, si teniu problemes per informar a la secció de comentaris o per llegir-ho.
Programació dels Arduinos:
El programa per a Arduino Nano i Mega serà similar pel canvi en els pins CE i CS. Explicaré el programa dividint-lo en petits segments.
Atès que Arduino i nRF24L01 es comuniquen a través de l'SPI, hem demanat la biblioteca SPI. També hem inclòs la nostra llibreta Maniacbug RF24 perquè funcionin els nostres mòduls de RF. Baixeu el fitxer des d’aquí i afegiu-lo al vostre IDE.
#incloure
Els nostres mòduls NRF estan connectats als pins 8 i 10 a CE i CS respectivament.
RF24 myRadio (8, 10);
Creem un paquet de dades estructurades anomenat paquet . El text variable s’utilitzarà per transmetre dades en antena.
paquet struct {text de caràcter; // Text per transmetre per antena}; paquet typedef struct Paquet; Dades del paquet;
A la funció void setup () , inicialitzem la velocitat en bauds a 9600 i configurem els nostres mòduls a 115 amb un consum d’energia MIN i una velocitat de 250 KB. Podeu jugar amb aquests valors més endavant.
configuració nul·la () {Serial.begin (9600); retard (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 bandes per sobre dels senyals WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN potència ràbia baixa myRadio.setDataRate (RF24_250KBPS); // Velocitat mínima}
El mòdul pot funcionar en mode de transmissió si les dades es reben mitjançant memòria intermèdia sèrie, en cas contrari es trobarà en mode receptor buscant dades en antena. Les dades de l'usuari s'emmagatzemen en una matriu de caràcters i s'envien a WriteData () per transmetre-les.
void loop () {while (Serial.available ()> 0) // Obtén valors de l'usuari {val = Serial.peek (); if (índex <19) // Un menys que la mida de la matriu {inChar = Serial.read (); // Llegiu un caràcter a Dades = inChar; // Emmagatzemeu-lo a l’índex ++; // Increment on s'escriu el següent inData = '\ 0'; // Nul finalitza la cadena} if (val == '#') {strcpy (data.text, inData); WriteData (); // Posa el mòdul en mode Transmetre mentre (index! = 0) {inData = "; índex--; }}} ReadData (); // Posar el mode de recepció del mòdul}
La funció void WriteData () escriu les dades a l'adreça 0xF0F0F0F0AA, aquesta adreça s'utilitza com a canal d'escriptura en un altre mòdul.
void WriteData () {myRadio.stopListening (); // Deixa de rebre i comença a transmetre myRadio.openWritingPipe (0xF0F0F0F066); // Envia dades sobre aquesta adreça de 40 bits myRadio.write (& data, sizeof (data)); retard (300); }
La funció void ReadData () escriu les dades a 0xF0F0F0F066 aquesta adreça, aquesta adreça s'utilitza com a canonada de lectura en un altre mòdul.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quina canalització de lectura, 40 bits Adreça myRadio.startListening (); // Atureu la transmissió i comenceu a tornar a visualitzar si (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Ja està, la nostra part de programació s’ha acabat. Si aquí no podeu entendre poques coses, consulteu els dos programes per als dos Arduinos, que apareixen a la secció Codi següent, he afegit línies de comentaris per explicar les coses molt millor.
Programa de processament:
"Processament" és un programari de codi obert que els artistes utilitzen per al disseny de gràfics. Aquest programari s’utilitza per desenvolupar aplicacions de programari i Android. És molt fàcil de desenvolupar i és molt similar a l'IDE de desenvolupament d'Android. Per tant, he escurçat l’explicació.
El codi de processament de les pantalles de xat es proporciona aquí:
- Pantalla de xat 1 Codi de processament
- Pantalla de xat 2 Codi de processament
Feu-hi clic dret i feu clic a "Desa l'enllaç com a.." per descarregar-los i obrir-los a l'ordinador després de configurar els Arduinos. Cal instal·lar el programari "Processant" per obrir aquests fitxers *.pde i després "Executar-los" per obrir els Quadres de xat. La secció de comentaris està oberta per a consultes. Els esbossos de processament del mòdul transmissor i receptor són idèntics.
A la secció de codi següent, és important el "port = new Serial (this, Serial.list (), 9600); // Llegeix el 4t PORT a 9600 baudrate" , ja que decideix de quin port voleu obtenir les dades.
void setup () {mida (510.500); port = new Serial (this, Serial.list (), 9600); // Llegeix el quart port a 9600 baudrate println (Serial.list ()); fons (0); }
Aquí he llegit les dades del quart port del meu Arduino.
Per exemple, si teniu COM COM COM COM COM
A continuació, el codi anterior llegirà les dades de COM.
Proves:

Ara, ja que el nostre esbós de Processament i Arduino està a punt, només heu de carregar el programa a Arduino i deixar-lo endollat al vostre ordinador portàtil. Obriu l'esbós de Processament i comenceu a escriure i premeu "Retorn" el missatge es transmetrà a l'altre Arduino, que mostrarà el text rebut en una altra aplicació de Processament connectada a un altre equip. Consulteu el vídeo següent per obtenir una demostració completa.
Així, doncs, podeu parlar amb els vostres amics i familiars a la vostra àrea local sense tenir cap connexió a Internet mitjançant aquesta barata sala de xat Arduino.
