Sadržaj:

Komunikacija između Arduina i Laravela: 4 koraka
Komunikacija između Arduina i Laravela: 4 koraka

Video: Komunikacija između Arduina i Laravela: 4 koraka

Video: Komunikacija između Arduina i Laravela: 4 koraka
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Srpanj
Anonim
Image
Image
Komunikacija između Arduina i Laravela
Komunikacija između Arduina i Laravela

Pozdrav svima, U ovom Instructable -u pokazat ću vam kako možete slati podatke s Arduina u aplikaciju Laravel.

Korak 1: Uvod

Uvod
Uvod
Uvod
Uvod

Kad god imamo projekt koji zahtijeva izvjestan prikaz podataka i bilježenje, obično je potrebno da imamo dostupne podatke na webu. Na taj način možemo daljinski nadzirati stanje objekta ili čak kontrolirati naše uređaje s bilo kojeg mjesta u svijetu.

Za ovaj projekt koristit ćemo NodeMCU v1.0 ploču koja ima ESP8266 12e modul na ploči. Dodatno ćemo morati koristiti računalo na kojem možemo ugostiti našu aplikaciju Laravel. Ako želite saznati kako možete postaviti takvo okruženje, pogledajte moj video o tome.

Korak 2: Pripremite aplikaciju Laravel

Pripremite aplikaciju Laravel
Pripremite aplikaciju Laravel
Pripremite aplikaciju Laravel
Pripremite aplikaciju Laravel

Naš prvi korak je instaliranje Laravela putem Composera. Neću ulaziti u detalje o tome kako to možete učiniti jer dokumentacija to detaljno objašnjava, a možete ga pronaći ovdje.

Kako bi ovaj demo bio jednostavan, u Laravelu ćemo zabilježiti podatke poslane s Arduina u tekstualnu datoteku kako bismo ih kasnije mogli pregledati. Za to ćemo prvo stvoriti novu POST rutu u datoteci "api.php". U povratnom pozivu unijet ćemo detalje zahtjeva kako bismo kasnije mogli dohvatiti parametre koji se šalju.

Za pisanje u datoteku koristim fasadu Storage iz Laravela s njezinom zgodnom metodom dodavanja. Kada se pozove, ova metoda prima naziv datoteke i nizove podataka gdje te podatke dodaje navedenoj datoteci. Ako datoteka nije prisutna, tada se stvara pri prvom pozivu.

Podaci koje upisujemo u svaki redak sastoje se od trenutnog datuma i vremena, nakon čega slijede vrijednosti zahtjeva za temperaturu i vlažnost. Ako imate više takvih vrijednosti, možete ponoviti isti postupak dohvaćanja za sve njih.

Korak 3: Pripremite Arduino pošiljatelja

Pripremite Arduino pošiljatelja
Pripremite Arduino pošiljatelja
Pripremite Arduino pošiljatelja
Pripremite Arduino pošiljatelja

Pogledajmo sada Arduino kod i slanje podataka.

Kako bi se ploča NodeMCU mogla spojiti na naš WiFi i poslati zahtjev, prvo moramo uključiti nekoliko knjižnica na vrh. Zatim moramo navesti SSID mreže s kojom se povezujemo i njezinu lozinku. Ako koristite Uno s Ethernet štitom, vaš će postupak biti drugačiji.

Također, ovdje spremamo korijenski URL Laravel poslužitelja koji smo upravo stvorili. U mom slučaju ovo je IP adresa mog lokalnog računala, ali možete dodati bilo koji URL domaćina gdje je kôd dostupan.

U funkciji postavljanja započinjemo serijsku komunikaciju kako bismo mogli pratiti što se događa. Dodatno moramo postaviti NodeMCU ploču tako da se može ispravno povezati s WiFi -jem. Nakon što to učinimo, možemo pokrenuti vezu i pričekati dok ne primimo IP adresu od usmjerivača.

Za ovaj primjer, zapravo nemam senzore povezane s pločom. Umjesto toga samo generiram neke slučajne podatke pomoću funkcije random i to šaljem.

Ove podatke treba pripremiti u obliku niza upita, a nakon pokretanja HTTP zahtjeva moramo ih poslati pomoću POST metode na HTTP klijentu. Zaglavlje koje smo prethodno dodali postoji kako bi poslužitelju dalo do znanja da u zahtjevu postoje podaci koje treba prikupiti.

Kao rezultat toga, prvo dobivamo HTTP statusni kod, a zatim i korisni teret odgovora. Ako je sve prošlo glatko, trebali bismo dobiti 200 kao kôd, a budući da nismo ništa vratili iz naše aplikacije Laravel, korisni teret će biti prazan.

Ako iz nekog razloga statusni kôd nije 200, tada će korisni teret obično sadržavati poruku o pogrešci onoga što se dogodilo.

Na kraju moramo zatvoriti zahtjev i pričekati određeno vrijeme, 5 sekundi u našem primjeru da ponovimo isti postupak.

Ishod je da te vrijednosti spremamo u tekstualnu datoteku na svakoj iteraciji pa ih kasnije možemo koristiti za prikaz ili mapiranje na grafikonu.

Korak 4: Daljnji koraci

Daljnji koraci
Daljnji koraci

Kao što vidite, postupak je prilično jednostavan i može se lako proširiti za čitanje vrijednosti s različitih senzora i možda zapisivanje u bazu podataka. Rezultat onoga što s ovim možete izgraditi samo je ograničen vašom maštom. Kako biste lakše započeli, dolje je veza na cijeli izvorni kod koji se koristi u primjeru.

github.com/bkolicoski/arduino-laravel-comm…

Nadam se da ste uspjeli naučiti nešto novo iz ovog Instructable -a, a ako jeste, onda mi to javite u komentarima, slijedite me na Instructables i ne zaboravite se pretplatiti na moj YouTube kanal.

Hvala!

Preporučeni: