Управление светодиодом с помощью ESP8266 NodeMCU и консоли Google Firebase


Стремительно развивающаяся в настоящее время сфера интернета вещей (Internet of things, IoT) позволяет управлять периферийными устройствами и считывать информацию с датчиков в любом месте земного шара. И на нашем сайте мы уже рассматривали достаточно много проектов из сферы интернета вещей, посмотреть которые вы можете по следующей ссылке.

В данной статье мы рассмотрим использование облака Google Firebase для управления светодиодом, подключенным к NodeMCU ESP8266. Firebase – это платформа базы данных от компании Google, предназначенная для создания, управления и изменения любых данных, сформированных приложениями android, веб-сервисами, датчиками и т.д.

Внешний вид проекта управления светодиодом с помощью ESP8266 NodeMCU и консоли Google Firebase

Для управления светодиодом с помощью Firebase нам скачала необходимо сконфигурировать Wi-Fi модуль NodeMCU ESP8266, а затем настроить Google Firebase.

Если у вас не получается организовать взаимодействие NodeMCU ESP8266 с Google Firebase с помощью представленной статьи (поскольку функционал Google Firebase со временем претерпевает определенные изменения), то можете посмотреть более свежую статью на данную тему.

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

  1. NodeMCU ESP8266(12E) (купить на AliExpress).
  2. Светодиод (купить на AliExpress).

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

Если у вас NodeMCU ESP8266 (12E), то вместо нее вы можете использовать обычный модуль ESP8266 с платой Arduino UNO и средой Arduino IDE. Более подробно о программировании модуля ESP8266 с помощью Arduino IDE вы можете прочитать в этой статье.

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

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

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

После сборки схемы проекта выполните следующую последовательность шагов:

  1. Подключите NodeMCU к компьютеру.
  2. Откройте Arduino IDE.
  3. В Arduino IDE выберите ‘Tools’ и затем ‘Boards’.
  4. В пункте меню для выбора плат выберите ‘NodeMCU V1.0 (ESP-12E Module)’.
  5. Выберите COM порт, к которому подключена NodeMCU.
  6. После того как узнаете значения “FIREBASE_HOST” и “FIREBASE_AUTH” (объяснено ниже в статье), внесите соответствующие изменения в код программы проекта (приведен в конце статьи).

Объяснение программы для NodeMCU ESP8266

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе подключим используемые библиотеки.

Далее скачаем и установим библиотеки по следующим ссылкам:

https://github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h

https://github.com/bblanchon/ArduinoJson

Если во время компиляции программы у вас будет выдаваться ошибка о том, что библиотека ArduinoJson.h у вас не установлена, то скачайте ее по приведенной выше ссылке и установите.

Далее нам необходимо задать два параметра (FIREBASE_HOST и FIREBASE_AUTH), которые нам понадобятся для взаимодействия с Google Firebase. Эти параметры сделают возможным обмен данными между ESP8266 и Firebase. Как получить эти параметры, описано в следующем разделе нашей статьи. После того как вы их получите, внесите соответствующие изменения в эти две строчки кода.

Следующие два параметра необходимы для подключения модуля ESP8266 к сети Wi-Fi. Замените идентификатор сети (SSID) и пароль (password) на значения для своей сети Wi-Fi.

Далее сделаем попытку подключиться к сети Wi-Fi.

Если подключение к сети Wi-Fi осуществить не удается, мы будем печатать точки в окне монитора последовательной связи с помощью функции print(.)  до тех пор пока соединение с сетью Wi-Fi не произойдет.

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

Далее с помощью класса, обеспечиваемого библиотекой firebase, мы будем передавать строку (string) на сервер firebase. Чтобы иметь возможность использовать больше классов, посмотрите информацию по этой ссылке. Первоначально мы передаем только одну строку. С помощью передачи соответствующих строк на сервер firebase мы сможем изменять состояние светодиода.

После того как мы передали одну строку на сервер firebase по указанному пути ("LED_STATUS"), мы можем, используя этот же путь, считать состояние нашего светодиода и сохранить его в переменной.

Если принятая строка равна “ON” или “on”, то мы будем включать встроенный в модуль светодиод ESP8266 и светодиод, подключенный к модулю.

Если принятая строка равна “OFF” или “off”, то мы будем выключать встроенный в модуль светодиод ESP8266 и светодиод, подключенный к модулю.

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

Настройка консоли Firebase

Если вы используете Firebase в первый раз, то вам необходимо выполнить ряд шагов чтобы настроить его работу:

1. Если у вас есть идентификатор/аккаунт Gmail (Gmail id), то вам не нужно дополнительно регистрироваться в Firebase. Если же у вас такого аккаунта нет, то вам необходимо зарегистрироваться на сервисе Firebase.

2. В браузере перейдите по адресу “firebase.google.com”.

3. В правом верхнем углу открывшегося сайта нажмите на “Go to Console”.

Главная страница Firebase

4. Нажмите на “Add project” (добавить проект).

Добавление проекта в Firebase

5. Введите имя вашего проекта (Project Name).

Заполнение данных проекта в Firebase

6. После принятия условий пользовательского соглашения создайте проект (Create project) и нажмите на “Continue” (продолжить).

Завершение создания проекта в Firebase

После того как вы успешно создали проект, вы можете получить имя хоста (Host Name) и ключ авторизации (Authorization Key), также известный как секретный ключ (Secret Key). Для этого выполните следующую последовательность шагов.

7. Зайдите в настройки сервиса (иконка с шестеренкой) и нажмите на “Project Settings” (настройки проекта).

Вход в настройки проекта в Firebase

8. Потом нажмите на “Service Accounts”.

Вход в настройки аккаунта в Firebase

9. Там вы увидите две опции: “Firebase admin SDK” и “Database Secrets”.

10. Нажмите на “Database Secrets”.

11. Пролистайте страницу вниз до имени вашего проекта и нажмите на кнопку ”Show” справа от вашего проекта.

12. После нажатия на “Show” вы сможете увидеть секретный ключ (secret key), созданный для вашего проекта.

Вход в настройки безопасности проекта в Firebase

13. Скопируйте этот секретный ключ и сохраните его у себя в блокноте. Его надо будет вставить в параметр “FIREBASE_AUTH” в программе для нашего проекта.

Вид секретного ключа в Firebase

14. Теперь нажмите на “Database” в панели слева.

15. Пролистайте страницу вниз и нажмите на “Create Database” (создать базу данных).

Создание базы данных в Firebase

16. Выберите “Start in test mode” (тестовый режим) и нажмите на “Enable”.

Включение тестового режима базы данных в Firebase

17. После этого ваша база данных будет создана и вам необходимо будет зайти в этот раздел снова чтобы управлять светодиодом.

18. Вверху страницы с базой данных вы должны увидеть надпись:

https://your_project_name.firebaseio.com/.

Путь для доступа к вашему проекту в Firebase

19. Скопируйте из этой надписи фразу “your_project_name.firebaseio.com” без всяких слешей и https и сохраните ее в блокноте в том же месте, где вы сохранили свой секретный ключ.

20. Эту фразу вам необходимо будет использовать в параметре “FIREBASE_HOST” в программе для нашего проекта.

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

Созданная нами база данных в Firebase

После этого измените значения параметров “FIREBASE_HOST” и “FIREBASE_AUTH” в программе проекта на свои значения.

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

Откройте базу данных firebase и впишите в ней в поле “LED_STATUS” “ON”, “OFF”, “on” или “off”. Таким образом мы сможем управлять состоянием нашего светодиода из консоли Google Firebase. Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

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

Исходный код программы (скетча)

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

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

Комментарии

Управление светодиодом с помощью ESP8266 NodeMCU и консоли Google Firebase — 4 комментария

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

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