- Pracovní vysvětlení:
- Požadované komponenty:
- Kruhový diagram:
- Práce s modulem bezdrátového vysílače a přijímače nRF24L01 +:
- Programování Arduinos:
- Program zpracování:
- Testování:
Vytvoření místní sítě pro sdílení zaměstnanců a důvěrných dat je pro běžného člověka v našem moderním světě téměř nemožné. Je to hlavně proto, že všechny běžné metody chatu, jako Whatsapp, Facebook, Hangout a téměř vše, zahrnují připojení k internetu.
Co kdybychom mohli sdílet data bez internetu ?
Jak skvělé by bylo, kdybyste mohli komunikovat s lidmi ve vašem domě nebo na pracovišti bez síťového balíčku nebo připojení k internetu?
Co kdybychom si mohli přizpůsobit naši chatovací obrazovku podle vlastních představ?
To vše je možné s mikrokontrolérem a bezdrátovým přenosovým médiem. Tato chatovací místnost Arduino využívající projekt nRF24L01 vás provede nastavením levné chatovací místnosti ve vaší místní oblasti.
Pojďme se tedy podívat, jak to funguje.
Pracovní vysvětlení:
V zásadě, aby tato věc fungovala, budeme potřebovat pár desek Arduino a levné bezdrátové moduly. Bezdrátové moduly, které zde budeme používat, jsou nRF24L01. Důvodem pro výběr těchto modulů je, že se jedná o nástupce Zigbee a je snadné pracovat s nastaveným připojením. Také tyto moduly fungují na pásmu 2,4 GHz (pásmo ISM) s možností přeskakování kmitočtového spektra a rázovými výboji, díky nimž se cítíme uvolněni od problémů s rušením.
Naše Arduino a NRF24L01 jsou vzájemně propojeny, aby navázaly sériovou komunikaci, aby spolu mohly mluvit. NRF24L01 jsou poloduplexní moduly vysílače a přijímače, a proto mohou odesílat a přijímat data. Data jsou shromažďována od uživatele a přenášena. Tato data mohou být přijímána libovolnými (nebo jedním konkrétním) modulem a zobrazována na jejich obrazovce.
Ale!!!!! Budeme chatovat pomocí obrazovky Debug v Arduinu? Samozřejmě že ne. Chystáme se vytvořit a přizpůsobit naši vlastní chatovací obrazovku pomocí „Zpracování“. Processing je software schopný komunikovat s Arduino pomocí UART. Vytvoříme soubor.exe s jazykem Processing, který lze spustit na jakémkoli počítači s Java Runtime. Abychom mohli chatovat, musíme jen připojit naše Arduino a otevřít tento soubor.exe a Booooom !! jsme do naší Privatizované zcela zdarma chatovací místnosti.
Tento projekt je omezen na pouhé přidání dvou členů do chatovací místnosti, ale nRF24L01 má 6 potrubí, takže v naší chatovací místnosti může být maximálně 6 členů. Tato char room může pracovat v dosahu 100 metrů v závislosti na modulech nRF24L01.
Tak pojďme nakupovat !!!!
Požadované komponenty:
- Arduino (jakákoli verze nebo model) - 2Nos
- Modul bezdrátového vysílače a přijímače nRF24L01 + - 2Nos
- 3.3 Regulátor napětí - 2 č. (Nepovinné)
- Připojovací vodiče
- Úrok (Lolz)
Kruhový diagram:
Arduino Mega s nRF24L01:
Arduino Nano s nRF24L01:
Náš projekt nezahrnuje žádná složitá spojení. Použil jsem Arduino Mega a Arduino Nano a jejich spojení s nRF24L01 jsou uvedena výše. Můžete použít jakékoli modely Arduino.
Práce s modulem bezdrátového vysílače a přijímače nRF24L01 +:
Aby však naše nRF24L01 fungovala bez hluku, možná budeme chtít zvážit následující věci. Pracoval jsem na tomto nRF24L01 + po dlouhou dobu a zjistil jsem, že následující body vám mohou pomoci zasáhnout zeď.
1. Většina modulů nRF24L01 + na trhu je falešná. Nejhorší jsou ty levné, které najdeme na Ebay a Amazonu (nebojte se, díky několika vylepšením je můžeme nechat fungovat)
2. Hlavním problémem je napájení, nikoli váš kód. Většina kódů online bude fungovat správně, já sám mám pracovní kód, který jsem osobně testoval. Dejte mi vědět, pokud je potřebujete.
3. Věnujte pozornost, protože moduly, které jsou vytištěny jako NRF24L01 +, jsou ve skutečnosti Si24Ri (ano čínský produkt).
4. Klony a falešné moduly budou spotřebovávat více energie, proto nevyvíjejte svůj napájecí obvod na základě datového listu nRF24L01 +, protože Si24Ri bude mít vysokou spotřebu proudu kolem 250 mA.
5. Dejte si pozor na zvlnění napětí a proudové rázy, tyto moduly jsou velmi citlivé a mohou se snadno spálit. (;-(zatím smažené 2 moduly)
6. Přidání párového kondenzátoru (10uF a 0,1uF) napříč Vcc a Gnd modulu pomáhá zajistit čistou dodávku, což funguje u většiny modulů.
Pokud máte potíže, nahlaste je v sekci komentářů nebo si je přečtěte.
Programování Arduinos:
Program pro Arduino Nano i Mega bude podobný pro změnu pinů CE a CS. Vysvětlím program rozdělením na malé segmenty.
Vzhledem k tomu, že Arduino a nRF24L01 komunikují prostřednictvím SPI, volali jsme po knihovně SPI. Také jsme zahrnuli náš Maniacbug RF24 lib, aby naše RF moduly fungovaly. Stáhněte soubor odtud a přidejte je do svého IDE.
#zahrnout
Naše moduly NRF jsou připojeny k pinům 8 a 10 k CE a CS.
RF24 myRadio (8, 10);
Vytvoříme balíček strukturovaných dat s názvem balíček . Proměnlivý text se použije k přenosu dat ve vzduchu.
strukturovaný balíček {char text; // Text pro přenos na vzduch}; typedef struct balíček Balíček; Údaje o balíčku;
Ve funkci void setup () inicializujeme přenosovou rychlost na 9600 a nastavíme naše moduly na 115 s minimální spotřebou energie a rychlostí 250 kBps. S těmito hodnotami se můžete pohrávat později.
void setup () {Serial.begin (9600); zpoždění (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 pásem nad WIFI signály myRadio.setPALevel (RF24_PA_MIN); // MIN nízká spotřeba energie myRadio.setDataRate (RF24_250KBPS); // Minimální rychlost}
Modul je připraven pracovat v režimu přenosu, pokud jsou data přijímána prostřednictvím sériové vyrovnávací paměti, jinak bude v režimu přijímače hledat data ve vzduchu. Data od uživatele jsou uložena v char Array a odeslána k WriteData () k jejich přenosu.
void loop () {while (Serial.available ()> 0) // Získat hodnoty od uživatele {val = Serial.peek (); if (index <19) // O jedno menší než velikost pole {inChar = Serial.read (); // Přečíst znak inData = inChar; // Uložit to index ++; // Přírůstek kam zapsat další inData = '\ 0'; // Null ukončete řetězec} if (val == '#') {strcpy (data.text, inData); WriteData (); // Přepnutí modulu do vysílacího režimu while (index! = 0) {inData = ''; index--; }}} ReadData (); // Umístit modul do režimu příjmu}
funkce void WriteData () zapisuje data na adresu 0xF0F0F0F0AA, tato adresa se používá jako zápis kanálu na jiný modul.
void WriteData () {myRadio.stopListening (); // Zastavení příjmu a zahájení přenosu myRadio.openWritingPipe (0xF0F0F0F066); // Odesílá data na tuto 40bitovou adresu myRadio.write (& data, sizeof (data)); zpoždění (300); }
funkce void ReadData () zapíše data na 0xF0F0F0F066 tuto adresu, tato adresa se použije jako čtecí roura na jiném modulu.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Který kanál ke čtení, 40 bitů Adresa myRadio.startListening (); // Přestaňte vysílat a spusťte Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
To je vše, naše programovací část skončila. Pokud zde nemůžete pochopit několik věcí, zkontrolujte oba programy pro Arduinos, uvedené v části Kód níže, přidal jsem řádky komentářů, abych věci vysvětlil mnohem lépe.
Program zpracování:
„Zpracování“ je software s otevřeným zdrojovým kódem, který umělci používají pro návrh grafiky. Tento software se používá k vývoji softwaru a aplikací pro Android. Jeho vývoj je poměrně snadný a velmi podobný vývojovému prostředí Android Development IDE. Proto jsem vysvětlení zkrátil.
Zde je uveden kód zpracování pro obě obrazovky chatu:
- Chatovací obrazovka 1 Zpracovávací kód
- Zpracování kódu obrazovky Chat 2
Klikněte na ně pravým tlačítkem myši a kliknutím na „Uložit odkaz jako..“ je stáhnete a po nastavení Arduinos otevřete v počítači. Chcete-li otevřít tyto soubory *.pde, musíte nainstalovat software „Zpracování“ a poté je spustit pomocí „Spustit“. Sekce komentářů je otevřená pro dotazy. Náčrt zpracování pro modul vysílače a přijímače je identický.
V níže uvedené části s kódem je důležité „port = new Serial (this, Serial.list (), 9600); // Přečte 4. PORT při 9600 baudrate“, protože rozhoduje, od kterého portu k datům.
void setup () {size (510 500); port = new Serial (this, Serial.list (), 9600); // Přečte 4. PORT při 9600 baudrate println (Serial.list ()); pozadí (0); }
Zde jsem načetl data ze 4. portu z mého Arduina.
Takže například pokud máte COM COM COM COM COM
Poté výše uvedený kód načte data z COM.
Testování:
Nyní, když je náš náčrt Zpracování a Arduino připraven, stačí nahrát program do Arduina a nechat jej zapojený do vašeho notebooku. Otevřete náčrt zpracování a začněte psát a stiskněte „Enter“, vaše zpráva bude přenesena do druhého Arduina, které zobrazí přijatý text v jiné aplikaci pro zpracování připojené k jinému počítači. Dále zkontrolujte video níže pro úplnou demonstraci.
Takže, jak můžete mluvit se svými přáteli a rodinou ve vaší oblasti, aniž byste měli připojení k internetu, pomocí této levné chatovací místnosti Arduino.