- Paggawa ng Paliwanag:
- Kinakailangan ang Mga Bahagi:
- Diagram ng Circuit:
- Paggawa gamit ang nRF24L01 + Wireless Transceiver Module:
- Programming ang Arduinos:
- Programa ng Pagproseso:
- Pagsubok:
Ang paglikha ng isang Local Network upang magbahagi ng mga tauhan at kumpidensyal na data ay naging halos imposible para sa isang karaniwang tao sa ating modernong mundo. Pangunahin ito sapagkat ang lahat ng mga karaniwang pamamaraan ng chat tulad ng Whatsapp, Facebook, Hangout at halos lahat ay nagsasangkot ng isang koneksyon sa internet.
Paano kung, maaari kaming magbahagi ng data nang walang medium ng Internet ?
Gaano ito ka cool kung makikipag-usap ka sa mga tao sa loob ng iyong bahay o lugar ng trabaho nang walang net pack o Koneksyon sa Internet?
Paano kung maaari naming ipasadya ang aming chat-screen sa aming sariling mga imahinasyon?
Posible ang lahat ng ito sa isang microcontroller at isang medium ng pagdadala ng Wireless. Ang Arduino Chat Room na ito na gumagamit ng nRF24L01 Project ay gagabay sa iyo sa pagse-set up ng isang murang gastos sa Chat Room sa iyong lokal na lugar.
Kaya't tumalon tayo at tingnan kung paano ito gumagana.
Paggawa ng Paliwanag:
Karaniwan upang gumana ang bagay na ito kakailanganin namin ang isang pares ng mga Arduino board at murang mga wireless module. Ang mga wireless module na gagamitin namin dito ay nRF24L01. Ang dahilan para sa pagpili ng mga modyul na ito ay ang mga ito ang kahalili ng Zigbee at madaling gumana sa isang naka-set up na koneksyon. Gumagana din ang mga modyul na ito sa 2.4 GHz (ISM band) na may frequency hopping spread spectrum at shock burst options na nagpapadama sa amin ng mga problema sa pagkagambala.
Ang aming Arduino at NRF24L01 ay magkakaugnay na nakakonekta upang maitaguyod ang isang Serial na komunikasyon upang makapag-usap sila. Ang NRF24L01 ay kalahating duplex transceiver module, kaya't maaari silang magpadala at tumanggap ng data. Ang data ay nakolekta mula sa gumagamit at nailipat ang data na ito ay maaaring matanggap ng anumang (o isang partikular) na mga module at ipakita ito sa kanilang screen.
Pero !!!!! Mag-uusap ba tayo gamit ang screen ng Debug ng Arduino? Syempre hindi. Kami ay magtatayo at magpasadya ng aming sariling chat screen sa tulong ng 'Pagproseso'. Ang pagpoproseso ay isang software na may kakayahang makipag-usap sa Arduino gamit ang UART. Lilikha kami ng isang.exe file na may wikang Pagproseso, na maaaring tumakbo sa anumang computer na may Java Runtime. Upang Makipag-chat kailangan lang namin i-plug sa aming Arduino at buksan ang.exe file na ito, at Booooom !! kami ay nasa aming sariling privatisadong ganap na libreng chat-Room.
Ang proyektong ito ay limitado sa pagdaragdag lamang ng dalawang miyembro sa Chat room, Ngunit ang nRF24L01 ay mayroong 6 Pipelines, at sa gayon ay maaaring may maximum na 6 na miyembro sa aming chat room. Maaaring gumana ang char room na ito sa loob ng 100 metro na saklaw depende sa nRF24L01 Modules.
Kaya't magshopping tayo !!!!
Kinakailangan ang Mga Bahagi:
- Arduino (anumang bersyon o modelo) - 2No
- nRF24L01 + Wireless Transceiver Module - 2No
- 3.3 Voltage Regulator - 2No. (Hindi sapilitan)
- Mga kumokonekta na mga wire
- Interes (Lolz)
Diagram ng Circuit:
Arduino Mega na may nRF24L01:
Arduino Nano kasama ang nRF24L01:
Ang aming proyekto ay hindi nagsasangkot ng anumang mga kumplikadong koneksyon. Gumamit ako ng isang Arduino Mega at isang Arduino Nano at ang kanilang mga koneksyon sa nRF24L01 ay ipinapakita sa itaas. Maaari mong gamitin ang anumang Mga Modelong Arduino.
Paggawa gamit ang nRF24L01 + Wireless Transceiver Module:
Gayunpaman upang magawa ang aming nRF24L01 na gumana nang libre mula sa ingay maaari naming isaalang-alang ang mga sumusunod na bagay. Matagal na akong nagtatrabaho sa nRF24L01 + na ito at natutunan ang mga sumusunod na puntos na makakatulong sa iyo mula sa pag-hit sa isang pader.
1. Karamihan sa mga nRF24L01 + modules sa merkado ay peke. Ang mga murang maaari nating makita sa Ebay at Amazon ang pinakamasamang (Huwag mag-alala, na may ilang mga pag-aayos na maaari nating paandarin sila)
2. Ang pangunahing problema ay ang supply ng kuryente hindi ang iyong code. Karamihan sa mga code sa online ay gagana nang maayos, ako mismo ay mayroong isang gumaganang code na personal kong sinubukan, Ipaalam sa akin kung kailangan mo sila.
3. Magbayad ng pansin dahil ang mga modyul na nakalimbag bilang NRF24L01 + ay talagang Si24Ri (Oo isang produktong Tsino).
4. Ang clone at pekeng mga module ay gugugol ng mas maraming lakas, kaya't huwag paunlarin ang iyong circuit ng kuryente batay sa nRF24L01 + datasheet, dahil ang Si24Ri ay magkakaroon ng mataas na kasalukuyang pagkonsumo tungkol sa 250mA.
5. Mag-ingat sa mga alon ng Boltahe at kasalukuyang mga pagtaas, ang mga modyul na ito ay napaka-sensitibo at maaaring madaling masunog. (;-(pinirito ang 2 mga module sa ngayon)
6. Ang pagdaragdag ng isang pares ng kapasitor (10uF at 0.1uF) sa kabuuan ng Vcc at Gnd ng modyul ay tumutulong sa paggawa ng iyong suplay na dalisay at gumagana ito para sa karamihan ng mga modyul.
Pa rin kung mayroon kang mga problema sa ulat sa seksyon ng komento o basahin ito.
Programming ang Arduinos:
Ang programa para sa parehong Arduino Nano at Mega ay magkatulad para sa pagbabago ng CE at CS pin. Ipapaliwanag ko ang programa sa pamamagitan ng paghahati nito sa maliit na mga segment.
Dahil ang Arduino at nRF24L01 ay nakikipag-usap sa pamamagitan ng SPI na tinawag namin para sa SPI library. Isinama din namin ang aming Maniacbug RF24 lib para gumana ang aming mga RF module. I-download ang file mula rito, at idagdag ang mga ito sa iyong IDE.
# isama
Ang aming mga modyul na NRF ay konektado sa pin 8 at 10 hanggang CE at CS ayon sa pagkakabanggit.
RF24 myRadio (8, 10);
Lumilikha kami ng isang nakabalangkas na package ng data na tinatawag na package . Gagamitin ang variable na teksto upang magpadala ng data sa hangin.
struct package {char text; // Text to transmit on air}; typedef struct package Package; Data ng package;
Sa pag- andar ng void setup () , pinasimulan namin ang rate ng baud sa 9600 at i-set up ang aming mga module sa 115 na may pagkonsumo ng kuryente ng MIN at bilis na 250KBPS. Maaari kang maglibot sa mga halagang ito sa paglaon.
void setup () {Serial.begin (9600); pagkaantala (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 band sa itaas ng WIFI signal myRadio.setPALevel (RF24_PA_MIN); // MIN power low rage myRadio.setDataRate (RF24_250KBPS); // Minimum na bilis}
Ginagawa ang modyul upang gumana sa mode na magpadala kung ang Data ay natanggap sa pamamagitan ng Serial buffer, kung hindi man ay sa mode ng tagatanggap na naghahanap ng data sa hangin. Ang data mula sa gumagamit ay nakaimbak sa isang char Array at ipinadala sa WritingData () upang maipadala ang mga ito.
void loop () {habang (Serial.available ()> 0) // Kumuha ng mga halaga mula sa gumagamit {val = Serial.peek (); kung (index <19) // Isang mas mababa sa laki ng array {inChar = Serial.read (); // Basahin ang isang character saData = inChar; // Itago ito index ++; // Increment kung saan susulat sa susunod inData = '\ 0'; // Null winakasan ang string} kung (val == '#') {strcpy (data.text, inData); Isulat ang Data (); // Ilagay ang module sa Transmit mode habang (index! = 0) {inData = ""; index--; }}} ReadData (); // Ilagay ang mode na Tumanggap ng mode}
walang bisa ang WritingData () function na nagsusulat ng data sa 0xF0F0F0F0AA address, ang address na ito ay ginagamit bilang pagsulat ng tubo sa ibang module.
walang bisa ang WritingData () {myRadio.stopListening (); // Ihinto ang Pagtanggap at simulang transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Nagpapadala ng data sa 40-bit na address na myRadio.write (& data, sizeof (data)); pagkaantala (300); }
walang bisa ang ReadData () function na nagsusulat ng data sa 0xF0F0F0F066 ang address na ito, ang address na ito ay ginagamit bilang pagbabasa ng tubo sa iba pang mga module.
walang bisa ang ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Aling tubo ang babasahin, 40 bit Address myRadio.startListening (); // Stop Transminting at simulan ang Reveicing kung (myRadio.available ()) {habang (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Iyon lang, tapos na ang bahagi ng aming programa. Kung hindi mo maintindihan ang ilang mga bagay dito, suriin ang dalawang mga programa para sa parehong Arduinos, na ibinigay sa seksyon ng Code sa ibaba, nagdagdag ako ng mga linya ng puna upang ipaliwanag ang mga bagay nang mas mahusay.
Programa ng Pagproseso:
Ang 'Pagproseso' ay bukas na mapagkukunan ng software na ginagamit ng mga artista para sa pagdidisenyo ng Grapiko. Ginagamit ang software na ito upang paunlarin ang mga aplikasyon ng software at Android. Ito ay medyo madali upang bumuo at halos kapareho sa Android Development IDE. Samakatuwid ay pinaikling ko ang paliwanag.
Ang Pagproseso ng Code para sa parehong mga Screen ng Chat ay ibinibigay dito:
- Code ng Pagpoproseso ng Screen sa Chat 1
- Code ng Pagpoproseso ng Screen ng Chat 2
Mag-right click sa kanila at mag-click sa 'I-save ang link bilang..' upang i-download ang mga ito at buksan ang mga ito sa iyong computer pagkatapos i-set up ang Arduinos. Kailangan mong i-install ang 'Pagproseso' ng software upang buksan ang mga *.pde file at pagkatapos ay 'Patakbuhin' ang mga ito upang buksan ang Mga Chat Box. Ang seksyon ng komento ay bukas para sa mga query. Ang Pagproseso ng sketch para sa transmitter at Receiver module ay magkapareho.
Sa seksyon ng code sa ibaba ang "port = bagong Serial (ito, Serial.list (), 9600); // Binabasa ang ika-4 na PORT sa 9600 baudrate" ay mahalaga habang nagpapasya ito mula sa aling port sa data mula sa.
walang bisa ang pag-set up () {laki (510,500); port = bagong Serial (ito, Serial.list (), 9600); // Binabasa ang ika-4 na PORT sa 9600 baudrate println (Serial.list ()); background (0); }
Narito na nabasa ko ang data mula sa ika-4 na port mula sa aking Arduino.
Kaya para sa Halimbawa kung mayroon kang COM COM COM COM COM
Pagkatapos ang code sa itaas ay magbabasa ng data mula sa COM.
Pagsubok:
Ngayon dahil handa na ang aming Pagproseso at Arduino sketch, i-upload lamang ang programa sa Arduino at iwanan itong naka-plug sa iyong Laptop. Buksan ang iyong Pagproseso ng sketch at simulang mag-type at pindutin ang "Enter" ang iyong mensahe ay maipapadala sa iba pang Arduino na magpapakita ng natanggap na teksto sa isa pang application ng Pagproseso na konektado sa ibang computer. Karagdagang suriin ang Video sa ibaba para sa buong pagpapakita.
Kaya't kung paano mo makakausap ang iyong mga kaibigan at pamilya sa iyong lokal na lugar nang hindi nagkakaroon ng anumang koneksyon sa Internet, gamit ang murang Arduino Chat Room na ito.