Управление светодиодом с помощью 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.

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

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

Если у вас 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.

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

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

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

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

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