4 заметки с тегом

esp8266

Тестирование новое метеостанции

Вчера провел на лоджию электричество, только розетку пока что не закреплял. Собрал станцию, включил в розетку и выставил на улицу. К стене дома крепить не стал, закреплю когда она пройдет испытания. К сожалению, почему-то перестал работать один из датчиков — ds18b20. Думал, что где-то нет контакта, подергал все проводки, проверил разъем, но ничего не изменилось. Так как мультиметр остался на работе, то поиск неисправности, похоже, откладывается до понедельника.
Попробовал также настроить станцию на отправку показаний на сервер WeatherUnderground, но с этим вышла какая-то непонятка. В прошивке esp8266 есть только поля для ввода логина и пароля, в то время как в скрипте на роутере, который отправляет показания, надо также указывать ID станции, которая была создана при регистрации на сайте. Вчера ввел качестве логина ID станции, в качестве пароля указал ключ от нее. Потом смотреть журнал отправки было некогда, проверил только сейчас. Появились показания влажности воздуха, но с пропусками. Пока что непонятно, идет отправка или нет, буду наблюдать дальше.
Также в скрипте обнаружилась досадная ошибка, которую нужно исправлять, но я не совсем пока что понимаю как это реализовать. Суть ошибки состоит в том, что в какой-то момент скрипт перестает стирать содержимое временного файла с показаниями. При следующей отправке сервер отвечает не «ОК», а «ERROR NO CHANGES», так как в пакете присутствуют более ранние показания, которые сервер принял, а скрипт заново пытается их отправить. В результате данные начинают накапливаться и через примерно 4 часа размер файла начинает превышать 4 кБ — максимальный размер данных, которые можно отправить на сервер. Как результат данные, которые принимает сервер, обрезаются до 4 кБ. То есть появляется новая ошибка — отсутствует строка с закрывающими «##». По логике нужно начинать записывать данные в другой файл, но как потом искать все файлы с данными — непонятно. Буду думать.

Подключение датчиков

Вчера купил пару bme280. Утром пришел на работу с большим желанием подключить его и посмотреть на показания. Достал из рюкзака пенал с паяльными принадлежностями... А он внутри залит спиртово-канифольным флюсом. Запах сильный, конечно. Пришлось потратить кучу времени на отмывание всего, что было в пенале. Как оказалось, лопнула крышка у банки с флюсом.
Дождавшись когда все просохнет, воткнул в макетку все датчики, которые у меня есть: am2302, am2320, DS18b20 и bme280. Затем отправился на сайт за прошивкой с поддержкой bme280. Эта функция оказалась платной, поэтому пришлось также заплатить за лицензию. Цена небольшая — всего 110 рублей, но есть привязка к устройству. Иными словами, вы не можете использовать одну лицензию для разных ESP8266. Ну да ладно, я пока не собираюсь массово их закупать.
Настроил все необходимые параметры в модуле и вернулся на главную страницу, где отображаются показания все датчиков. Показания меня несколько удивили. Так bme280 показывал температуру примерно на 1 градус выше, чем все остальные датчики. Влажность отличалась у всех трех: am2302, am2320 и bme280. И только температура через некоторое время стала примерно равной у всех. Так как давление у меня умеет измерять только один, пришлось сравнивать показания с ближайшими датчиками на сайте narodmon.
Итог:

am2320 am2302 bme280 ds18b20
Температура 27,6 27,5 28,6 27,6
Влажность 45,0% 43,2% 36,7%
Давление 743,30 mmHg

UPD. Уже ближе к вечеру наткнулся на датчик освещенности и углекислого газа. Последний, после коротких раздумий, решил не брать, а вот первый взял, не выдержал. Заодно приобрел пару коробочек для будущей метеостанции.
Остается решить только один теоретический вопрос. Для измерения некоторых вещей, таких как давление, влажность, освещенность, требуется создать в боксе отверстия. Но отверстия нужно создать так, чтобы в них не попадала вода, чтобы они не перекрывались льдом при наступлении зимы. Думаю, что нужно попробовать связаться с теми пользователями narodmon, которые уже сделали что-то подобное и выяснить у них этот вопрос.

Подключение датчиков к ESP8266

На прошлой неделе попробовал таки подключить датчики к ESP8266. Собрал схему на беспаечной макетке, залил бесплатную прошивку от WiFi-IoT, настроил ее на рабочий WiFi и начал подключать сами датчики. Для начала попробовал AM2302. В настройках прошивки указал пин, к которому подключил датчик и вернулся на главную страницу, где должны отображаться показания. Датчик отобразил температуру, а вот с влажностью вышел прокол — показывал 1%. Списав это на косяк датчика, подключил AM2320, практически такой же. Этот верно показал все данные: температуру, влажность. Дальше на очереди был DS18B20. Подключил его на другой пин, указал в прошивке нужные параметры и вуаля! На этот раз на странице были показания двух датчиков: AM2320 и DS18B20.
Дальнейшие опыты показали, что в бесплатной версии прошивки я не могу использовать более одного датчика типа AM2302. Также припомнил, что влажность у них отображается не сразу, а спустя некоторое время. И при этом данные отображаются с некоторым запозданием. С этим ничего не поделать, такая у них технология работы. Оба датчика AM2302 и AM2320 работают нормально, все показывают верно, но есть небольшое расхождение с DS18B20, в 1-2 градуса. Так как последний более точен, по сравнению с остальными, то и веры ему больше :-)
В планах приобрести еще один — BME280, у которого, помимо температуры и влажности, есть еще измерение давления. Тут главное не ошибиться при приобретении, потому что он выглядит аналогично BMP280, который, к сожалению, давление не измеряет.
Благодаря тому, что ESP8266 7-й версии имеет множество пинов, есть возможность подключения кучи датчиков и/или реле.
И, похоже, что придется ставить еще один температурный датчик в квартиру, а то и не один, в каждую комнату. В начале месяца скачал квитанцию с сайта ГУК «Жилфонд», посмотрел сколько начислили за май месяц. Среди прочих платежей было доначисление за отопление за последние 5 месяцев. Так как сумма вышла не маленькая, порядка 10 тысяч рублей, а температура в квартире в зимний период оставляла желать лучшего, придется, видимо, вызывать следующей зимой работников ЖЭКа, когда в квартире станет холодно. Поговорив с некоторыми соседями, узнал, что у них также были большие начисления за отопление — от 10 до 15 тысяч, а в квартире было холодно.

Первый опыт с ESP8266

Не так давно приобрел ESP8266-07 с адаптером под «гребенку» с шагом 2,54 мм. Давно была мысль попробовать что она из себя представляет, а тут просто вспомнил и прикупил. Обошлось мне все это буквально в 275 рублей. Думаю, что это не та сумма, которую было бы жалко за опыт.
До экспериментов несколько дней руки не доходили, пока не утащил на работу Там, когда выдалось свободное время, занялся платой. Для подключения использовал беспаечную плату, кабели для подключения и адаптер USB-TTL. Для начала система, как обычно, скачала и поставила драйверы на адаптер, затем уже я начал собирать схему.
Без приключений не обошлось. Поначалу компьютер ни в какую не хотел «общаться» с ESP. Не считывал данные, не мог перепрошить, вообще ничего не мог с ней сделать. Плюсом к этому всему была «любовь» Windows к работе с COM-портами. Здесь я подразумеваю тот момент, что если ты не освободил порт (например, программа зависла и ее пришлось завершать принудительно) или сделал еще какие-то его настройки, «несовместимые» с Windows — тебя ждет перезагрузка системы. Сколько я этого «накушался», когда занимался торгово-кассовым оборудованием!!!
И вот, ура! Адаптер определился программой, можно считать параметры и так далее. Первое, что я сделал — перепрошивка. Особой надобности в этом не было (по крайней мере, пока что), просто хотелось получить опыт в этом направлении. С перепрошивкой пришлось помучиться. В итоге, программа залила на плату другую прошивку, но в самом конце выдала сообщение о невозможности выхода из режима прошивки. Пока пытался что-то сделать с платой, привести ее в рабочее состояние, сложилось впечатление, что я получил «кирпич». В тоже самое время не покидала мысль, что ЭТО невозможно убить. Заменил программу прошивки. Поначалу смутило множество настроек — память подсказывала, что почти все они критичны для прошивки. Поменял те, которые, на мой взгляд, было нужно и перепрошил. Получил рабочую плату, которая перезагружалась в самый неожиданный момент. Снова битва с прошивальщиком... В конце концов я получил вполне работоспособную плату, которая адекватно реагировала на команды и не перезагружалась в самый неподходящий момент. В итоге, причиной всех перезагрузок платы оказался плохой контакт питания. Но это я понял уже в самом конце экспериментов.
Завтра возьму с собой на работу датчики, попробую подключить к плате, прошив перед этим NodeMCU — там есть возможность использовать скрипты на lua. Посмотрим что из этого всего получится...