Оглавление:

Связь между Arduino и Laravel: 4 шага
Связь между Arduino и Laravel: 4 шага

Видео: Связь между Arduino и Laravel: 4 шага

Видео: Связь между Arduino и Laravel: 4 шага
Видео: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 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". В обратном вызове мы введем детали запроса, чтобы позже мы могли получить отправляемые параметры.

Для записи в файл я использую фасад Storage из Laravel с удобным методом добавления. При вызове этот метод получает имя файла и строковые данные, куда он добавляет эти данные в указанный файл. Если файл отсутствует, значит, он создается при первом вызове.

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

Шаг 3. Подготовьте отправитель Arduino

Подготовьте отправитель Arduino
Подготовьте отправитель Arduino
Подготовьте отправитель Arduino
Подготовьте отправитель Arduino

Давайте теперь посмотрим на код Arduino и отправку данных.

Чтобы плата NodeMCU могла подключиться к нашему Wi-Fi и отправить запрос, нам сначала нужно включить несколько библиотек вверху. Далее нам нужно указать SSID сети, к которой мы подключаемся, и ее пароль. Если вы используете Uno с экраном Ethernet, то ваш процесс будет другим.

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

В функции настройки мы запускаем последовательную связь, чтобы мы могли отслеживать, что происходит. Кроме того, нам необходимо настроить плату NodeMCU, чтобы она могла правильно подключаться к Wi-Fi. Как только это будет сделано, мы можем инициировать соединение и ждать, пока мы не получим IP-адрес от маршрутизатора.

В этом примере у меня фактически нет датчиков, подключенных к плате. Вместо этого я просто генерирую случайные данные с помощью функции random и отправляю их.

Эти данные необходимо подготовить в виде строки запроса, и после запуска HTTP-запроса нам необходимо отправить его с помощью метода POST на HTTP-клиенте. Заголовок, который мы добавили ранее, предназначен для того, чтобы сервер знал, что в запросе есть данные, которые ему необходимо собрать.

В результате мы сначала получаем код состояния HTTP, а затем полезную нагрузку ответа. Если все прошло гладко, мы должны получить 200 в качестве кода, а поскольку мы ничего не вернули из нашего приложения Laravel, полезная нагрузка будет пустой.

Если по какой-то причине код состояния не равен 200, то полезная нагрузка обычно будет содержать сообщение об ошибке о том, что произошло.

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

В результате мы получаем эти значения, сохраненные в текстовом файле на каждой итерации, чтобы впоследствии мы могли использовать их для отображения или отображения на диаграмме.

Шаг 4: Дальнейшие шаги

Дальнейшие шаги
Дальнейшие шаги

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

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

Я надеюсь, что вам удалось узнать что-то новое из этого руководства, и если вы узнали, то сообщите мне об этом в комментариях, подпишитесь на меня в Instructables и не забудьте подписаться на мой канал на YouTube.

Спасибо!

Рекомендуемые: