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

ds18b20

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Новость от УК

Если честно, то в плане названия ничего в голову не приходит, кроме как: «грамота лохам», «издевательство от УК» и т. п.
Суть в следующем. Не так давно всем жильцам подъезда пришли квитанции с суммой квартплаты. Конечно (который год уже!) УК предлагает всем задолжникам оплатить сумму задолженности и тогда они не будут брать пени. Почин, вроде бы, хороший. Но, зная свою управляющую компанию, не тороплюсь с этим. И вот сегодня в почту падает новость от них (подписан по RSS):
«ГУК „Жилфонд“ выберет и наградит дома с образцовой платёжной дисциплиной жителей».
Лично я считаю это издевательством. Поясню на своем конкретном примере. Ранее уже писал, что хотелось бы погасить полностью задолженность по квартплате, выплачивая каждый месяц сумму на несколько тысяч превышающую саму квартплату. И мне бы удалось это сделать еще весной, если бы вдруг УК не прислала всем перерасчет за тепло на сумму от 5 до 20 тысяч рублей. Это вывело из себя весь подъезд, все решили оплачивать только через суд.
Ладно, будем считать, что это «прошлое». Но начнем «считать» настоящее. В начале зимы батареи были очень горячими. Затем, несмотря на понижение температуры, они стали более холодными. Ради эксперимента прикупил спиртовый градусник, но он оказался бракованным — показывал температуру +27 градусов, хотя дома явно более холодно, ближе к 20 градусам. Не торопясь (весь декабрь еще впереди), ищу другой. Жена говорит, что показаниям датчика DS18B20 они не поверят :-)

Исправление ошибок

Уже вечером исправил косяки с новой станцией. После переброса на другую линию питания датчика ds18b20 он заработал. Это радует.
Также вроде бы решил проблему со скриптом отправки данных. Вместо накопления данных в нескольких файлах, размер каждого из которых не превышает 4 кБ, сделал обработу ответа «ERROR NO CHANGES». Если скрипт получает такой ответ, то просто стирается содержимое временного файла. Иными словами, он реагирует так же, как будто получил ответ «ОК». Это, конечно, не решает вопроса длительного отсутствия связи с сервером. Так что будем думать дальше.
Не могу пока что придумать как разместить станцию. По хорошему ее нужно разместить подальше от стены, чтобы исключить ее влияние на показания. Но тут встает вопрос как закрепить круглую металлическую трубку на стене. С другой стороны, самый простой вариант — разместить станцию, прикрутив с наружной стороны лоджии, просто на саморезы. На решение времени осталось не так уж и много — скоро наступят холода, работать будет не очень комфортно.

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

Вчера провел на лоджию электричество, только розетку пока что не закреплял. Собрал станцию, включил в розетку и выставил на улицу. К стене дома крепить не стал, закреплю когда она пройдет испытания. К сожалению, почему-то перестал работать один из датчиков — 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, которые уже сделали что-то подобное и выяснить у них этот вопрос.