- Необходимые компоненты
- Принципиальная электрическая схема
- Настройка Thinger.io для регистратора температуры ESP8266
- Настройка IFTTT для регистратора данных NodeMCU
- Программирование NodeMCU для регистрации данных
- Запись данных на Thinger.io из NodeMCU
- Создание конечной точки в Thinger.io для отправки оповещения по электронной почте
Ранее мы использовали NodeMCU для записи данных о температуре в лист Google. Теперь мы собираемся отправить данные в облако Thinger.io IoT и отобразить их в привлекательном графическом формате. Датчик BMP180 взаимодействует с NodeMCU ESP8266 для сбора данных о температуре, влажности и высоте, которые будут отправлены на платформу Thinger.io. В этом руководстве мы узнаем, как управлять различными функциями платформы thinger.io, такими как устройства, конечные точки, сегменты данных или токены доступа.
Необходимые компоненты
- NodeMCU ESP8266
- BMP180 Датчик давления
- Перемычки
- Макетная плата
Принципиальная электрическая схема
Принципиальная схема этого регистратора данных ESP8266 очень проста, здесь только датчик BMP180 подключен к NodeMCU.
Датчик BMP180 использует протокол связи I2C. Итак, вам необходимо подключить контакты SCL и SDA BMP180 к контактам SCL и SDA (D1 и D2) NodeMCU. Кроме того, подключите контакты V IN и GND BMP180 к 3,3 В и GND на NodeMCU. Не подключайте датчик напрямую к 5 В, поскольку это может привести к необратимому повреждению датчика.
Чтобы узнать больше о NodeMCU, ознакомьтесь с различными проектами Интернета вещей на основе NodeMCU ESP8266.
Настройка Thinger.io для регистратора температуры ESP8266
Thinger.io - это платформа с открытым исходным кодом для Интернета вещей. Он предоставляет все необходимые инструменты для очень простого создания прототипов, масштабирования и управления подключенными продуктами. Thinger.io предоставляет три основных инструмента: Data Bucks, Dashboard и Endpoint для работы с данными устройств; эти инструменты можно использовать для визуализации данных устройства и расширения функциональной совместимости устройств.
Data Bucks: инструмент Data Bucks может использоваться для масштабируемого хранения данных устройства, программирования различных интервалов выборки или записи событий, инициированных устройствами.
Инструментальная панель: инструмент Dashboard имеет несколько панелей с настраиваемыми виджетами, которые можно создать за считанные минуты с помощью технологии перетаскивания для визуализации данных в реальном времени и сохраненных данных.
Конечные точки: Endpoints может быть использован для интеграции платформы с другими службами, такими как IFTTT, пользовательский веб - служб, сообщений электронной почты, или вызвать другие устройства.
В этом журнале ESP8266 мы собираемся изучить эти инструменты.
Чтобы отправлять данные на Thinger.io, вам необходимо создать бесплатную учетную запись на платформе Thinger.io и выполнить следующие шаги, чтобы подключить свое устройство.
Шаг 1: Первый шаг - создать новое устройство. Чтобы создать новое устройство, нажмите « Устройства» на вкладке меню, а затем нажмите кнопку « Добавить устройство».
Затем заполните форму идентификатором устройства, описанием и учетными данными или создайте случайные учетные данные для своего устройства и нажмите « Добавить устройство» .
Это все; ваше устройство готово к подключению. На следующем этапе мы запрограммируем NodeMCU для отправки данных на платформу Thinger.io.
Настройка IFTTT для регистратора данных NodeMCU
Здесь мы используем IFTTT для отправки предупреждений по электронной почте, когда температура выходит за допустимые пределы. IFTTT (If This Then That) - это веб-сервис, с помощью которого мы можем создавать цепочки условных операторов, называемых апплетами. Используя эти апплеты, мы можем отправлять электронные письма, уведомления в Twitter и Facebook.
Чтобы использовать IFTTT, войдите в учетную запись IFTTT, если она у вас уже есть, или создайте учетную запись.
Теперь найдите « Webhooks » и нажмите на раздел «Webhooks in Services».
Затем в окне Webhooks щелкните «Документация» в правом верхнем углу, чтобы получить закрытый ключ. Скопируйте этот ключ, этот ключ будет использоваться при создании конечной точки в Thinger.io.
После этого создайте апплет, используя Webhooks и почтовые службы . Чтобы создать апплет, щелкните свой профиль, а затем щелкните « Создать». '
Теперь в следующем окне щелкните значок « Это ». Теперь найдите Webhooks в разделе поиска и щелкните на « Webhooks» .
Теперь выберите триггер « Получить веб-запрос» и введите имя события как временное, а затем нажмите «Создать триггер».
После этого нажмите « Тогда это», а затем нажмите «Электронная почта».
Теперь в электронном письме нажмите «Отправить мне письмо», введите тему и текст письма, а затем нажмите «Создать действие». На последнем этапе нажмите « Готово », чтобы завершить настройку апплета.
Программирование NodeMCU для регистрации данных
Полный код для отправки данных на Thinger.io приведен в конце страницы. Здесь мы объясняем некоторые важные части.
Запустите код, включив все необходимые библиотеки. ThingerESP8266.h используется для установления соединения между платформой IoT и NodeMCU в то время как Adafruit_BMP085.h используется для считывания БМП датчика данных. Вы можете установить библиотеку ThingerESP8266.h из диспетчера библиотек Arduino IDEs.
#включают
Затем введите учетные данные в код, чтобы устройство можно было распознать и связать с вашей учетной записью.
#define USERNAME "Имя пользователя вашей учетной записи" #define DEVICE_ID "NodeMCU" // Имя вашего устройства #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
Затем введите имя конечной точки. Конечная точка используется для интеграции платформы с внешними сервисами, такими как IFTTT, HTTTP-запрос и т. Д.
#define EMAIL_ENDPOINT "IFTTT"
Определите переменные для хранения данных о давлении, температуре и высоте.
int давление, температура, высота;
Внутри цикла void () прочтите данные датчика. PSON типа данных может содержать различные типы данных. Таким образом, тип данных Pson используется для одновременного получения нескольких значений.
вещь >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
Используйте условие if для вызова конечной точки, если значение температуры превышает 15 градусов. Здесь данные - это имя конечной точки.
if (Температура> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "данные");} Serial.print ("Отправка данных");
Запись данных на Thinger.io из NodeMCU
Теперь подключите датчик BMP к NodeMCU и загрузите код. NodeMCU будет использовать ваши учетные данные для подключения к устройству, которое вы создали ранее. В случае успешного подключения он будет отображаться как подключенный, как показано на рисунке ниже:
Вы можете проверить статистику своего устройства, такую как переданные данные, полученные данные, IP-адрес, время подключения и т. Д., Просто щелкнув имя устройства в меню «Устройства».
Поскольку сейчас мы получаем данные, мы создадим информационную панель для визуализации данных с помощью виджетов.
Чтобы создать информационную панель, нажмите "Информационные панели" на вкладке меню, а затем нажмите " Добавить информационную панель ".
Теперь в следующем окне введите данные панели мониторинга, такие как имя панели, идентификатор и описание, а затем нажмите Панель мониторинга.
После этого войдите в новую панель управления, щелкнув ее название. По умолчанию панель управления будет пустой. Чтобы добавить виджеты, вам сначала нужно включить режим редактирования, щелкнув верхний правый переключатель на панели инструментов. Затем нажмите кнопку « Добавить виджет» .
Когда вы нажимаете кнопку « Добавить виджет» , появляется всплывающее окно, в котором вы можете выбрать тип виджета, цвет фона и т. Д. В моем случае я выбрал виджет «Датчик».
Когда вы нажмете «Сохранить», вы перейдете к следующему экрану, где вам нужно будет выбрать исходное значение, устройство, ресурс, значение и режим обновления. Выберите все значения и нажмите кнопку «Сохранить».
Теперь повторите ту же процедуру для остальных переменных. Моя панель управления выглядела так:
Создание конечной точки в Thinger.io для отправки оповещения по электронной почте
Теперь мы создадим конечную точку для интеграции Thinger.io с IFTTT. Конечная точка может быть вызвана устройством для выполнения любого действия, например отправки электронной почты, отправки SMS, вызова REST API, взаимодействия с IFTTT, вызова устройства из другой учетной записи или вызова любой другой конечной точки
Чтобы создать конечную точку, щелкните опцию «Конечная точка» на вкладках меню, а затем нажмите «Добавить конечную точку».
Теперь в следующем окне введите необходимые данные. Детали:
Идентификатор конечной точки : уникальный идентификатор вашей конечной точки.
Описание конечной точки: напишите описание или подробную информацию о своей конечной точке.
Тип конечной точки: выберите тип конечной точки из предложенных вариантов.
Maker Event Name: введите имя вашего апплета IFTTT.
Ключ Maker Channel: ваш секретный ключ Webhooks.
После этого нажмите Test Endpoint, чтобы проверить, все ли работает. Он должен отправить вам электронное письмо с предупреждением о данных о температуре.
Вместо использования IFTTT Webhook Trigger вы можете отправить сообщение электронной почты или Telegram, или вы можете отправить HTTP-запрос, используя функции конечной точки.
Вот как можно использовать NodeMCU ESP8266 для регистрации данных о температуре, давлении и высоте, поступающих от датчика BMP180 в Интернет.
Рабочий видеоролик и полный код приведены в конце страницы.