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


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

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

Ранее на нашем сайте мы уже рассматривали взаимодействие 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.

Схема проекта для отправки данных датчиков на Android с помощью Google Firebase и NodeMCU ESP8266

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

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

Собранная на макетной плате конструкция проекта

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

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

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

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

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

Установка библиотеки ArduinoJSON в менеджере библиотек Arduino IDE

Примечание: Последняя библиотека 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, поскольку я уже объяснил весь этот  процесс в предыдущем уроке.

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

Завершение настройки базы данных консоли Google Firebase

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

Модификация правил консоли Google Firebase

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

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

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

Экран дизайна приложения для Android в MIT App Inventor 2

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

Ввод Firebase URL в MIT App Inventor 2

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

Дизайнерская часть блока нашего приложения в MIT App Inventor 2

Все, что вам нужно сделать, это загрузить файл 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.

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

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

Тестирование работы проекта в приложении Android на смартфоне

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

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

(Проголосуй первым!)
Загрузка...
33 просмотров

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

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