Комфортомер

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Хочу комфортомер, чтобы выдавал данные окружающей среды. Пусть будет находиться дома. Пришел домой. Нажал кнопку на смартфоне и прочитал данные с дисплея. За параметры окружающей среды пусть отвечают
1 количество кислорода
2 вонючесть воздуха
3 температура
4 влажность
5 давление
Этого мне достаточно.
Устройство должно обладать низким энергопотреблением, стоить очень мало, простым в изготовлении.
Срок проекта месяц.

Делать буду сам. Поэтому все мои хочу - это закон в данном проекте.

Итак.

ТЗ (техническое задание)

Компактный прибор с низким энергопотреблением должен быть изготовлен за 30 дней.
При ограничении цены, посредственные показания датчиков - допускаются.
При ограничении времени - части готовых решений сторонних проектов - допускаются.
Измерения проводить в виде следующих параметров.
1 Кислород либо противоположный результат жизнедеятельности - углекислый газ.
2 Вонь в виде каких либо летучих органических соединений.
3 Температуру в градусах Цельсия.
4 влажность можно относительную выраженную в процентах.
5 давление в миллиметрах ртутного столба.
Базовый блок допустимо изготовить без дисплея.
Информацию выводить на экран дисплея смартфона по нажатию значка приложения.
Питание базового блока осуществлять от сети переменного тока используя высокоэффективный преобразователь энергии (импульсный блок питания).
В связи ограничением по времени прибор изготовить на макетных (для пайки) платах. Допустимо без корпуса.

19 июня 2020 года (до завершения проекта 30 дней)
 
  • Лойс +1
Реакции: poksik2

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
207
У Гайвера есть подобный проект: https://alexgyver.ru/meteoclock/
Датчики концентрации кислорода есть, но они бесполезные в данном случае -- незначительные изменения концентрации кислорода никак не повлияют на комфорт. Так что вместо него нужен датчик СО2.
 
  • Лойс +1
Реакции: ТехнарьКто

kalobyte

★★★✩✩✩✩
1 Янв 2020
726
146
стоить очень мало,
это сколько? видел твой девайс за 100 баксов где-то - показывал уровень со2 и температуру с давлением

2 Вонь в виде каких либо летучих органических соединений.
такие датчики будут стоить как несколько готовых приборов
а китайские просто дают сигнал о наличии какой-то гадости, причем чуствительность их такова, что в помещение лучшен е заходить и в качестве датчика хватит собственного носа
вобщем игрушка для школьников
а датчик со2 сам по себе баксов 20 стоит
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Датчики концентрации кислорода есть, но они бесполезные в данном случае -- незначительные изменения концентрации кислорода никак не повлияют на комфорт. Так что вместо него нужен датчик СО2.
Принимается, будет датчик CO2.

"мало" это сколько?
--кусь-
датчик со2 сам по себе баксов 20 стоит
Для интереса ограничу в $50, по курсу это грубо говоря 3500 руб и не более. Сюда не входит мой весьма дорогой труд. Не входит стоимость смартфона. Не входит стоимость routera. Программное обеспечение только бесплатное либо условно бесплатное. В стоимость будем учитывать только железо с надписями надо на рисунке.

Поскольку поиск в интернете ничего интересного не дал, может плохо искал, рисую собственный набросок, куда буду двигаться.
Изображение.jpg

20 июня 2020 года (до завершения проекта 29 дней)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Посмотрел, какие датчики есть в наличии из подходящих.
all.jpg

Для проекта подходит
ccs811-.jpg
CCS811 газовый датчик позволяет измерять концентрацию CO2 в диапазоне 400…8192 ppm и концентрацию ЛОВ(летучих органических соединений - запахи) в диапазоне 0…1187 ppb.
Scio.jpg
Посмотрел на али сколько это стоит сейчас
ccs811.jpg
660 руб. Стоимость датчика со стоимостью доставки, прибавляем 5% и округляем к ближайшему большему целому. Обычно так по стоимости и выходило.

Для температуры, влажности и давления из имеющегося, лучший выбор на мой взгляд будет
bm280-.jpg
BME280
Диапазон измерений температуры: -40 - +85 °C;
Диапазон измерений влажности: 0 - 100 %;
Диапазон измерений давления: 300-1100hPa;

На али сейчас это стоит
bme280.jpg

211 рублей.


Применяем технологию - съесть слона. А как съесть слона? Надо кусать его со всех сторон пока не съедите.
От слона откушен (выбран) кусок с рисунка с необходимыми датчиками для проекта.

Итого:
Выбраны датчики

CCS811 - CO2, ЛОВ (TVOC)

BME280 - температура, влажность, давление

Остаток суммы проекта: 3500 - 660 - 211 = 2 629 руб.

21 июня 2020 года (до завершения проекта 28 дней)
 

Вложения

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Созванивался с другом. Нас с ним жизнь разбросала по сильно разным часовым поясам. Затронули тему моего проекта. Друг поинтересовался на каком контроллере я бы хотел собрать openHAB и какие датчики туда хочу подсоединить. Как выяснилось он сейчас тестирует прошивку в которой все, что мне нужно, уже есть. Можно сказать повезло. Прошивка называется ESP Easy Mega. Сейчас в тестовом режиме в последний релиз добавили датчики газов и ccs811 как тестовый там есть. А функция контроллера openHAB уже есть давно, так же как и датчик BM280. Проект открытый и любой желающий может взять как исходники так и скомпилированные релизы. Как доберется до дома, так мне и вышлет нужную мне прошивку под мой esp-12F с включенным в тестовом режиме ccs811. На том и порешили. Но исходя из разницы часовых поясов, прошивку я получу только на следующий для меня день. Исходя из этого неожиданно от слона откушен еще один кусок. На рисунке это open HUB. Где то пишут openHUB, где то openHAB. Да какая разница, openHAB в прошивке есть, судя со слов друга выполняет именно те функции которые мне нужны.
К слову о слонах. Кто думает, что съесть слона это просто шутка почитайте и поймете принцип решения сложных на первый взгляд задач.
Поискал в интернете обещанную прошивку она здесь листаете вниз и увидите файлы для скачивания. Сам же я даже заморачиваться не буду, поскольку как я понял прошивки с нужным мне датчиком там просто еще нет, а поскольку нужную прошивку я все равно получу, то сейчас займусь другим.
Для openHAB-а в проект добавился SMD контроллер ESP-12F. Для удобства работы возьму плату переходник. Так на макетных платах для пайки мне будет удобнее создавать прототип.
1.jpg
Паяю
2.jpg
Вот, что получилось
3.jpg
Каким то образом в esp надо будет записать прошивку с программой управления. Беру и качаю по первой попавшейся ссылке datasheet на ESP-12F. Бегло просматриваю и вижу таблицу
pin mode esp.JPG
Уже пометил то, что увидел. Помня распиновку ESP-12F, она на плате нарисована ;) и мысленно добавив сюда какой нибудь USB uart получаем простой и дешевый программатор.
В качестве USB uart решил использовать, что под руку попало. А попало то, что в хламе на первой фотке с желтым разъемом.
А еще для сборки программатора взял макетную плату для пайки и разъемы.
perehodnik.jpg

Рисую схему которую увидел в таблице
rogr.jpg
На схеме R1 и R2 помечены галками, резисторы уже есть на белой плате переходника. R3 обвел, теоретически при инициализации нового модуля на GPIO2 будет уровень high и должно работать и без него. Практически мне резистора не жалко и поставлю в схему программатора. CH_PC это разрешение работы, без этого никуда, и китайцы его уже припаяли за меня. Перемычка нужна для того, чтобы можно было загрузить ESP12F в обычный режим и посмотреть как работает. От USB через переходник на ESP будет просто подано напряжение 3,3 вольта. Перемычка замкнута, записываю прошивку. Перемычка разомкнута, ESP-12F работает в обычном режиме.
Делаю программатор:
delay1.jpg
Получилось вот, что
delay4.jpg

delay3.jpg
И в сборе
delay2.jpg
Желтая сверху - это перемычка, проволока тонкая на фото не видно.

ESP-12F с доставкой и 5% сверху на али прям сейчас можно найти за 120 рублей. Я вообще их покупал по 70 руб шт, но сейчас таких цен в связи с летней распродажей уже не вижу. Далее стоимость товара, доставку и 5% сверху буду учитывать без особого на то указания. Указывать буду количество, которое в лотах бывает разным.

Макетные платы прям первые попавшиеся 140 рублей за 10 штук.

Переходник как пишут китайцы "адаптер пластина полный IO порт провода ESP12F" 140 руб за 10 штук.

Штыревой разъем 90 рублей за 10 штук по 40 pin каждый.

Разъем мама у китайцев "прямой одиночный ряд гнездо печатной плат" 10 штук в каждом по 40 pin. 200 рублей.

Резистор в соседнем магазине 4 рубля.

USB UART 90 рублей.
Все цены за исключением ESP-12F смотрел на али первые попавшиеся и прямо сейчас.

Итого:
Выбрано железо для openHAB-а
Сделан программатор для openHAB-a.
В стоимость вошла куча макетных плат и разъемов, выше требований проекта. Но я не жадный, посчитаю в расходы.

Остаток бюджета проекта:
2629-120-140-140-90-200-4-90=1845 руб

22 июня 2020 года (до завершения проекта 27 дней)
 

Вложения

  • Лойс +1
Реакции: b707

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Получил прошивку. Прикрепил файл в этом сообщении. В принципе на сайте letscontrolit такая есть, но более старая версия.
Беру программатор собранный ранее. Сразу говорю, все действия с перемычкой можно выполнять только при отсутствующем питании, иначе при "удачном" стечении обстоятельств можно спалить вывод GPIO0. Я не спалил, но исходя из схемотехники вижу такую возможность. Поэтому предупредил сразу. Для прошивки перемычка должна быть установлена.
1.jpg
Сверху на перемычку налил припоя, чтобы на фото было видно.

Предварительно обязательно должен быть установлен драйвер, в моем случае это CH340.
руководство от AlexGyver

Вставляю в компьютер.
2.jpg

Для прошивки использую ESP8266Flasher. Взять можно тут. Для тех кто не умеет читать с английского посмотреть здесь

Запускаю ESP8266Flasher
p1.jpg
Визуально проверяю, что порт определился. Если будет COM1 то должно насторожить, что-то пошло не так.

Захожу в Advanced
p2.jpg
Нажимаю Restore default. Мали ли, что там перед этим натыкал.
На самом деле проверяю. Скорость порта достаточно высокая но работать будет. Размер памяти флешки определился правильно. Скорость обмена с флешкой стандартная. Доступ по шине данных для esp-12f стандартный. Все ok.

Захожу в Config
p3.jpg
Крестик напротив INTERNAL/NODEMCU убрать.
На следующей строке нажать на шестeрёнку (лохматый кругляш между зеленым и 0x00000)
В появившемся окне выбрать где лежит распакованный файл прошивки ESP_Easy_mega_20200612_normal_ESP8266_4M1M.bin
В конце строки установить начальный адрес загрузки в 0x00000.

Захожу в Operation.
p4.jpg
Нажимаю Flash, надпись меняется на Stop в левом нижнем углу появляется QR код и загрузка начинается.

Ждем окончание загрузки.
p5.jpg
Зеленый круг в левом нижнем углу сигнализирует о успешном завершении прошивки.

Вынимаю программатор из компьютера (делать обязательно) и только потом снимаю перемычку.
WiFi-0.jpg

Со снятой перемычкой включаю в USB компьютера. Теперь ESP-12F запустит прошитую программу.

Беру смартфон.

Захожу на телефоне в WiFi сети.
WiFi-1.jpg
Нашел ESP_Easy и нажал на ней для подключения.
WiFi-2.jpg
Ввожу стандартный пароль первого подключения configesp

WiFi-3.jpg
Рядом с ESP_Easy появилась шестеренка. Нажимаю на шестеренку.

WiFi-4.jpg
Нажимаю Вход в аккаунт

WiFi-5.jpg

В строке под other SSID: ввожу Имя (Login) для подключения к своему домашнему роутеру с WiFi
Отметку в other SSID ставить не надо.
В строке под Passowrd: ввожу пароль (password) на подключение к WiFi домашнего роутера.
После этого нажимаю Connect

WiFi-6.jpg

Вариантов два. Модуль перегружается и показывает свой новый IP адрес либо на 0 все зависает.
Предположим повезло и все зависло. Но тем не менее логин и пароль в esp12f записались, надо просто узнать куда теперь смотреть.

Откладываем смартфон и снова работаем за компьютером.

Запускаю сканер ip адресов. Естественно компьютер "видит"WiFi сеть (подключен к роутеру с WiFi).
Сканер брать тут.
scan-1.jpg
Сразу приложил скриншот от NODEMCU которым прошивал ESP-12F. Не знаю с чем это связано, но МАС адреса отличаются в последнем знаке.

Из сканера получаю информацию, IP получен 192.168.1.15

Захожу в браузере на этот адрес.
esp1.jpg
Перехожу во вкладку Controllers
esp2.jpg
Пункт выделенный красным нужен для моего проекта.

Перехожу во вкладку Devices
esp3.jpg
Красным выделены датчики нужные для моего проекта.

Итого:
За часть openHAB с подключением датчиков и посылкой данных на MQTT сервер я спокоен. Смогу сделать.

Остаток бюджета проекта:
1845 руб не изменился

23 июня 2020 года (до завершения проекта 26 дней)
 

Вложения

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Вы думаете установив openHAB я бросился подключать датчики? Да конечно же ... НЕТ!

Просматривая всякое разное случайно наткнулся на ролик Мартина Гера.

Martin Ger MQTT Broker/Bridge on the ESP8266

Весьма полезный и увлекательный ролик. А под роликом ссылка на github с исходниками.

Скачиваю библиотеку. В самом начале README.md вижу:

"MQTT Broker / Client с поддержкой сценариев на ESP8266
Эта программа позволяет ESP8266 стать центральным узлом в небольшой распределенной системе IoT. Он реализует MQTT-брокер и простой обработчик правил на основе сценариев с операторами событий / действий, которые связывают вместе датчики и акторы MQTT. Он может действовать как STA, как AP или как и оба, и он может подключаться к другому брокеру MQTT (то есть в облаке). Здесь также может быть мост, который перенаправляет и переписывает темы в обоих направлениях. Кроме того, он может анализировать структуры JSON, отправлять базовые запросы HTTP GET и выполнять базовые операции ввода-вывода: т.е. читать и записывать на локальные выводы GPIO, реагировать на таймеры и прерывания GPIO, управлять выводами GPIO с помощью ШИМ и считывать АЦП."

Вот это повезло. Это сервер (brocker) MQTT на esp8266 нужный моему проекту.

От себя поясню.

STA - это режим станции. Устройства, которые ведут себя как беспроводной клиент, могут называться станцией. Когда esp8266 находится в режиме станции, это означает, что esp8266 подключен к беспроводному маршрутизатору.

AP - это режим точки доступа и означает, что esp8266 действует как беспроводной маршрутизатор с SSID. Ваш мобильный телефон сможет подключаться к esp8266, когда esp8266 находится в режиме AP.

Читаю дальше.

"В пользовательском каталоге находится основная программа, которая служит автономным брокером MQTT, клиентом и мостом. Программа запускается со следующей конфигурацией по умолчанию:
ap_ssid: MyAP, ap_password: нет, ap_on: 1, ap_open: 1
сеть: 192.168.4.0/24
Это означает, что он запускает открытую точку доступа с ap_ssid MyAP. Это значение по умолчанию можно изменить в файле user_config.h. Значение по умолчанию может быть перезаписано и постоянно сохранено во флэш-памяти с помощью интерфейса консоли. Эта консоль доступна либо через последовательный порт со скоростью 115200 бод"

Похоже можно проводить настройки через консоль.

Читаю дальше

"Если вы хотите использовать скомпилированные двоичные файлы из каталога прошивки, вы можете прошить их непосредственно на ESP8266"


Оказывается можно сразу и прошивать готовыми файлами прошивки.

Читаю дальше

"Если вы хотите использовать скомпилированные двоичные файлы из каталога прошивки, вы можете прошить их непосредственно на ESP8266"

Дальше Мартин Гер пишет, что 0x00000.bin загрузить с адреса 0x00000, а 0x10000.bin с адреса 0x10000. Собственно начальными адресами загрузки Мартин Гер и назвал бинарные файлы.

Паяю еще один ESP-12F.

Подключаю к ранее собранному программатору и прошиваю. (перемычка установлена)

прошивка.jpg

Вынимаю программатор, снимаю перемычку, снова подключаю к компьютеру.
Запускаю ArduinoIDE и открываю порт программатора который теперь просто подает питание на прошитую ESP-12F.
show.jpg

Выбираю скорость 115200 и возврат каретки. Для проверки ввожу команду show

Нажимаю Отправить и Brocker выдает информацию.
show2.jpg

Произвожу начальную настройку esp8266 brocker-a

(команду вводить только до разделителя "-" после разделителя поясняющий текст)

show - проверяю подключение, смотрю информацию отклика brocker-a
set ssid RTK_1234 - устанавливаю логин домашнего роутера с WiFi
set password teXno+1 - устанавливаю пароль домашнего роутера с WiFi
save - сохраняю настройки
reset - пере запускаю брокер с сохраненными настройками

Смотрю показываемую информацию порта, если подключение прошло успешно продолжаю, если накосячите и будут постоянные попытки подключения, видно в мониторе порта, введите команду "reset factory" - сбросить все настройки, и начните сначала.

Логин и пароль у меня другие, поэтому я их введу в конце.

продолжаю настройку

set ntp_server ntp1.stratum2.ru - устанавливаю сервер точного времени
set ntp_timezone 3 - устанавливаю зону времени Москва
set ap_on 0 - устанавливаю запрет точки доступа, будет только режим станции
set broker_user bb - имя брокера
set broker_password 4321 - пароль брокера
set ip 192.168.1.100 - фиксирую адрес, чтобы при восстановлении подключения всегда был один и тот же
set config_access 0 - запрещаю доступ к конфигурации из сети (конфигурация только через последовательный порт)
save - сохраняю настройки
После каждой команды нажимаю Отправить.

установки.jpg

Ввожу reset для перезапуска brockera с сохраненными настройками

Теперь у меня в локальной сети есть личный mqtt brocker с адресом для подключения 192.168.1.100, логином bb и паролем 4321. Максимальное количество сохраняемых сообщений, которые может хранить брокер (по умолчанию: 30).

Остается только протестировать. Поскольку находясь в отпуске занимаюсь работами на даче, этим хобби занимаюсь только вечерами . На сегодня хватит.

Итого:
Сделан brocker

Остаток бюджета:
1845 - 120 (esp12f) = 1725 руб
переходников для esp было посчитано ранее аж 10 штук, их достаточно и так.

24 июня 2020 года (до завершения проекта 25 дней)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Протестировал brocker вчера перед сном. Вошел на смартфоне в PlayMarket и скачал какой то MyMQTT.
1.jpg

Запускаю и попадаю в черный экран.
2.jpg

Нажимаю сверху слева Dashboard и попадаю в меню
3.jpg
Это уже интереснее. Вижу настройки. Нажимаю Settings.

4.jpg
Ввожу IP brocker-a, порт по умолчанию тот что нужен оставляю. Имя (Username) ввожу bb, пароль 4321. Нажимаю Save и слева сверху нажимаю Settings.

В меню нажимаю Subscribe и попадаю в подписки.
5.jpg
В топике ввожу решетку "#" значит подписаться вообще на все. Удобно при тестировании. Нажимаю Add. Нажимаю слева сверху Subscribe.

Попадаю в основное меню. Нажимаю Publish. Попадаю в публикации.
Набираю в топике "здорово" и ввожу сообщение "привет форум". Нажимаю снизу кнопку Publish. Нажимаю сверху слева Publish.
6.jpg

В главном меню нажимаю Dashboard и попадаю в опубликованные через сервер MQTT сообщения.
Вижу свой топик и сообщение.
7.jpg

Нажимаю Dashboard и выхожу в главное меню.
8.jpg
Вижу сообщений 1, подписок 1. MQTT протестирован в работе. Для работы в схеме комфортомера - готов.

Сегодня просто собрал все железо в кучу.
Сначала нарисовал схему.
рис3.jpg


Затем натыкал все по макетным платам для пайки и спаял. Особенно не задумывался, как получилось так и хорошо.

Плата openHAB с датчиками. Резистор 100к от вывода WAK CCS811 на минус питания.
2-1.jpg

Обратная сторона с разъемами для подачи питания от платы MQTT brocker-a на плату openHAB с датчиками. Разъемы одновременно служат стойками для поддержки одной платы над другой. Разная длина разъемов, для обеспечения правильного втыкания. Защита от невнимательности.
2-2.jpg

Плата MQTT brocker-a с понижающим импульсным преобразователем HW-613 с КПД до 96% , током до 3А и входным напряжением от 4,5 до 24V. Можно подключать к чему попало от батарейки до автомобиля. Хотя я склоняюсь к использованию обычной телефонной пяти вольтовой зарядки. Черным на разъеме обозначен минус входного напряжения. Защиты от переполюсовки нету.
А мог бы воткнуть диод, но поленился.
2-3.jpg


Обратная сторона платы MQTT brocker-a.
2-4.jpg

Так выглядят платы с воткнутыми контроллерами и датчиками. O - openHAB, M - mqtt. Чтобы не запутаться.
2-5.jpg

Собран и подключен.
2-6.jpg

Вид сбоку.
2-7.jpg

Настройки потом. Программа для смартфона (рис1) в стадии поиска.

hw-613 Mini DC-DC от 4,5-24V до 3,3V 3 А, понижающий преобразователь напряжения - 85 руб

Итого:
" изготовить на макетных (для пайки) платах " - выполнено

Остаток от бюджета проекта:
1725 - 85 руб = 1640 руб

25 июня 2020 года (до завершения проекта 24 дня)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Произвожу настройку модуля esp8266 (esp12f) прошитый бинарным файлом от проекта "ESP Easy Mega" и отвечающий в рамках моего проекта за подключение датчиков и публикацию данных через программный контроллер openHAB на внешний сервер (brocker) по протоколу MQTT. Brocker уже включен в проект в виде отдельного esp12f и уже настроен.
Подключаю питание 5 вольт к собранному устройству. Вид устройства в сообщении выше.
Запускаю на компьютере FireFox и в строке адреса ввожу ip к которому подключился "ESP Easy Mega".
1-Config.jpg
Во вкладку Main даже не захожу, там просто информация не нужная для настройки.
Открываю вкладку Config. Далее на рисунках красным будет обведены те поля, где надо производить настройки. Если я что то и забыл указать, то вкладки с изменениями я заскриншотил полностью. Если не получается смотрите все.
Указываю произвольное имя контроллера в сети. Далее это имя станет обязательным при подписях на топики. Либо повторять строго как у меня, либо с пониманием зачем Вы меняете настройки и к где и какие изменения придется делать самостоятельно не повторяя за мной.
Я внимательно читаю файлы помощи от этой программы. Это такие белые вопросы в синих кружках открывающие ссылки на документацию в интернете. Правда указатели помощи разбросаны несколько хаотично по программе и мало интуитивно понятно где про, что читать. Поэтому читал все подряд и в конце концов картинка по настройке сложилась. Ставим не нулевой номер "Unit Number" - "При использовании протокола MQTT не забудьте установить номер модуля ESP в ненулевое значение, чтобы не конфликтовать с другими модулями ESP." Установка "Unit Number" в 1 настройка на будущее использование такой прошивки. Остальные поля прошивка "ESP Easy Mega" заполнила сама.
Листаю страницу до самого низа.
2-Config.jpg
Ничего не заполняю. Кто хочет может поменять пароль запрашиваемый при подключении к прошивке напрямую в режиме точки доступа. Можно и не менять, поскольку при подключении прошивки к роутеру клиентом, режим точки доступа блокируется автоматически.
Обязательно нажать на Submit для сохранения изменений.

Нажимаю на вкладку Controllers
1-Controllers.jpg
Создам контроллер openHAB и настрою для отправки публикаций на MQTT. Датчики смогут отправлять свои сообщения через этот контроллер на сервер brocker mqtt который будет хранить сообщения и отдавать программе смартфона по запросу. Нажимаю Add.

Появляется меню создания контроллера.
2-Controllers.jpg
Нажимаю на галочку в строке -Standalone- и появляется выпадающий список. В списке щелкаю мышкой по "HomeAssistant(openHAB)MQTT"
Появляется обширный список настроек.
3-Controllers.jpg
Изменения обведены красным. По русски это:
= Использовать IP адрес.
= IP сервера сообщений, который при настройке я задал как 192.168.1.100 (brocker MQTT)
= Что делать когда сообщения поступают в топик и никто не хочет их смотреть - выбираю удалять самые старые
Листаю страницу дальше
4-Controllers.jpg
Все интуитивно и понятно. Имя и пароль для подключения к brockery. Задано при настройке brocker-a. Имя bb пароль 4321.
Имя клиента для brocker-a. Я там один и пойдет любое. Соглашаюсь с предложенным по умолчанию. Использовать имя клиента при переподключении. Опубликовать и сохранить флаг о публикации. LWT - Last Will and Testament, «последняя воля и завещание» для уведомления об аномальном отключении. Will Retain Сохраненное сообщение - это обычное сообщение MQTT с установленным флагом true. Посредник хранит последнее сохраненное сообщение и соответствующее QoS для этой темы. Каждый клиент, который подписывается на шаблон темы, соответствующий теме сохраненного сообщения, получает сохраненное сообщение сразу после подписки. Посредник хранит только одно сохраненное сообщение на тему.
Важно включить контроллер. Установить галку Enabled. И сохранить настройки. Нажать Submit.

Открываю вкладку Hardware
1-Hardware.jpg
Первые две позиции, чтобы светодиод весело горел при включенном устройстве.
Настраиваю I2C интерфейс, туда подключены все датчики. Без этой настройки с датчиков ничего не увидишь.
Листаю страницу до конца
2-Hardware.jpg
Вообще ничего не трогаю. Нажимаю сохранить изменения - Submit.

Открываю вкладку Devices (буду подключать датчики)
1-Devices.jpg
Будет 12 строк. На первой нажимаю Add.
Из списка выбираю Generic - System Info. Для проекта вроде бесполезное, но вероятно удобное для настройки при подключении топиков к смартфону в будущем. И сейчас, чтобы мгновенно посмотреть результат работы.
После выбора открывается меню настройки в котором даже не выделяю красным. Просто - делай как я. Если не понятно, читайте документацию, там много чего интересного написано. Далее скриншоты всех устройств со всеми настройками. После настройки устройства обязательно нажимать сохранение - это Submit. После сохранения снова нажимать Devices и в следующей строке нажимать Add. И так далее.
2-Devices.jpg
.
3-Devices.jpg
4-Devices.jpg
5-Devices.jpg
6-Devices.jpg

Все датчики подключены и настроены. Как обычно нажимаю Submit для сохранения настроек и Devices для главного меню устройств.
7-Devices.jpg
Видим результат своего труда. Единички в черных кружках означают передачу данных от датчиков в контроллер openHAB.

Notifications не трогаю.

Открываю вкладку Tools
1-Tools.jpg

Нажимаю Advanced и просто настраиваю, чтобы время показывало правильно. Все скрины прилагаю.
2 -Tools.jpg
3 -Tools.jpg
4 -Tools.jpg
Submit для сохранения настроек.

На этом настройки закончены.
Проверка получения данных на смартфон в следующий раз.

Итого:
OpenHAB настроен

Остаток от бюджета проекта:
без изменений 1640 руб

26 июня 2020 года (до завершения проекта 23 дня)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Проверка получения данных.
Запускаю на смартфоне MyMQTT. Про MyMQTT читать здесь.
Фактически сразу на меня посыпались данные.
1.jpg
Отключаю WiFi на телефоне и просматриваю список от начала. Большой список можно прокручивать. Если не отключить WiFi на телефоне то будет засыпать данными и начало списка посмотреть не удастся.
Между топиками Comfort/sys/rssi обведено красным, эта программа выдала правильное написание всех топиков для подписки. Вот так и протестировал за три секунды. Просто повезло.
От скуки качаю первый попавшийся datasheet на ccs811. Читаю и удивляюсь.
2.jpg
Оказывается новый датчик надо выдержать 48 часов под напряжением питания для стабилизации показаний сенсора.
В принципе как бросил схему работающей так она и работала. Пусть еще сутки работает. Раз уж техническая документация на датчик этого требует.

Поскольку аппаратная часть фактически сделана, остался один маленький но очень важный кусочек проекта. "Нажал кнопку на смартфоне и прочитал данные с дисплея. " Формулирую требования к желаемой программе на смартфоне.
Хочу:
1) бесплатную
2) полнофункциональную версию для некоммерческого (личного) использования
3) Показывать цифры программа должна сразу после запуска с ярлычка
4) интерфейс не самый убогий, а хотя бы, чтобы в каких нибудь разных окошках с подписями показывало данные на одном экране.

Понимаю, что сейчас начнется, что это не возможно. Однако несмотря на скепсис kalobyte по поводу аппаратной части, о невозможности совмещения дешево и набора измеряемых параметров, аппаратная часть комфортомера сделана и работает. Ищу программу с выше перечисленными требованиями. И только после получения данных на смартфоне в удобном для меня виде буду считать проект закрытым.

Итого:
Взаимодействие OpenHAB-а с MQTT сервером - проверено
Сформулированы требования к программе и виду получаемых данных на сотовом телефоне.

Остаток от бюджета проекта:
без изменений 1640 руб

27 июня 2020 года (до завершения проекта 22 дня)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Подумал, что неплохо запихать собранное железо в какую нибудь дырявую коробку.
Практически сразу вывалилась ссылка на
0модель.jpg
Описание 3d модели
Коробка для чего угодно (stl файл).
Будет для комфортомера :)

Тут модель коробки для чего угодно.
Загружаю в куру "Wanhao-Cura" и вижу не влазит.
1модель.jpg
Разбиваю на части. Тут действительно два отдельных объекта.

Теперь все входит.
2модель.jpg
Прикинув размеры внутри (померил моделью линейки), увеличиваю по X на 50%, по Y на 10%, Z высоту оставляю как есть.
Ткнув на крышку, увеличиваю так же.

Сохраняю в кодах принтера и пока с женой ходили на день рождение родственника, печаталось.
Завершение печати.
3модель.jpg

Готово.
4модель.jpg

Вставляю платы внутрь, приклеив сопливым пистолетом (клеевым термопистолетом).

5модель.jpg

Закрываю крышку капнув пару капель клея и конструкция готова.

В проекте использован двухжильный кабель сечением 0,75 мм. в квадрате. Остался кусок от чего то, стоимость не знаю. Брал когда-то в соседнем магазине пять метров за копейки.

В проекте использован USB разъем
usb разъем 2.jpg

Брал когда-то 10 штук. Теперь 10 штук стоят в пересчете на полную стоимость с доп расходами 75 рублей.

На столе валялась взятая на посмотреть характеристики, USB зарядка. Взял и включил ее в проект. И да, характеристики так себе, но для проекта сгодится.
USB charjer 2.jpg
Сейчас это будет стоить с доставкой и прочими расходами менее 220 рублей.


Аппаратная часть комфортомера упакована в корпус из коробки для чего угодно и исправно работает.
6модель.jpg

Итого:
Платы комфортомера упакованы в корпус.

Остаток от бюджета проекта:
1640 - 75 - 220 = 1345 руб.

28 июня 2020 года (до завершения проекта 21 день)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Сегодня случилось важное. Об этом позже. Сначала хочу сказать, что USB зарядка фото в предыдущем сообщении просто для расчета стоимости. В этой зарядке отсутствует режим быстрой зарядки от слова совсем. Это зарядное может в пиковом режиме выдать максимум два ампера. Не рекомендую ни в коем случае. Просто понимаю, что для моего проекта подойдет, раз уже есть и не более того.

А теперь два важных события.
Первое. Посмотрел тепловой режим комфортомера
греется.jpg
Получается, что esp8266 стоящее на плате ниже греет датчик температуры.

Выкинул крышку и принял новое правильное расположение для комфортомера.
положение правильно.jpg
Теперь при сравнении в диапазоне от 24 до 26 градусов Цельсия с промышленным контроллером получающим данные с промышленного высокоточного низко инерционного платинового датчика температуры, получил полное совпадение температур в первом знаке после запятой.
Это радует.

Второе замечательное событие. Просматривал всякую ерунду на youtube и наткнулся
вид.jpg
Иду по ссылке и смотрю описание клиента.
Описание от автора программы: "Друзья! Это приложение разрабатывалось для моих собственных нужд и в свободное от работы время. Я не зарабатываю деньги на нем. Оно не содержит рекламы или каких-либо опций, за которые надо платить!"
О как. Выглядит как надо. И бесплатное как надо. И полнофункциональное при этом. Кажется я нашел нужный софт. Буду пробовать.

Итого:
Определено правильное положение собранной конструкции, с минимальным тепловым сторонним влиянием на датчики.
Найден претендент на гляделку данных на mqtt brocker-e для смартфона под android.

Остаток от бюджета проекта:
без изменений 1345 руб.

29 июня 2020 года (до завершения проекта 20 дней)
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Претендент на гляделку с mqtt brocker-a утвержден.
Посмотрел, понравилось, настроил пользуюсь. Настройки сбивать не буду. Покажу как настраивал, на уже настроенном MQTT Dash.

Запустил PlayMarket на смартфоне.
01.jpg

Нашел MQTT Dash, он бесплатный и полнофункциональный.
02.jpg
Установил. На экране появился ярлык.
00.jpg
Запустил.
Не забываем, уже настроил для себя и показываю на настроенном.
03.jpg
Надписи комфортомер не будет. Поэтому нажать на плюс вверху справа.

Попадаем в настройки для связи с brocker-om.
04.jpg
Отмечаем галочками как у меня. Имя любое. Адрес тот, который в brockere
Создание своего сервера mqtt здесь. Использую настройки от своего brocker-a.

Напоминаю, что настроил для своего сервера (brocker-a) mqtt сделанного из esp8266 (esp-12f)..
set ntp_server ntp1.stratum2.ru - устанавливаю сервер точного времени
set ntp_timezone 3 - устанавливаю зону времени Москва
set ap_on 0 - устанавливаю запрет точки доступа, будет только режим станции
set broker_user bb - имя брокера
set broker_password 4321 - пароль брокера
set ip 192.168.1.100 - фиксирую адрес, чтобы при восстановлении подключения всегда был один и тот же
set config_access 0 - запрещаю доступ к конфигурации из сети (конфигурация только через последовательный порт)
save - сохраняю настройки.

Листаю настройки и ниже продолжаю заполнять. Имя bb, пароль 4321 идентификатор MQTT Dash установил сам, но если очень хочется можно поменять.
05.jpg
Листаю в начало и нажимаю справа сверху дискету. Это сохранит произведенные настройки.
Для меня программа интуитивно понятна, возможно какие-то интересные функции я проглядел. Но сейчас это не важно.

На телефоне нажимаю возврат.
001.jpg
Попадаю
03.jpg
Теперь это у Вас появилось. Нажать на синюю надпись.

Попадете в черный экран. У меня уже не черный. Сверху справа нажать плюс.
06.jpg
Выбрать Текст. Попадаете в настройки.

07.jpg
Имя любое. У меня просто подписаны параметры датчиков с небольшим пояснением.
Топик. Заполнить в точном соответствии с данными о получившихся топиках. Неправильный топик - нет данных.
У меня получение точных названий топиков описано здесь. Красным обведены названия топиков, которые я и вбивал здесь.
Если щелкнуть на квадрате цвет текста, можно поменять цвет.

Здесь ничего не настраиваем. Показываю, что QoS(0) надо оставить в ноле. Везде во всех настройках оставить QoS(0).
08.jpg
Нажать дискетку для сохранения изменений.
Настраиваю все.
Далее только скриншоты от англ. screenshot — «снимок экрана»

09.jpg

10.jpg
11.jpg
12.jpg
13.jpg

Что бы Wi-Fi получился как у меня выбрать "Диапазон/прогресс", а не текст как везде.
14.jpg
15.jpg

Настройка завершена!




Теперь дотронувшись до
00.jpg

Сразу открывается
0.jpg

Что и хотелось исходя из начала проекта.

Итого:

Потрачено 2155 руб. примерно $31. Для устройства такого уровня - это дешево.

Особое спасибо Александру Симонову за вовремя внесенное предложение по замене датчика кислорода на датчик CO2.
Бесполезный на мой взгляд расчет стоимости для kalobyte. Для меня бесполезный, но ему виднее.
Отдельное спасибо AlexyR за подсказку и прошивку EasyESPMega. Огромное спасибо проекту Esp Easy за шедевральную прошивку Esp Easy Mega.
Спасибо огромное за труд Martin Ger, за великолепный сервер mqtt на чипе esp8266. Лично с Martin Ger не знаком, но уважаю.
Спасибо незнакомцу за модель ящика для чего угодно, пригодился для комфортомера.
Спасибо тем кто дочитал. Если понравилось, повторяйте. Старался расписывать максимально подробно.

30 июня 2020 года (до завершения проекта 19 дней) проект завершен на 19 дней раньше срока.
 

yuradster

✩✩✩✩✩✩✩
14 Сен 2021
1
0
@ТехнарьКто,Решил повторить, и проект работает!
 

S_Sergey_G

✩✩✩✩✩✩✩
23 Фев 2021
163
3
Спасибо за проект, очень интересно. Возможно ли ESP_Easy_mega отправлять в сон с минимальным потреблением? Чтобы сделать автономным датчик температуры. Можно ли использовать вместо ESP-12 ESP-01S?
 

knopaleo

✩✩✩✩✩✩✩
12 Авг 2019
19
3
Спасибо за проект, очень интересно. Возможно ли ESP_Easy_mega отправлять в сон с минимальным потреблением? Чтобы сделать автономным датчик температуры. Можно ли использовать вместо ESP-12 ESP-01S?
Давайте я вам еще наводку кину:
 

S_Sergey_G

✩✩✩✩✩✩✩
23 Фев 2021
163
3
knopaleo
Сегодня средствами проекта настроил спящий режим, 20 мкА потребляет во сне. Ногу питания датчика завёл на GPIO. Но ESP01 меня больше интересует. Спасибо большое за наводку.
 

knopaleo

✩✩✩✩✩✩✩
12 Авг 2019
19
3
А сколько секунд в активном режиме работает?
 

S_Sergey_G

✩✩✩✩✩✩✩
23 Фев 2021
163
3
knopaleo
Пока поставил 30 сек. это много. Завтра буду уменьшать до 5-3 сек. У меня проект на Blynk шестой месяц работает на автjномном датчике от 18650. DS 18B20 медленный датчик 750 мил. сек. на измерение, но он мне нравиться и их у меня много. Я собрал часы-термометр, от IvanUA, подключил к этому проекту по MQTT. Я пока не понимаю как передаётся температура. Датчик отсылает данные на MQTT сервер, данные там где то записываются и хранятся? Что бы пока датчик спит часы смогли забрать данные.
 

knopaleo

✩✩✩✩✩✩✩
12 Авг 2019
19
3
Часы запоминают последнее показание с внешнего градусника. Mqtt как передаточное звено.
Меня интересует, сколько длится процесс от просыпания до засыпания в этом проекте. Тут ведь время активной работы тоже батарейку кушает.
 

S_Sergey_G

✩✩✩✩✩✩✩
23 Фев 2021
163
3
В проекте указывается в ручную сколько время активной работы а сколько спать. Можно указать и 1сек. работы, но передатчик может не успеть отправить данные. Завтра буду экспериментировать.
 

S_Sergey_G

✩✩✩✩✩✩✩
23 Фев 2021
163
3
Весь проект собрал на ESP-01S. Датчик получился беспроводной (DS18B20), на батарейках, скетч собирал сам. Каждые 10 мин. отправляет на сервер температуру и напряжение, эту же инфу получают и отображают часы-термометр от IvanUA . В активном состоянии 3 сек., при отсутствии связи с сервером (отключили напряжение) уходит в сон на заданное время. Для аккумулятора при низком напряжении для него, уходит в сон на сутки. Мне одно не понятно, в приложении MQTT Dashboard в логах пишет такое (на скриншоте) каждую минуту. Почему соединение прервано? Если интервал передачи данных сделать одну минуту то такого нету. Может это нормально, я не знаю. Или так приложение работает криво? Может кто ни будь объяснить?
 

Вложения

knopaleo

✩✩✩✩✩✩✩
12 Авг 2019
19
3
Ну если 192.168.1.101 это внешний датчик, то да. Он же отключается.
Скинь скетч.