Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Ahoj všetci, V tomto návode vám ukážem, ako môžete odosielať údaje z Arduina do aplikácie Laravel.
Krok 1: Úvod
Kedykoľvek máme projekt, ktorý vyžaduje zobrazenie údajov a protokolovanie, zvyčajne sa vyžaduje, aby sme mali údaje dostupné na webe. Týmto spôsobom môžeme prípadne monitorovať stav objektu na diaľku alebo dokonca ovládať naše zariadenia odkiaľkoľvek na svete.
Na tento projekt použijeme dosku NodeMCU v1.0, ktorá má na sebe modul ESP8266 12e. Okrem toho budeme musieť použiť počítač, v ktorom môžeme byť hostiteľmi našej aplikácie Laravel. Ak chcete zistiť, ako môžete také prostredie nastaviť, pozrite sa na moje video.
Krok 2: Pripravte aplikáciu Laravel
Našim prvým krokom je inštalácia Laravelu cez Composer. Nebudem sa zaoberať podrobnosťami o tom, ako to môžete urobiť, pretože dokumentácia to podrobne vysvetľuje a nájdete ho tu.
Aby bolo toto demo jednoduché, v Laraveli zaznamenáme informácie odoslané z Arduina do textového súboru, aby sme ich mohli neskôr skontrolovať. Za týmto účelom najskôr vytvoríme novú trasu POST v súbore „api.php“. Pri spätnom volaní vložíme podrobnosti o požiadavke, aby sme mohli neskôr načítané parametre načítať.
Na zápis do súboru používam fasádu Storage od Laravelu s praktickou metódou pripojenia. Po zavolaní táto metóda prijme názov súboru a údaje reťazca, kde tieto údaje pridá do zadaného súboru. Ak súbor neexistuje, vytvára sa pri prvom hovore.
Údaje, ktoré píšeme do každého riadka, pozostávajú z aktuálneho dátumu a času, za ktorými nasledujú hodnoty požiadaviek na teplotu a vlhkosť. Ak máte viac takýchto hodnôt, môžete pre všetky z nich zopakovať rovnaký proces načítania.
Krok 3: Pripravte si Arduino Sender
Pozrime sa teraz na kód Arduino a odosielanie údajov.
Aby sa doska NodeMCU mohla pripojiť k našej WiFi a odoslať požiadavku, musíme do nej najskôr zahrnúť niekoľko knižníc. Ďalej musíme zadať SSID siete, ku ktorej sa pripájame, a jej heslo. Ak používate Uno s ethernetovým štítom, váš proces bude iný.
Tiež tu uložíme koreňovú adresu URL servera Laravel, ktorý sme práve vytvorili. V mojom prípade je to adresa IP môjho lokálneho počítača, ale môžete pridať ľubovoľnú adresu URL hostiteľa, kde je kód prístupný.
Vo funkcii nastavenia spustíme sériovú komunikáciu, aby sme mohli sledovať, čo sa deje. Okrem toho musíme nastaviť dosku NodeMCU, aby sa mohla správne pripojiť k sieti Wi -Fi. Akonáhle to bude hotové, môžeme začať pripojenie a čakať, kým od smerovača nedostaneme adresu IP.
V tomto prípade v skutočnosti nemám k doske pripojené žiadne snímače. Namiesto toho len generujem nejaké náhodné údaje pomocou funkcie náhodných a odosielam to ďalej.
Tieto údaje je potrebné pripraviť vo forme reťazca dotazu a po spustení požiadavky HTTP ich musíme odoslať pomocou metódy POST na klientovi HTTP. Hlavička, ktorú sme pridali predtým, má server informovať, že v požiadavke sú údaje, ktoré je potrebné zhromaždiť.
Výsledkom je, že najskôr dostaneme stavový kód HTTP a potom užitočné zaťaženie odpovede. Ak všetko prebehlo hladko, mali by sme získať 200 za kód a keďže sme z našej aplikácie Laravel nevrátili nič, užitočné zaťaženie bude prázdne.
Ak z nejakého dôvodu stavový kód nie je 200, potom užitočné zaťaženie zvyčajne obsahuje chybové hlásenie o tom, čo sa stalo.
Na konci sa musíme uistiť, že sme žiadosť zatvorili a počkali určitý čas, v našom prípade 5 sekúnd, aby sme rovnaký postup urobili znova.
Výsledkom je, že tieto hodnoty uložíme do textového súboru pri každej iterácii, aby sme ich neskôr mohli použiť na ich zobrazenie alebo mapovanie v grafe.
Krok 4: Ďalšie kroky
Ako vidíte, tento proces je pomerne jednoduchý a dá sa ľahko rozšíriť tak, aby čítal hodnoty z rôznych senzorov a prípadne ich zapísal do databázy. Výsledok toho, čo s týmto môžete postaviť, je obmedzený iba vašou predstavivosťou. Aby sme vám pomohli začať, nižšie uvádzame odkaz na úplný zdrojový kód použitý v príklade.
github.com/bkolicoski/arduino-laravel-comm…
Dúfam, že ste sa z tohto Instructable naučili niečo nové, a ak áno, dajte mi prosím vedieť v komentároch, sledujte ma na Instructables a nezabudnite sa prihlásiť na odber môjho kanála YouTube.
Vďaka!