Найти в Дзене
Ieugene

Интернет вещей (IoT)своими руками - термометр на ESP8266+Blynk

Продолжаем цикл статей для начинающих (по материалам моего блога на ieugene.ru)
Это страшное слово IoT, звучащее из каждого утюга. Познакомимся с ним сами - сделаем простейшее устройство интернета вещей - а именно термометр с индикацией на смартфоне.
Поскольку информации по данному вопросу в Интернете маловато, выкладываю инструкцию по подключению термометра на DS18B20 и использованию его через Blynk.
Нам потребуется: На макете это выглядит примерно так (здесь он  подключен к GPIO5 – в скетче это прописано) : Датчик может быть в любом исполнении – не обязательно влагозащищенный (просто такой оказался под рукой). Будем считать, что у Вас уже установлена Arduino IDE с поддержкой плат на ESP8266, и что светодиодиком на плате как вершиной программирования Вы уже помигали. Если нет – идем на этот замечательный сайт: https://esp8266.ru/arduino-ide-esp8266/ Поставили? Отлично. Теперь начнем работать с Blynk. Blynk – простая система управления устройствами со смартфона. Более подробно –

Продолжаем цикл статей для начинающих (по материалам моего блога на ieugene.ru)

Это страшное слово IoT, звучащее из каждого утюга. Познакомимся с ним сами - сделаем простейшее устройство интернета вещей - а именно термометр с индикацией на смартфоне.
Поскольку информации по данному вопросу в Интернете маловато, выкладываю инструкцию по подключению термометра на DS18B20 и использованию его через Blynk.

Нам потребуется:

  • Любая плата с ESP8266 на борту (я использовал Wemos D1 R2 – не люблю соплей и танцов с бубном при прошивке и использовании)
  • Термометр DS18B20
  • Смартфон с андроидом или iphone

    Присоединяем DS18B20 согласно схеме (резистор обязателен!):
Изображение из Internet
Изображение из Internet

На макете это выглядит примерно так (здесь он  подключен к GPIO5 – в скетче это прописано) :

Изображение с ieugene.ru
Изображение с ieugene.ru

Датчик может быть в любом исполнении – не обязательно влагозащищенный (просто такой оказался под рукой).

Будем считать, что у Вас уже установлена Arduino IDE с поддержкой плат на ESP8266, и что светодиодиком на плате как вершиной программирования Вы уже помигали. Если нет – идем на этот замечательный сайт:

https://esp8266.ru/arduino-ide-esp8266/

Поставили? Отлично.

Теперь начнем работать с Blynk. Blynk – простая система управления устройствами со смартфона. Более подробно – на том же сайте https://esp8266.ru/esp8266-blynk/

Слишком много букв? Неважно, сделаем поменьше

1. Загрузите последнюю библиотеку blynk с http://www.blynk.cc/getting-started/, разархивируйте и скопируйте ее в каталог библиотеки arduino (обычно: C: \ Program Files (x86) \ Arduino \ libraries).

2. Загрузите приложение blynk для Android или iphone (бесплатно в магазине Apple / Google Play) и сделайте свое первое приложение. Перейдите к настройкам и выберите esp8266.

3. в разделе «Настройки» в приложении вы найдете «auth token», придет по электронной почте при создании проекта.

4. Запускаем Blink.

5. Создаем новый проект (назовите его, как хотите).

6. На вашу электронную почту должен прийти токен для этого проекта.

7. Откройте arduino IDE.

8. Загрузите этот скетч (сначала вставьте туда свой токен, ssid и password):

#define BLYNK_PRINT Serial   

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include <OneWire.h>

#include <DallasTemperature.h>

#include <TimeLib.h>

#include <SimpleTimer.h>

#define ONE_WIRE_BUS 5 //DS18b20 на GPIO5, можно переназначить на другой пин

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

char auth[] = "ххххххххххххх"; //тут токен авторизации для вашего проекта, придет по почте

SimpleTimer timer;

void setup()

{

  Serial.begin(9600);

  Blynk.begin(auth, "ssid", "password"); //ваши ssid и password

  sensors.begin();

  timer.setInterval(1000L, sendTemps); // интервал опроса сервера (1000L = 1 секунда)

}

void sendTemps()

{

  sensors.requestTemperatures(); // Polls the sensors

  float tempBabyRoom = sensors.getTempCByIndex(0); // Получение температуры в градусах Цельсия, для Фаренгейта заменить getTempCByIndex(0) на getTempFByIndex(0)

Blynk.virtualWrite(4, tempBabyRoom); //4-й виртуальный порт, значение которого идет в Blynk

}

void loop()

{

  Blynk.run();

  timer.run();

}

Рекомендуется сначала нажать "Проверить", чтобы проверить наличие библиотек (и не задавать потом вопросы типа "Апочемууменянеработаетипишетошибку?"). В случае ошибок посмотреть лог и докачать библиотеки.

Теперь настраиваем сам индикатор на смартфоне

9. Добавьте "Gauge" на панель проекта в Blynk.

10. Кликните на нем, появится панель настроек.

11. В настройках кликните на "PIN", выберите "Virtual" и "V4"

13. Выйдите из настроек.

14. Запустите проект (в правом верхнем углу экрана нарисована конопочка как "Play".

15. Наслаждайтесь!

Можно добавить в скетч кнопки управления, диммеры и что угодно – это на Ваш вкус. Ну это уже сами сделаете :) .

Скопипасчено, переведено и компилировано со статей: http://www.instructables.com/id/THE-2016-SUPER-NOOB-FRIENDLY-WAY-Control-an-Arduin/
https://community.blynk.cc/t/solved-blynk-and-esp8266-ds18b20/5327/11 А также проверено и работает. (другие ссылки по ESP8266 и ESP32 здесь: http://ieugene.ru/index.php?option=com_sppagebuilder&view=page&id=11

Дисклеймер: Все, что вы делаете – на свой страх и риск. Я не связан ни с Blynk, ни с Wemos – так что это рекламой не является. Все оборудование приобретено за свои деньги у различных продавцов.