Logo
Logo

Интернет вещей с Arduino и платформой Абрис

Дмитрий Рыжов, Иван Пчелинцев

Dec 25, 2020

Создайте простую схему и проект Arduino с платой ESP8266 и датчиком температуры DS18B20.

Еще одно применение платформы Абрис - это сектор Интернета Вещей. При помощи наших инструментов вы можете легко объединить поделки на основе проектов arduino и других микроконтроллеров в сеть умного дома, которая позволит хранить, обрабатывать данные в удобном веб-интерфейсе. Мы покажем как при использовании платы ESP8266 и датчика температуры DS18B20 организовать отслеживание и сохранение данных. Предполагается, что у вас уже установлены такие инструменты как: Docker, Arduino IDE.

Скачивание, сборка и запуск

Сначала необходимо выполнить установку готового образа docker-контейнера. Для этого в терминале операционной системы выполняем следующую команду:

docker run -d -it -p 8081:80 -p 55432:5432 abrissite/abris-smarthome

Это действие позволит выполнить скачивание образа с удаленного репозитория и запуск контейнера на основе этого образа. При этом порт 8081 - порт, на котором будет работать веб-сервер, а 55432 - база данных PostgreSQL.

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

После запуска убедимся, что контейнер успешно стартовал, выполнив команду:

docker ps

Результат:

Результат команды

Настройка платформы Абрис

Далее уже можем работать через веб-браузер. Откроем его и перейдем по адресу (порт указывали ранее). В открытой форме авторизации заполним поля login (postgres) и password (123456), эти значения установлены по умолчанию, нажимаем кнопку Login.

Вход в Abris

Далее необходимо добавить новый датчик ESP в систему. В открывшейся форме заполняем поле Number значением 1. На текущий момент этого достаточно. Нажимаем кнопку Save.

Новый ESP

Потом создаем новый тип датчика.

В открытой форме добавляем новый тип под названием Temperature и описанием DS18B20.

Новый тип датчика

Возвращаемся в таблицу с устройствами и открываем зависимость sensor. Добавляем новый датчик, присвоив ему Number в значении 1 и ранее созданный типTemperature.

Добавление нового сенсора с новым типом сенсора

Сборка схемы Arduino с датчиками температуры

Приступаем к аппаратной части. На этой схеме изображено подключение температурного датчика к ESP8266, при этом необходимо подключить резистор между землей и питанием на ножках датчика.

Схема подключения

Далее по этой схеме собирается макет. Питание можно получить подключив кабель usb в порт USB.

Фактическая модель Arduino

Настройка Arduino IDE

Возвращаемся к программированию. Открываем среду разработки и создаем новый проект. Переходим в настройки среды. Добавляем источник, по которому будет закачана новая плата в Arduino IDE, добавлением ссылки в окно.

Дополнительная ссылка Arduino IDE

Следующим шагом происходит установка платы. При помощи поиска находим нашу плату ESP8266 и выполняем установку. После завершения установки нажимаем кнопку Close.

Установка платы ESP

После установки необходимо выбрать текущей плату NodeMCU - нашу ESP8266. После настройки платы необходимо скачать дополнительные библиотеки (Abris Arduino, ArduinoJson, OneWire, Arduino Temperature Control). Для этого в браузере переходим по первой ссылке из описания. Далее нажимаем зеленую кнопку Code и в выпадающем списке нажимаем Download zip. Повторим предыдущие действия для других библиотек.

Открываем Arduino IDE и переходим Sketch => Include Library => Add .Zip library, указываем скачанный архив с библиотекой. Нажимаем кнопку Choose. Повторяем предыдущие действия для других библиотек.

Прошивка

Подключается собранный макет с платой ESP и температурным датчиком в порт USB компьютера и в среде разработки выбирается программный COM-port, к которому подключен макет. В пункте Examples выбираем пример, который поставляется с библиотекой Abris Platform.

Далее необходимо настроить прошивку. Для этого в открытом файле выполняется редактирование следующих параметров: networkName - наименование вашей сети WiFi, networkPassword - пароль от сети WiFi, serverAddress - IP адрес компьютера, на котором запущен контейнер docker с Абрисом.

const char * networkName = "WiFi";
const char * networkPassword = "123456";

const char * loginDB = "postgres";
const char * passwordDB = "123456";
const char * serverAddress = "192.168.0.1:8081";

Посмотреть можно при помощи команды ipconfig (для Windows) в терминале.

Windows ipconfig

После внесения параметров нажимаем кнопку Upload, которая сразу проверит код на правильность и зальет прошивку в плату.

Демонстрация работы

Далее переходим в браузер и смотрим на значения, которые приходят в систему с платы. Как видите все работает без дополнительного вмешательства, графики рисуются, таблица заполняется.

Таблица датчика

График датчика

Подробности смотрите в видео-инструкции:

Ни кода, ни особого дизайна. Просто установите и используйте.