Съдържание:

Комуникация между Arduino и Laravel: 4 стъпки
Комуникация между Arduino и Laravel: 4 стъпки

Видео: Комуникация между Arduino и Laravel: 4 стъпки

Видео: Комуникация между Arduino и Laravel: 4 стъпки
Видео: Уроки Laravel Model - Eloquent 2024, Ноември
Anonim
Image
Image
Комуникация между Arduino и Laravel
Комуникация между Arduino и Laravel

Здравейте всички, В тази инструкция ще ви покажа как можете да изпращате данни от Arduino към приложение Laravel.

Стъпка 1: Въведение

Въведение
Въведение
Въведение
Въведение

Всеки път, когато имаме проект, който изисква известно показване на данни и регистриране, обикновено се изисква да имаме налични данни в мрежата. По този начин ние евентуално можем да наблюдаваме състоянието на обект от разстояние или дори да контролираме нашите устройства от всяка точка на света.

За този проект ще използваме платка NodeMCU v1.0, която има ESP8266 12e модул на борда. Освен това ще трябва да използваме компютър, където можем да хостваме нашето приложение Laravel. Ако искате да разберете как можете да настроите такава среда, проверете видеото ми за това.

Стъпка 2: Подгответе приложението Laravel

Подгответе приложението Laravel
Подгответе приложението Laravel
Подгответе приложението Laravel
Подгответе приложението Laravel

Първата ни стъпка е да инсталираме Laravel чрез Composer. Няма да навлизам в подробности как можете да направите това, тъй като документацията го обяснява подробно и можете да го намерите тук.

За да поддържаме тази демонстрация проста, в Laravel ще регистрираме информацията, изпратена от Arduino, до текстов файл, за да можем да ги прегледаме по -късно. За целта първо ще създадем нов POST маршрут във файла "api.php". При обратното повикване ще инжектираме подробности за заявката, за да можем по -късно да извлечем изпратените параметри.

За да пиша във файл, използвам фасадата за съхранение от Laravel с нейния удобен метод за добавяне. Когато се извика, този метод получава име на файл и низови данни, където добавя тези данни към посочения файл. Ако файлът не присъства, той се създава при първото повикване.

Данните, които записваме във всеки ред, се състоят от текущата дата и час, последвани от заявените стойности за температура и влажност. Ако имате няколко такива стойности, можете да повторите същия процес на извличане за всички тях.

Стъпка 3: Подгответе подателя на Arduino

Подгответе подателя на Arduino
Подгответе подателя на Arduino
Подгответе подателя на Arduino
Подгответе подателя на Arduino

Нека сега разгледаме кода на Arduino и изпращането на данни.

За да може платката NodeMCU да се свърже с нашата WiFi и да изпрати заявка, първо трябва да включим няколко библиотеки в горната част. След това трябва да посочим SSID на мрежата, към която се свързваме, и нейната парола. Ако използвате Uno с Ethernet щит, тогава вашият процес ще бъде различен.

Също така, тук запазваме главния URL адрес на сървъра Laravel, който току -що създадохме. В моя случай това е IP адресът на моя локален компютър, но можете да добавите всеки хост URL, където кодът е достъпен.

В функцията за настройка стартираме серийната комуникация, за да можем да следим какво се случва. Освен това трябва да настроим платката NodeMCU, така че да може правилно да се свърже с WiFi. След като това стане, можем да инициираме връзката и да изчакаме, докато получим IP адрес от рутера.

За този пример всъщност нямам никакви сензори, свързани към платката. Вместо това просто генерирам произволни данни с помощта на функцията random и изпращам това.

Тези данни трябва да бъдат подготвени под формата на низ за заявка и след стартирането на HTTP заявката трябва да ги изпратим с помощта на метода POST на HTTP клиента. Заглавката, която добавихме преди, е там, за да уведоми сървъра, че в заявката има данни, които трябва да събере.

В резултат на това първо получаваме кода на състоянието на HTTP и след това полезния товар на отговора. Ако всичко вървеше гладко, трябва да получим 200 като код и тъй като не върнахме нищо от нашето приложение Laravel, полезният товар ще бъде празен.

Ако по някаква причина кодът на състоянието не е 200, тогава полезният товар обикновено ще съдържа съобщението за грешка на случилото се.

В крайна сметка трябва да се уверим, че затваряме заявката и изчакваме определено време, 5 секунди в нашия пример, за да извършим същия процес отново.

Резултатът е, че получаваме тези стойности записани в текстовия файл на всяка итерация, така че по -късно можем да използваме това, за да го покажем или да го картографираме в диаграма.

Стъпка 4: Допълнителни стъпки

Допълнителни стъпки
Допълнителни стъпки

Както можете да видите, процесът е сравнително прост и може лесно да бъде разширен, за да прочете стойностите от различни сензори и може би да ги запише в база данни. Резултатът от това, което можете да изградите с това, е само ограничено от вашето въображение. За да ви помогнем да започнете, по -долу е дадена връзка към пълния изходен код, използван в примера.

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

Надявам се, че сте успели да научите нещо ново от този Instructable и ако сте го направили, моля, уведомете ме в коментарите, последвайте ме в Instructables и не забравяйте да се абонирате за канала ми в YouTube.

Благодаря!

Препоръчано: