Рубрики
Проекты на ESP8266

Отправка данных датчиков на Android с помощью Google Firebase и ESP8266

В этом уроке мы узнаем, как отправлять данные датчиков в приложение Android с помощью Google Firebase и NodeMCU ESP8266. Мы будем использовать датчик влажности и температуры DHT11 для считывания данных о температуре и влажности окружающей среды. Мы отправим эти данные c датчика DHT11 в базу данных Google Firebase. Затем мы извлечем данные из Google Firebase в приложение Android. Приложение Android, используемое здесь, разработано с помощью MIT App Inventor. Проектировать приложения с помощью MIT App Inventor довольно просто. Этому мы тоже научимся здесь.

Ранее на нашем сайте мы уже рассматривали взаимодействие NodeMCU ESP8266 с сервисом Google Firebase в следующих проектах:

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

Необходимые компоненты

  1. Модуль NodeMCU ESP8266 (купить на AliExpress).
  2. Датчик температуры и влажности DHT11 (купить на AliExpress).
  3. Макетная плата.
  4. Соединительные провода.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Что такое Google Firebase?

Google Firebase — это поддерживаемое Google программное обеспечение для разработки приложений, используемое для создания, управления и изменения данных, сгенерированных любым приложением Android/IOS, веб-сервисами, датчиками IoT (Интернета вещей) и оборудованием. Чтобы узнать больше о консоли Google Firebase, вы можете прочитать официальную документацию Google Firebase.

Firebase Auth — это сервис, который может аутентифицировать пользователей, используя только клиентский код. Он поддерживает поставщиков социальных входов Facebook, GitHub, Twitter и Google (и Google Play Games). Более того, он включает в себя систему управления пользователями, с помощью которой разработчики могут включить аутентификацию пользователей с помощью входа по электронной почте и паролю, хранящимся в Firebase.

Схема проекта

Схема проекта для отправки данных датчиков на Android с помощью Google Firebase и NodeMCU ESP8266 представлена на следующем рисунке. Фактически, это просто схема подключения датчика влажности и температуры DHT11 к плате NodeMCU ESP8266.

Подключите положительный вывод DHT11 к 3,3 В, а отрицательный вывод к GND платы. Подключите цифровой выход датчика к D2/GPIO4 NodeMCU.

Вы можете собрать схему на макетной плате как показано на следующем рисунке.

Установка библиотек

FirebaseArduino — это библиотека для упрощения подключения к базе данных Firebase из клиентов Arduino. Это полная абстракция REST API Firebase, представленная через вызовы C++ в удобном для подключения виде. Весь парсинг JSON обрабатывается библиотекой, и вы можете работать с чистыми типами C/Arduino.

Библиотека не может работать автономно. Поэтому вам нужно добавить также библиотеку ArduinoJSON.

1. Библиотека ArduinoJSON

Поэтому сначала перейдите в менеджер библиотек, найдите «JSON» и установите библиотеку, как показано на рисунке ниже.

Примечание: Последняя библиотека JSON может не работать с кодом. Поэтому вам может потребоваться понизить версию библиотеки до v5.13.5

2. Расширенная библиотека Google Firebase

Теперь вам нужно установить библиотеку Google Firebase. Cкачайте библиотеку по следующей ссылке и добавьте ее в папку Library после извлечения.

3. Библиотека DHT11

Для считывания температуры и влажности нам понадобится любой датчик температуры и влажности. Для этого DHT11 — лучший и дешевый датчик. Для этого нам нужно установить библиотеку DHT11. Загрузите библиотеку по следующей ссылке и добавьте ее в Arduino IDE.

Настройка базы данных консоли Google Firebase

Теперь самое главное, что нам нужно сделать, это настроить базу данных консоли Google Firebase. После завершения настройки мы можем отправлять данные датчиков в реальном времени в Google Firebase с помощью Nodemcu ESP8266.

Но я не буду здесь объяснять, как настроить базу данных консоли Google Firebase, поскольку я уже объяснил весь этот  процесс в предыдущем уроке.

После завершения настройки вы увидите следующее окно.

Теперь нам нужно изменить Правила (Rules). Для этого нажмите на правила (rules) и установите все параметры на «true», которые изначально установлены как «false».

Разработка приложения для Android с помощью MIT App Inventor 2

Теперь нам нужно разработать приложение Android, где мы можем отслеживать данные датчиков в режиме реального времени. Сначала мы разработаем приложение Android, а затем отправим данные датчиков на телефон Android с помощью Google Firebase и ESP8266.

Для разработки приложения Android вы можете просто зайти на сайт http://ai2.appinventor.mit.edu/. Затем создайте учетную запись и начните новый проект. Экран просмотра дизайна показан ниже на рисунке.

В разделе базы данных вам необходимо ввести «Firebase URL», оставив поля «FirebaseToken» и «Projectbucket» пустыми.

А если посмотреть на дизайнерскую часть блока, то она выглядит примерно так.

Все, что вам нужно сделать, это загрузить файл FirebaseIOT.aia и импортировать его в проект MIT App Inventor. А затем просто скопировать URL вашей базы данных google firebase.

Исходный код программы

Перед загрузкой кода обязательно внесите изменения в FIREBASE_HOST. Вы можете получить этот параметр из консоли Google Firebase. Также измените WIFI_SSID и WIFI_PASSWORD из указанного кода на SSID и пароль вашей сети Wi-Fi.

Полный код программы выглядит следующим образом.

Объяснение работы кода

Во-первых, мы подключаем библиотеки для Firebase и датчика DHT11.

Затем мы задаем FIREBASE_HOST. Мы получаем его из Google Firebase Setup. Он необходим для обмена данными между ESP8266 и firebase.

Затем мы определяем WiFi SSID и пароль. Замените SSID и пароль на SSID и пароль вашей сети. Nodemcu подключится к сети и свяжется с Google Firewall.

Затем мы задаем тип датчика DHT и создаем экземпляр датчика DHT.

Следующие строки предназначены для подключения платы NodeMCU ESP8266 к сети Wifi. После подключения последовательный монитор отобразит статус подключения и выведет IP-адрес платы.

Следующая строка кода позволяет Nodemcu подключиться к серверу Firebase. Если адрес хоста правильный, то подключение будет успешным.

Далее мы получаем значение влажности и температуры с датчика DHT11.

Затем мы отправляем данные в Google Firebase, используя путь, указанный в коде.

Тестирование работы проекта

После загрузки кода вы можете открыть Serial Monitor (окно монитора последовательной связи), в котором отобразятся зарегистрированные данные температуры и влажности.

Аналогичным образом вы можете проверить базу данных Google Firebase, она покажет данные в реальном времени о температуре и влажности, полученные с NodeMCU ESP8266.

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

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *