- Työselitys:
- Vaaditut komponentit:
- Piirikaavio:
- Työskentely langattoman lähetin-vastaanotinmoduulin nRF24L01 kanssa:
- Arduinojen ohjelmointi:
- Käsittelyohjelma:
- Testaus:
Paikallisen verkon luominen henkilöstön ja luottamuksellisten tietojen jakamiseksi on melkein mahdotonta tavalliselle ihmiselle nykymaailmassa. Tämä johtuu pääasiassa siitä, että kaikki yleiset chat-menetelmät, kuten Whatsapp, Facebook, Hangout ja melkein kaikki, sisältävät Internet-yhteyden.
Entä jos voisimme jakaa tietoja ilman Internet-tietovälinettä ?
Kuinka hienoa olisi, jos voisit kommunikoida kotisi tai työpaikkasi ihmisten kanssa ilman verkkopakettia tai Internet-yhteyttä?
Entä jos voisimme räätälöidä chat-näytön omalla mielikuvituksellamme?
Kaikki tämä on mahdollista mikro-ohjaimella ja langattomalla siirtovälineellä. Tämä nRF24L01-projektia käyttävä Arduino-keskusteluhuone opastaa sinua perustamaan edullisen chat-huoneen lähialueellesi.
Joten hyppäämme sisään ja katsotaan, miten se toimii.
Työselitys:
Pohjimmiltaan, jotta tämä asia toimisi, tarvitsemme parin Arduino-kortteja ja halpoja langattomia moduuleja. Langattomat moduulit, joita käytämme täällä, ovat nRF24L01. Syy näiden moduulien valitsemiseen on, että nämä ovat Zigbeen seuraajaa ja että niitä on helppo työskennellä muodostetun yhteyden avulla. Nämä moduulit toimivat myös 2,4 GHz: n taajuudella (ISM-taajuusalue) taajuushyppelyhajaspektrillä ja iskupurskeilla, mikä saa meidät tuntemaan olomme rentoiksi häiriöongelmista.
Arduino ja NRF24L01 on yhdistetty muodostamaan sarjayhteys, jotta he voivat puhua keskenään. NRF24L01 ovat puoliduplex-lähetin-vastaanotinmoduuleja, joten ne voivat lähettää ja vastaanottaa tietoja. Tiedot kerätään käyttäjältä ja lähetetään. Tiedot voidaan vastaanottaa millä tahansa (tai yhdellä) moduulilla ja näyttää se heidän ruudullaan.
Mutta!!!!! Aiomme keskustella Arduinon Debug-näytöllä? Ei tietenkään. Aiomme rakentaa ja räätälöidä oman chat-näytön 'Processing' -apuohjelman avulla. Processing on ohjelmisto, joka pystyy kommunikoimaan Arduinon kanssa UART: n avulla. Luomme.exe-tiedoston käsittelykielellä, joka voi toimia missä tahansa tietokoneessa, jossa on Java Runtime. Keskustelua varten meidän on vain kytkettävä Arduino ja avattava tämä.exe-tiedosto, ja Booooom !! olemme omassa yksityistämässäsi täysin ilmaisessa chat-huoneessa.
Tämä projekti rajoittuu vain kahden jäsenen lisäämiseen chat-huoneeseen, mutta nRF24L01: ssä on 6 putkilinjaa, joten chat-huoneessamme voi olla enintään 6 jäsentä. Tämä char-huone voi toimia 100 metrin etäisyydellä nRF24L01-moduuleista riippuen.
Joten mennään ostoksille !!!!
Vaaditut komponentit:
- Arduino (mikä tahansa versio tai malli) - 2
- nRF24L01 + langaton lähetin-vastaanotinmoduuli - 2
- 3.3 Jännitesäädin - 2 (Ei pakollinen)
- Johtojen liittäminen
- Korot (Lolz)
Piirikaavio:
Arduino Mega ja nRF24L01:
Arduino Nano ja nRF24L01:
Projektissamme ei ole monimutkaisia yhteyksiä. Olen käyttänyt Arduino Megaa ja Arduino Nanoa ja niiden yhteydet nRF24L01: een on esitetty yllä. Voit käyttää mitä tahansa Arduino-mallia.
Työskentely langattoman lähetin-vastaanotinmoduulin nRF24L01 kanssa:
Jotta nRF24L01 toimisi moitteettomasti, kannattaa kuitenkin harkita seuraavia asioita. Olen työskennellyt tämän nRF24L01 + -sovelluksen parissa pitkään ja oppinut seuraavien seikkojen avulla.
1. Suurin osa markkinoilla olevista nRF24L01 + -moduuleista on väärennettyjä. Halvimmat, joita voimme löytää Ebayssa ja Amazonissa, ovat pahin (älä huoli, muutamalla muutoksella voimme saada heidät toimimaan)
2. Suurin ongelma on virtalähde, ei koodisi. Suurin osa online-koodeista toimii oikein, minulla itselläni on toimiva koodi, jonka olen testannut henkilökohtaisesti. Kerro minulle, jos tarvitset niitä.
3. Kiinnitä huomiota, koska moduulit, jotka on painettu nimellä NRF24L01 +, ovat itse asiassa Si24Ri (kyllä kiinalainen tuote).
4. Klooni ja väärennetyt moduulit kuluttavat enemmän virtaa, joten älä kehitä virtapiiriäsi nRF24L01 + -taulukon perusteella, koska Si24Ri: n virrankulutus on noin 250 mA.
5. Varo jännitteen aaltoiluja ja virtapiikkejä, nämä moduulit ovat erittäin herkkiä ja saattavat helposti palaa. (;-(paistanut 2 moduulia toistaiseksi)
6. Parin kondensaattorin (10uF ja 0,1uF) lisääminen moduulin Vcc: n ja Gnd: n yli auttaa tekemään puhtaasta toimituksestasi ja tämä toimii suurimmalle osalle moduuleista.
Silti, jos sinulla on ongelmia, ilmoita kommenttiosasta tai lue tämä läpi.
Arduinojen ohjelmointi:
Sekä Arduino nanon että megan ohjelma on samanlainen CE- ja CS-nastojen muutoksen suhteen. Selitän ohjelman jakamalla sen pieniksi segmenteiksi.
Koska Arduino ja nRF24L01 kommunikoivat SPI: n kautta, olemme pyytäneet SPI-kirjastoa. Olemme myös sisällyttäneet Maniacbug RF24 lib -sovelluksen RF-moduuleidemme toimintaan. Lataa tiedosto täältä ja lisää ne IDE-tiedostoon.
#sisältää
NRF-moduulimme on kytketty napaan 8 ja 10 vastaavasti CE: hen ja CS: ään.
RF24 myRadio (8, 10);
Luomme jäsennetyn datapaketin nimeltä paketti . Muuttuvaa tekstiä käytetään tietojen lähettämiseen ilmassa.
struct paketti {char text; // lähetettävä teksti ilman välityksellä}; typedef struct -paketti; Pakettidata;
Vuonna void setup () -toiminto, me alustaa siirtonopeus 9600 ja setup moduulit 115 MIN virrankulutuksen ja 250KBPS nopeutta. Voit hioa näitä arvoja myöhemmin.
void setup () {Sarja.alku (9600); viive (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 kaistaa WIFI-signaalien yläpuolella myRadio.setPALevel (RF24_PA_MIN); // MIN teho matala raivo myRadio.setDataRate (RF24_250KBPS); // Pienin nopeus}
Moduuli on tarkoitettu toimimaan lähetystilassa, jos dataa vastaanotetaan sarjapuskurin kautta, muuten se on vastaanottotilassa ja etsii tietoa ilmasta. Käyttäjän tiedot tallennetaan char-ryhmään ja lähetetään WriteData (): lle niiden lähettämiseksi.
void loop () {while (Sarja.available ()> 0) // Hae arvot käyttäjältä {val = Serial.peek (); if (indeksi <19) // Yksi pienempi kuin taulukon koko {inChar = Serial.read (); // Lue merkki inData = inChar; // Tallenna se hakemisto ++; // Lisätään seuraavaan kohtaan inData = '\ 0'; // Nollaa merkkijono} if (val == '#') {strcpy (data.text, inData); WriteData (); // Aseta moduuli lähetystilaan while (index! = 0) {inData = ''; indeksi--; }}} Lukutiedot (); // Laita moduulin vastaanottotila}
void WriteData () -funktio kirjoittaa tiedot 0xF0F0F0F0AA-osoitteeseen, tätä osoitetta käytetään toisen moduulin kirjoitusputkena.
void WriteData () {myRadio.stopListening (); // Lopeta vastaanottaminen ja aloita myRadio.openWritingPipe (0xF0F0F0F066); // Lähettää tietoja tältä 40-bittiseltä osoitteelta myRadio.write (& data, sizeof (data)); viive (300); }
void ReadData () -toiminto kirjoittaa tiedot 0xF0F0F0F066 tähän osoitteeseen, tätä osoitetta käytetään toisen moduulin lukuputkeen.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Mikä putki luetaan, 40-bittinen Osoite myRadio.startListening (); // Lopeta tiedonsiirto ja aloita uudelleenhinnoittelu, jos (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Siinä kaikki, ohjelmointiosamme on ohi. Jos et ymmärrä muutamia asioita täällä, tarkista molemmat Arduinos-ohjelmat, jotka on annettu alla olevassa Koodi-osassa, olen lisännyt kommenttirivejä selittääkseen asioita paljon paremmin.
Käsittelyohjelma:
'Processing' on avoimen lähdekoodin ohjelmisto, jota taiteilijat käyttävät graafiseen suunnitteluun. Tätä ohjelmistoa käytetään ohjelmistojen ja Android-sovellusten kehittämiseen. Se on melko helppo kehittää ja hyvin samanlainen kuin Android Development IDE. Siksi olen lyhentänyt selitystä.
Käsittelytunnuksen Sekä Chat näytöt annetaan tässä:
- Chat-näyttö 1 Käsittelee koodia
- Chat-näyttö 2 käsittelee koodia
Napsauta niitä hiiren kakkospainikkeella ja napsauta Tallenna linkki nimellä.. -linkkiä ladataksesi ne ja avaamalla ne tietokoneellasi Arduinosin asennuksen jälkeen. Sinun on asennettava 'Processing' -ohjelmisto näiden *.pde-tiedostojen avaamiseksi ja sitten 'Suorita' ne avataksesi chat-laatikot. Kommentti-osa on avoin kyselyille. Lähettimen ja vastaanotinmoduulin käsittelykaavio ovat identtiset.
Alla olevassa koodiosassa "portti = uusi sarja (tämä, Serial.list (), 9600); // lukee 4. portin 9600 baudinopeudella" on tärkeä, koska se päättää, mistä portista tiedot lähetetään.
void setup () {koko (510 500); portti = uusi sarja (tämä, Serial.list (), 9600); // Lukee 4. portin 9600 baudinopeudella println (Serial.list ()); tausta (0); }
Täällä olen lukenut tietoja Arduinoni 4. portista.
Joten esimerkiksi jos sinulla on COM COM COM COM COM
Sitten yllä oleva koodi lukee tietoja COM: sta.
Testaus:
Nyt kun käsittely- ja Arduino-luonnos on valmis, lataa ohjelma vain Arduinoon ja jätä se kytkettynä kannettavaan tietokoneeseen. Avaa Käsittely-luonnos ja aloita kirjoittaminen ja paina "Enter", jolloin viestisi lähetetään toiselle Arduinolle, joka näyttää vastaanotetun tekstin toisessa tietokoneessa yhdistetyssä käsittelysovelluksessa. Tarkista alla oleva video täydestä esittelystä.
Joten näin voit puhua lähipiirisi ystävien ja perheen kanssa ilman internetyhteyttä käyttämällä tätä edullista Arduino-chat-huonetta.