Беспроводной датчик температуры и влажности на ESP8266
Цель этого проекта состоит в том, чтобы собрать устройство мониторинга температуры и влажности, которое транслирует температуру и влажность на удаленный сервер посредством wi-fi. Нам понадобятся Ардуино Уно (или аналог), датчик температуры и влажности DHT11, wi-fi модуль ESP8266 и сервис «ThingSpeak.com» для этого проекта. Это - замечательный проект, чтобы опробовать ESP8266 для передачи данных, так что начнем!
Шаг 1: Приготовьте всё необходимое
Для этого проекта использован Ардуино Уно, но подойдёт любая плата Ардуино или аналоги.
-Ардуино
-USB — кабель типа А — B и 5-вольтовый источник питания USB
-Беспроводной приемопередатчик ESP8266.
-Датчик температуры/влажности DHT11, хотя DHT22 тоже подойдет
-Макетная плата (не требующая пайки)
-Провода для беспаечной макетной платы
-Резисторы
Шаг 2: Создайте канал ThingSpeak
Чтобы фиксировать температуру и влажность онлайн, у Вас должны быть веб-сайт или веб-сервис, которые могут принимать данные метода GET http. В этом уроке я рекомендую ThingSpeak, но есть и другие службы, так что Вы вполне можете использовать что-то еще, чтобы собирать и хранить Ваши данные.
Если Вы будете использовать ThingSpeak, то Вы должны будете создать канал с двумя полями, один для температуры и один для влажности. На сайте есть много опций для отображения данных в графиках, так что можете изучить их самостоятельно и выбрать те, что Вам больше всего понравятся. Я остановился на двух простых линейных диаграммах с 10 точками переменных, чтобы сгладить случайные колебания данных . ThingSpeak даст ключ для Вашего канала, который Вы должны будете вписать в код, после чего Ваш каналсможет принимать данные.
Шаг 3: Подключение
На картинке Вы можете увидеть переднюю часть ESP8266 с 8 маркированными контактами. ESP8266 питается от 3.3 В, так что удостоверьтесь, что Вы соединяете контакт Vcc с 3.3-вольтовым контактом на контроллере. Это также означает, что Вы должны будете использовать преобразователь логических уровней или собрать делитель напряжения для последовательного соединения от платы контроллера до ESP8266, чтобы ничего не сжечь. Если Вы не захотите покупать преобразователь логических уровней, тогда, то Вы должны будете собрать делитель напряжения, задействовав два резистора.
Я взял резистор на 220 Ом и резистор на 470 Ом, которые приблизительно дадут 3.3 В. Если приемопередатчик требует 3.3 В, а плата контроллера может работать при таком напряжении, нет никакой потребности делать что-либо с соединением приемопередатчик — контроллер.
Точность датчика составляет только +/-5% влажности и 2°C, так что это не самый точный датчик. Он подходит только для температуры выше нуля. DHT22 более точен и умеет в отрицательные температуры, поэтому, если это важно для Вас, выбирайте его. Оба датчика работают с напряжениями 3.3 — 5В. Сигнальный контакт должен быть подключен через токоограничивающий резистор, номиналом 4.7 кОм.
Схема отображает как соединить провода. Для простоты использования все соединения с 5 В или 3.3 В красные, и все соединения с общим проводом синие. Подключаем провода следующим образом:
С контроллера на приемопередатчик
- RXD | TXD
- TXD | RXD (через делитель напряжения)
- 3.3 В | Vcc, CH_PD, сброс
- GND | GND
С контроллера на датчик температуры/влажности
- 5 В | Vcc
- GND | GND
- D7 | Сигнал (соединение с Vcc через нагрузочный резистор)
Шаг 4: Программирование
Прежде чем использовать код, Вы должны будете загрузить и установить библиотеку DHT от Adafruit. У них есть описание того, как установить, пользоваться их библиотекой и заходить на их хранилище GitHub. Их библиотека имеет разные опции (такие как теплосчетчик — их мы не будем разбирать здесь), но Вы можете самостоятельно выбрать их и использовать, если Вам понадобится!
Бод для ESP8266 установлен в начале .ino файла. Версия ESP8266, которая использовалась в сборке, поддерживает значения 9600 или 115200 бод. Обе из микросхем, которые я заказывал, установлены в 115200 бодов. Но если у вас возникли ошибки, смените бод на 9600 в качестве первого шага в отладке.
Есть несколько мест в коде со значениями в скобках ‘<‘ ‘>’. Это- те места, где Вам нужно будет вставить свои собственные значения, чтобы завершить проект. Это включает имя и пароль для Вашей сети WiFi и ключ для Вашего канала ThingSpeak. Есть код, чтобы использовать красно-зеленый светодиод для отладки и контроля состояния системы, но это не отображено в монтажных схемах. Если Вы хотите знать, верно ли работает работает система, Вы можете добавить пару светодиодов.
Заключительная ремарка, которая может сбить с толку — нельзя загрузить скетч в ардуино, к которому подключен модуль беспроводной связи. Скетч не загрузится, если они будут соединены, так что Вам нужно сначала отсоединить информационный провод — либо с передатчика, либо с контроллера.
Скачать скетч для Arduino IDE - ссылка
Шаг 5: Поехали!
Поздравляю! Вы создали свой персональный беспроводной регистратор температуры и влажности! Вы великолепны! Можно оставить его в подвале и контроллировать влажность и температуру посредством проветривания/обогрева. Можно собрать его на печатной плате для удобства монтажа и использования на месте. Я надеюсь, что вам был полезен этот урок и Вы весело провели время! Следующим шагом можно попробовать запрограммировать ESP8266 непосредственно напрямую, в обход контроллера.
Статья перевод с сайта ingenerium.net
Оригинал статьи был на instructables.com (уже лень искать ссылку на саму статью)