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

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

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

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

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

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

  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”.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

https://your_project_name.firebaseio.com/.

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

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

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

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

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

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

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

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

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

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