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, Novembar
Anonim
Image
Image
Arduino to Laravel Communication
Arduino to Laravel Communication

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

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 podatke dostupne na webu. Na ovaj način možemo daljinski pratiti 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 Laravel aplikaciju. 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.

Da 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 "api.php" datoteci. U povratnom pozivu ćemo unijeti detalje zahtjeva kako bismo kasnije mogli dohvatiti parametre koji se šalju.

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

Podaci koje upisujemo u svaki red 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.

Da bi se ploča NodeMCU mogla povezati s našom WiFi mrežom i poslati zahtjev, prvo moramo uključiti nekoliko biblioteka na vrh. Zatim moramo navesti SSID mreže na koju se povezujemo i njenu lozinku. Ako koristite Uno sa Ethernet štitom, vaš će proces biti drugačiji.

Također, ovdje spremamo korijenski URL Laravel servera koji smo upravo stvorili. U mom slučaju ovo je IP adresa mog lokalnog računara, 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 č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 služi da poslužitelju stavi do znanja da u zahtjevu postoje podaci koje treba prikupiti.

Kao rezultat toga, prvo dobijamo 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 Laravel aplikacije, korisni teret će biti prazan.

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

Na kraju, moramo se pobrinuti da zatvorimo zahtjev i pričekamo 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, tako da ih kasnije možemo koristiti za prikaz ili mapiranje na grafikonu.

Korak 4: Dalji koraci

Daljnji koraci
Daljnji koraci

Kao što vidite, proces 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 možete izgraditi ovim je samo ograničen vašom maštom. Da biste lakše započeli, dolje je veza do cijelog izvornog koda korištenog 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, molimo vas da me obavijestite u komentarima, pratite me na Instructables i ne zaboravite se pretplatiti na moj YouTube kanal.

Hvala!

Preporučuje se: