Jump to content
iT4iT.CLUB
EndWar

Не здоровый интерес к домашней автоматизации...))

Recommended Posts

Привет. Это не бахвальство, просто слышал, заходила речь о коммуникации трёх разных объектов. Вот решил показать, что у меня с четырьмя "объектами" на основе этой метеостанции, проекта https://wifi-iot.com/, немного https://thingspeak.com/channels/42908 и https://www.wunderground.com/.

Скрытый текст

iot-8266-starter_bb.jpg.65d7b46111bee161063963844f0454d8.jpg2017-11-20_12-50-39.png.43ee84d0f95ce5d00a48ebbca79d0ce9.png2017-11-20_12-51-59.png.e6a3a824697a42b3a5e72bf7029ffafe.png2017-11-20_12-53-27.png.9aaa8ab05ff21a8587414ad07ac02c97.png2017-11-20_13-02-03.png.b9a4538ac67127c7f8be691580fc2020.png2017-11-20_13-02-51.png.48e78dd6f2bbf78c91840ebf5fbe9f74.png2017-11-20_12-58-05.png.afd36b045205aeadd4da30da415bc6ad.png

Если кому надо, чем смогу помогу...

Share this post


Link to post
Share on other sites

Ещё не много...

Скрытый текст

20112017096.thumb.jpg.3c7c94cab5727d227030fc5c0e09c9c0.jpg20112017094.thumb.jpg.d48719a02a63d41c753574a57963e57d.jpg20112017095.thumb.jpg.97c644178e10351ee08f7ffb3fdffa28.jpg20112017105.thumb.jpg.badc89e150ea9b67afbd0d4fe1ae2441.jpg20112017093.thumb.jpg.0ea81c058794ca52d5e44564821c30ee.jpg20112017107.thumb.jpg.8e9196cdc93aac795c02169ca66b7dae.jpg20112017108.thumb.jpg.3c55f1a468c830a5cc91089db11efea8.jpg

Всё пока "на коленке" так сказать обкатку проходит, но показывает себя отлично, некоторые элементы же больше года в строю...

Share this post


Link to post
Share on other sites

@EndWar

При всём уважении какие-то костыли. разнородные прошивки. То есть какая прошивка подходила под нужду просто ставили ее на тот объект. В итоге ни централизованного управления и мониторинга. Вот если б эти объекты были завязаны в единую экосистему, обменивались между собой данными и т.п. на основе которых срабатывали бы управляющие устройства - это было бы очень круто. И хваст был бы оценен очень высоко. А так непонятен именно ваш вклад в то , чем вы хвастаетесь)

Да и спорных моментов в ваших материалах много,  к примеру, температуру в вашей ванной зачем отправлять на народный монитор?

Share this post


Link to post
Share on other sites

@Alex_DIY , как вы представляете себе "однородные прошивки" на ESP и Tiny13.?! )) Централизованное управление, мониторинг, обмен данными как раз присутствуют вместе с "единой экосистемой" (экосистема - биологическая система, состоящая из сообщества живых организмов))) приглядитесь внимательнее и вы поймёте, что на народном мониторинге общедоступные только датчики наружной температуры и давления. Ну и Arduino это и есть костыли в чистом виде... я ж пояснил всё в обкатке от того и вид не приглядный и интерфейс разнородный, привести всё к общему знаменателю не составит труда, но... мне важнее изучить надёжность и целесообразность использования разных подходов... Опять таки я не хвастаюсь, а готов предоставить все исходники в общий доступ с пояснениями (кому интересно) и когда (если) вы их увидите то поймёте именно мой скромный вклад... ))

 

Edited by EndWar

Share this post


Link to post
Share on other sites

@EndWar

вот у всех продуктов apple экосистема, у продуктов xiaomi единая своя экосистема. То есть всё объединено и тесно между собой завязано.

Что я вижу из предоставленной вами информации. Метеостанция на esp8266 с прошивкой от Kitsum,  2 устройства на esp8266 с закрытой прошивкой от homes-smart.ru, wifi-iot.ru  и передатчик на attiny13. Все что можно было вы подвязали на народный мониторинг и thingspeak. Чтобы графики всех датчиков видеть в одном месте. Если надо управлять вентилятором, то надо заходить на страницу прошивки одного устройства, если посмотреть все скопом то по другому адресу интерфейс. Если где-то чем-то еще захочется управлять, то в другой интерфейс... одним словом я вижу это как зоопарк.

Вот если б у вас это было объединено в единый front-end, когда зашел на одну страничку и ты видишь там и информацию со всех датчиков, и состояния исполнительных устройств, и можешь ими с этой же страницы управлять, вот это я понимаю под единой экосистемой.  В принципе сама по себе прошивка от хоум-смарт как раз такую идеологию и подразумевает, но когда вы начинаете ее "скрещивать" с метеостанцией от Kitsum, да и то скрещивать - просто настроили вывод на народный монитор и thingspeak. Ну я, честно, не вижу чем тут хвалиться. Достаточно одному из интернет сервисов прекратить свою работу, или же изменить алгоритм работы,  или же забыли за интернет заплатить и усьо... 

Плюс закрытость прошивок, вернее это их минус. К примеру, недавно была обнаружена уязвимость у вайфай устройств KRACK attack. В случае с прошивкой с открытым кодом я могу перекомпилировать прошивку с учетом патчей, закрывающих данную уязвимость, а в случае закрытой прошивки такой возможности нет. Да и что там мог в закрытой прошивке внедрить ее автор-разработчик - одному ему известно.

Я не против того что вы делаете, просто высказал свой взгляд, может конечно что-то недопонимаю.

 

Я , к примеру, поднял у себя локальный MQTT брокер к которому подключил метеостанцию, к нему же позже планирую подключить и внутренние датчики и исполнительные устройства, и позже на phyton (не знаю на нем не программировал ни разу, но вроде б синтаксис посмотрел - думаю справлюсь) написать уже логику взаимодействия и единый интерфейс для всего, что подключено к mqtt брокеру. Если питон не зайдет, то буду с php и java script изгаляться.

Из-за того, что было лень сверлить дырочку для питания метеостанции, сделанной 100% клоном метеостанции от Kitsum, я решил сделать ее автономной. Сделал платочку для модуля esp8266-07 с LDO DC-DC. Питание от трех аккумуляторов eneloop типоразмера АА (так как у них низкий саморазряд и рабочая температура до - 20 градусов). Переосмыслил прошивку - теперь у меня метеостанция спит 14 минут, просыпается  на 0,6-0,8 секунды и снова засыпает. За это время устройство соединяется с домашней wifi сетью, считывает данные с датчиков и отправляет их по mqtt на локальный mqtt  брокер и на mqtt народного мониторинга и снова уходит в глубокий сон. Одного комплекта аккумуляторов по расчетам должно хватить примерно на год работы в таком режиме. Так как в режиме сна потребление порядка 30мкА, в режиме работы 120мА. Замерял. Вот такой вот у меня хваст :-)

 

Edited by Alex_DIY

Share this post


Link to post
Share on other sites

@EndWar @Alex_DIY друзья, прошу Вас не спорить. Мы все люди, где-то ошибаемся, а где-то, думая, что совершили ошибку, на самом деле, сделали верный выбор. В любом случае, отталкиваясь от тематики этого раздела, мы пытаемся получить тот результат, который в итоге устроил бы лично нас. И очень хорошо, что мы готовы делиться нашими наработками и самое главное - опытом. И даже не важно, положительный он или нет, ведь то, что было провалом для одного, станет отправной точной для другого. Я очень благодарен Вам, за вклад в развитие проекта и за столь продолжительный интерес к нему. И я уверен, что с увеличением популярности домашней автоматизации, стандартом будут становится именно открытые платформы, разработанные сообществом людей.

  • Like 1

Share this post


Link to post
Share on other sites

@Kitsum , в споре рождается истина, не..?! )) Вам, отдельное СПАСИБО!

@Alex_DIY , ещё раз, для не внимательных - я не хвастаюсь, написал как пример того, что при желании (необходимости) можно скомуницировать самые разнообразные варианты... Опять же про цели, у меня нет претензии на создание какой-то "единой системы умного дома" это всего лишь эксперимент для изучения возможностей, опыт которым готов поделиться... Про ваш вариант. 14 минут сна не многовато, зачем веб интерфейс метеостанции (100% клону метеостанции от Kitsum), который работает 0,6-0,8 секунд раз в 14 минут, и по железу думаю практичнее в этом случае вместо "модуля esp8266-07 с LDO DC-DC,  трех аккумуляторов eneloop типоразмера АА" подцепить всего лишь беспроводной датчик на tiny13, 45, 85 который от одной CR2032 в таком режиме работал бы пол года - год... Не так-ли.?

Скрытый текст

ATtiny85-prototip-besprovodnogo-sensora.png.4b83d311009067704e649849a0d6a116.pngATtiny85-prototip-besprovodnogo-sensora-29.png.a253a4f4d66900f0f7f115856adac1ea.pngIMG_1593.jpg.5385ab88a773e9c7957713dbfe9396a7.jpgIMG_1594.jpg.5d90b4af0e0373a273bd17d5735b7015.jpgFLYCKCHIA3V47KQ.LARGE.jpg.225386635b5dcca32cc514525c6eb879.jpgnode5.jpg.f22be6e0fd6d4edb1b3ebe836a7a624b.jpg

Впрочем делайте как вашей душе угодно, это я к тому, что критиковать можно (при желании) что угодно... ))

Edited by EndWar

Share this post


Link to post
Share on other sites

@Kitsum ,@Alex_DIY , парни подскажите, Алекс верно указал мне на то, что нафиг сначала отправлять свою температуру на api.thingspeak а потом её же оттуда и запрашивать для метеостанции, имея возможность напрямую взять просто с другого модуля get запросом, вот правда бьюсь час (старенький уже - 42))) ни как не соображу, что куда в программу добавить...  Короче в

/*
   структура и переменные для хранения показаний датчиков
*/

добавляю сенсоры 

sensor temperatureUl;        // температура на улице запрос с 192.168.0.123/sensors dsw1:
sensor temperatureBat;     // температура батарей  запрос с 192.168.0.123/sensors dhtt1: 
sensor humidityKu;            // влажность на кухне запрос с 192.168.0.123/sensors dhth1: 

и так далее... Так.?! Потом мне необходимо получить get запросом с "192.168.0.123/sensors" данные, которые придут мне в виде  < hostname:Зал;dhtt1:52.0;dhth1:20.0;dsw1:3.0; > и как-то рассортировать их значения по

temperatureUl.data =  т.е. сюда подставить значение dsw1:3.0; в данном случае 3.0

temperatureBat.data = сюда dhtt1:52.0;

humidityKu.data = а сюда dhth1:20.0;

что бы потом выводить эти показания на OLED и в кружочки на веб странице (это я уже научился)))... я конечно  поиск гугл потреплю и может дня через три-четыре тыканий на обум допру "что чего", но если можете помогите пожалуйста...

С уважением, Павел.

Спасибо.

Edited by EndWar

Share this post


Link to post
Share on other sites

@EndWar Вы невнимательно прочли моё сообщение, я ж написал, что сперва сделал клон Kitsuma, но затем переосмыслил работу своего устройства, перевел его на батарейное питание и сделал свою прошивку, где никакого вэбинтерфейса не осталось B| Как вы верно заметили, там это ни к чему.

Цитата

по железу думаю практичнее в этом случае вместо "модуля esp8266-07 с LDO DC-DC,  трех аккумуляторов eneloop типоразмера АА" подцепить всего лишь беспроводной датчик на tiny13, 45, 85 который от одной CR2032 в таком режиме работал бы пол года - год.

ммм, не знал, что tiny13 имеет wifi интерфейс :P в случае добавления передатчика 433МГц потребует изготовления еще и на той же ардуинке+ сетевой модуль приемника, который полученное должен загнать в сеть и послать на мой сервер. При наличии esp8266 ваше предложение - костыль и порождает ненужные сущности в системе.B| Я еще не упоминаю о том, что эфир на 433 МГц может быть сильно зашумлен множеством устройств (сигналки, радио пульты и т.п.).

3 часа назад, EndWar сказал:

рассортировать их значения по

Вообще- конечно POST GET гонять - не комильфо, много лишней служебной информации, которая по большому счету не нужна. Но в связи с тем, что вы используете прошивку wifi-iot, то выхода у вас как я понял не остается. Если только не переписать прошивку самому.

А так, в среде arduino IDE библиотека json в помощь.

Наверное по-простому получится что-то типа:

char json[]=ответ на GET запрос, который надо разобрать.
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(json);
temperatureUl.data = root["dsw1"];
temperatureBat.data = root["dhtt1"];

Kitsum очень элегантно в свой прошивке использует обмен данными. Можно у него подсмотреть, думаю он не будет против  :-)

 

Edited by Alex_DIY
  • Thanks 1

Share this post


Link to post
Share on other sites

@EndWar

шикарно, если б это еще не статичная html страница с диска С была, можно было б начинать завидовать  :D Кстати, в виде фреймов можно и на вэб сервисе такую страницу создать и использовать. Но крупный минус этого всего - это зависимость от двух сторонних сервисов и канала в интернет. У меня небольшой "бзик" на эту тему, я стараюсь везде избавляться от подобных зависимостей. Не призываю делать так всех, так что мою критику можно рассматривать лишь в качестве пищи для размышлений, а никак не повод обидеть.

Для себя я вижу архитектуру умного дома как свой локальный сервер, который аккумулирует данные со всех сенсеров, может отправлять на исполнительные усторйства команды ( всё это в пределах своей домашней вайфай сети) на и потом просто организовать доступ к локальному серверу из любой точки с помощью интернет, скажем просто через vpn попадая в свою локаьную сеть и управляя/ просматривая свои сенсоры-устройства на едином экране, что-то типа как на вашем скриншоте. Ну и можно со своего локального сервера на тот же сайт народного мониторинга отправлять данные с сенсоров, которые могут быть полезны другим людям. В плюсах данной архитектуры вижу: а) не зависимость действий системы от провайдера и сторонних сервисов сети интернет ( то есть исполнительные устройства могут отрабатывать логику. опираясь на показания датчиков без участия посредников в виде сторонних сенсоров и интернет провайдера). б) минимальные шансы на воздействия третьих лиц на системы умного дома. Пока это просто метеостанция, то пофик. А как только появляются исполнителные устройства. то кто-от может вмешаться в их работу и устроить неприятные сюрпризы (толи напрямую управляя ими, толи подменяя данные сенсоров, на которых завязана логика их работы).

 

удалось добыть в черную пятницу MH-Z19 за 10$, как придет, а если еще и рабочий, то соберу еще одну "метеостанцию" для помещения и буду его встраивать в прошивку Kitsum. Результатами поделюсь.

Edited by Alex_DIY

Share this post


Link to post
Share on other sites

@Alex_DIY , ну это вы зря, молодой человек, на "сторонние сервисы" наговариваете... 9_9 

1) В моём случае их не два, а четыре: https://narodmon.ruhttps://thingspeak.comhttps://www.wunderground.com и http://ntp.org...

2) Где же и как, по вашему, если не на "стороннем сервисе" наши устройства должны брать прогноз погоды и точное время, в Гидрометцентр звонить что-ли..?! )) Это ведь и есть тот самый, преславутый, "интернет вещей" ( прогресс ёпть )... 

3) Чтобы что-то подменить, заменить, или управлять "злым хакерам" сначала придётся сломать все пароли (можно, но сложно)  и риск считаю оправданным.

4) Логика моих устройств (девайсов [англ. device — прибор, устройство]) написана так, что если никакой сети не будет, даже внутренней (жена маршрутизатор разобьёт), они до потери сознания будут выполнять тот алгоритм, что в них заложен создателем т.е. мной :D без малейшего ущерба какой бы то ни было функциональности, что касается взаимодействия с исполнительными устройствами (это к стати исключено в случае с вашим "своим локальным сервером, который аккумулирует данные со всех сенсОров, может отправлять на исполнительные устройства команды" Подумайте об этом!)... Иными словами вентиляция так и будет включаться при наличии достаточной влажности или курильщика в сан узле, температуру, влажность и атм. давление я так и буду видеть на OLED дисплее, единственно чего лишусь так это "точного времени" и прогноза на три дня (не велика потеря)...

5) "Забыть заплатить за интернет" это у меня просто исключено, подключен автоплатёж (и опять таки Жена на подстраховке, ответственная у  меня))), ну а если уж нечем будет (ни дай боже) заплатить, то нафиг мне тот прогноз (я в жопе, не до прогнозов тут ), обойдусь... "Отключат аварийно" - так всё отключают и интернет и воду и свет (что гораздо "опаснее" всех рисков которые мы тут рассматриваем), благо воздух ещё не научились отключать xD...  

PS. И чем это вам не угодила "статичная html страница с диска С", сами ведь "топите" за всё независимое, а меня отправляете на "вЕб сервис" (противоречивенько)..?! 

Edited by EndWar

Share this post


Link to post
Share on other sites

 

@mag21

за такую цену напрямую и не продавали. Просто на ебее был купон на скидку 10$ при заказе от 20$. Плюс у банка тинькофф была акция за заказ на ebay от 1200р возвращали 600р на счет, то есть еще 10 $ возврат. В итоге я выбрал BME280 за 5$ c  мелочью  и MH-Z19 за 25$ с мелочью, получив итоговую сумму 31.5$ с которой ebay скинул 10$ и тиньков вернул 600р. (считай 10$), так что BME280+ MH-Z19 мне обошлись в 11,5$. так что уже так не купишь. На али за 19.4$ самый дешевый MH-Z19 удавалось найти, ориентировался на него. пока ebay купон не прислал.

@EndWar 

4 часа назад, EndWar сказал:

Где же и как, по вашему, если не на "стороннем сервисе" наши устройства должны брать прогноз погоды

Ну да, навешали датчиков, чтобы погоду из интернета получать. Accuweather конечно лучше знать. что у меня за окном :D

4 часа назад, EndWar сказал:

"злым хакерам" сначала придётся сломать все пароли

я вижу, что ваши познания о сетевой безопасности... отсутствуют))) Блажен кто верует в силу своих паролей, используя небезопасные сетевые протоколы :D

4 часа назад, EndWar сказал:

они до потери сознания будут выполнять тот алгоритм

Это всё просто потому, что они у вас по сути независимы и не связаны, поэтому в большом понимании пока что у вас не умный дом. а набор датчиков и вентилятор с возможностью удаленного вкл-выкл. Это всё конечно в моем представлении. Если вам так нравится, то пусть это у вас будет интернет вещей и всё такое.

Но вот если б у вас стоял датчик на двери входной двери, управляемые шаровые краны для отключения воды в жилище, температурные датчики внутри-вне помещения, теплый пол дома. И если б было реализовано управление без вас, к примеру сценарий работы: по датчику в двери система понимает, что все покинули квартиру и перекрывает шаровые краны. также от температуры за окном система включает подогрев пола, а когда по датчику видит, что хозяин покинул дом, то выключает и теплый пол, а как только хозяин открывает дверь - включает его. Вот это умный дом, когда все те компоненты как исполнительные, так и мониториновые находятся в тесной связи друг с другом. А не то что висит за окном метеостанция с вайфаем. Висит в ванной вентилятор, который можно вкл-выкл через вайфай и который может сам включиться по датчику влажности, встроенному в вентилятор, и эти две системы друг с другом не связаны в работе,  лично я такое к умному дому не отношу.Вот если б ваш вентилятор в ванной летом работал на всю мощность( и понимал это без вашего участи по уличному датчику с вашей метеостанции), так как тяга летом из-за отсутствия разницы температур улица-помещения - отсутствует, а зимой менее продолжительно. так как тяга такой силы. что у меня в вент. канал пакеты затягивает. вот это было б умный дом. Опять же, вас это устраивает, ок я не навязываю свое видение. А свою систему я реализую по описанному мною подходу, где собираю всю информацию воедино и потом на основе этой информации по заранее написанным сценариям происходит управление всеми устройствами без моего участия. Ну и соответственно с возможностью зайти через интернет и в любой момент увидеть все параметры умного дома и вмешаться в их работу в случае надобности.

 

А интернет пропадает не только если домашний роутер жена сломала ,или свет в городе вырубили, а у меня частенько бывает, что у провайдера повреждают магистральный кабель. Всё есть - и вода? и свет, а интернета нет. Так что можно только порадоваться, что интернет у вас без перебоев :-)

 

Цитата

PS. И чем это вам не угодила "статичная html страница с диска С", сами ведь "топите" за всё независимое, а меня отправляете на "вЕб сервис" (противоречивенько)..?! 

Скрытый текст

   Они вышли в прихожую, Волька снял телефонную трубку с рычажка, быстро
набрал знакомый номер и сказал:
   - Будьте любезны, позовите, пожалуйста, Женю.
   Затем он передал трубку Хоттабычу:
   - На, можешь поговорить с Женькой.
   Хоттабыч осторожно прижал трубку к уху, и лицо его расплылось в  рас-
терянной улыбке.
   - Ты ли это, о благословенный Женя ибн Коля?.. Где  ты  сейчас  нахо-
дишься?.. Дома?.. А я думал, ты сидишь в этой черной трубочке, которую я
держу у своего уха... Да, ты не ошибся, это я, твой преданный друг  Гас-
сан Абдуррахман ибн Хоттаб... Ты скоро приедешь? Да будет, в таком  слу-
чае, благословен твои путь!..
   Сияя от восторга, он возвратил трубку ухмыляющемуся Вольке.
   - Поразительно! - воскликнул он. - Я беседовал, даже не повышая голо-
са, с отроком, находящимся от меня в двух часах ходьбы!
   Вернувшись в Волькину  комнату,  Хоттабыч  хитро  оглянулся,  щелкнул
пальцами левой руки, и на стене, над аквариумом, тотчас же помялось точ-
ное подобие телефона, висевшего в прихожей.
   - Теперь ты сможешь сколько угодно беседовать с друзьями, не  покидая
своей комнаты.
   - Вот за его спасябо! - с чувством  промолвил  Волька,  снял  трубку,
прижал ее к уху и долго тщетно прислушивался.
   Никаких гудков не было слышно.
   - Алло! Алло! - крикнул он.
   Он встряхнул трубку, потом стал в нее дуть. Гудков все равно не было.
   - Аппарат испорчен, - объяснил ои Хоттабычу. - Сейчас я открою  крыш-
ку. Посмотрим, в чем там дело.
   Но коробка аппарата, несмотря на все усилия Вольки, никак не открыва-
лась.
   - Он сделан из цельного куска самого  отбориого  черного  мрамора!  -
похвастался Хоттабыч.
   - Значит, внутри там ничего нет? - разочарованно спросил Волька.
   - А разве внутри должно что-нибудь быть? - забеспокоился Хоттабыч.
   - В таком случае, понятно, почему этот телефон не действует, - сказал
Волька. - Ты сделал только макет телефона,  без  всего,  что  полагается
внутри. А внутри аппарата как раз самое главное.
   - А что там должно быть, внутри? Объясни, и я тотчас же  сделаю  все,
что необходимо.
   - Этого так просто не объяснишь, - важно ответил Волька. - Для  этого
нужно сначала пройти все электричество.

@EndWar , без обид? B| Я, честно, больше не буду ))

Edited by Alex_DIY

Share this post


Link to post
Share on other sites

 

1 час назад, Alex_DIY сказал:

всю информацию воедино и потом на основе этой информации по заранее написанным сценариям происходит управление всеми устройствами

@Alex_DIY что будет с вашей концепцией "умного дома" если из неё к примеру исключить маршрутизатор, а я отвечу, всё остановиться и все ваши модули станут просто кусочками никчёмного железа... )) Я в своей жизни поработал (и продолжаю - электромеханик управления и автоматизации производства) с разной автоматикой, и на своём опыте (23 года пром.автоматики) испытал плюсы и минусы разных подходов в автоматизации... Не возражаю центральный контроль и управление очень важны, но уверяю вас, что если потухнет свет в диспетчерской (девочка ножкой зацепит центральную шину данных), завод не остановится, скажу даже больше, на местах этого ни кто не заметит, а как и прежде будет "давать стране угля"... ))

У меня все устройства связаны и реагируют на изменения происходящие на других, но если исключить из общей цепи любой или несколько, все в том числе и автономные, будут по прежнему ответственно исполнять "свои прямые обязанности"...  Ну и ещё много разных вопросов... )) Конечно без обид, я же признавался, что ваши критические замечания подталкивают и стимулируют меня к улучшениям, а   "В споре рождается ИСТИНА", я как ни кто заинтересован в данном диалоге... )) Нет предела совершенству... Приём...

Edited by EndWar

Share this post


Link to post
Share on other sites

@Alex_DIY , а вот это видели https://alice.yandex.ru , прикольная игрушка, научил её по голосовой команде (ПК > processing > bluetooth > arduino > rf433 > радио выключатели) управлять светом в квартире... ))

Edited by EndWar

Share this post


Link to post
Share on other sites
35 минут назад, EndWar сказал:

что будет с вашей концепцией "умного дома" если из неё к примеру исключить маршрутизатор, а я отвечу, всё остановиться и все ваши модули станут просто кусочками никчёмного железа... ))

Во-первых, это только моя зона ответственности. ни от какого дяди и тети мой роуер не зависит. Скажем так он сервер системы умного дома. Он в моей зоне ответственности. Если мне нужна будет сверхнадежность- задублирую роутеры. Поэтому исключать его мы не будем. С интернетом и сторонними сервисами - в нем вы надежности моего варианта не достигните :P Если уж в жилище погаснет свет, то тут се-ля-ви, роутер погас. то и датчики и исполнительные устройства тоже не работают, впрочем как и в вашем случае.

35 минут назад, EndWar сказал:

У меня все устройства связаны и реагируют на изменения происходящие на других

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

 

Множество несвязанных между собою устройств выполняют только какие-то основные базовые (очень простые) функции им недоступна сложная логика работы. Опыт на заводе с автоматикой это одно, где много людей с разной степенью понимания системы, с разной степенью ответственности и т.п. Я бы не стал напрямую переносить опыт завода на систему умного дома.

Меня голосовое управление не цепляет.  Когда спит в комнате человек голосом пытаться управлять системой... зачем будить, уж лучше тихо пультиком или смартфоном или орать при входе в квартиру включи свет... нее это не мой вариант :) Если сработал датчик в двери на открытие сувальды замка и уровень освещенности в прихожей ниже определенного уровня. то по rf433 шлется сигнал на радиовыключитель и загарается свет в прихожей, еще до того как я полностью входную дверь распахну.  Понимание дома ли я или нет по датчикам на каждом из замков + задвижке. То есть их 3. И скажем если дверь заперта на задвижу, то хозяин 100% дома, так как снаружи ее запереть невозможно. Если заперты все замки кроме задвижки, то хозяин квартиру покинул.

Впрочем, мы тут сильно наоффтопили в теме про метеостанцию, как только нас Kitsum терпит. Я оффтопить заканчиваю   9_9

Edited by Alex_DIY

Share this post


Link to post
Share on other sites

@Alex_DIY , вы не внимательно смотрели... темп. на улице он выводит и на своей странице, всё остальное он тоже видит и понимает (с этой Алисой он даже голос мой понимает), просто не выводит у себя дабы не загромождать интерфейс... )) По хорошему... ой правда, нас заругают (если уже не матерят, но из вежливости про себя)... Продолжим в личке, не против (или имеется на примете форум по теме).?! ))

 

Edited by EndWar

Share this post


Link to post
Share on other sites

@Kitsum , а что на счет счетчика гейгера? Мысль не покинула? 

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

У меня последнее время стало возникать желание заиметь и счетчик гейгера, а еще для метеостанции (не знаю наружной или внутрикомнатной) датчик частиц рм2.5. Вроде бы оптические датчики мелких частиц на али/ебэй присутствуют.

СО2 уже у меня таможню прошел и наверное на новогодних каникулах буду его внедрять в Ваш проект.

Share this post


Link to post
Share on other sites

@Alex_DIY доброе время суток.

Идея не покинула, но пока есть только набросок на бумаге и небольшой навесной монтаж. Все очень жидко, но первоначальная идея воспользоваться диодным умножителем и поднять напряжение с 5V до 400V. Хочется использовать микроконтроллер для генерации импульсов и накачки. Склоняюсь к Atmega328p или ATtiny85 т.к они есть у меня в наличие. Второй вариант предпочтительнее т.к более компактный. Думаю, что до конца этого года проект, по большей части, останется на бумаге т.к в данный момент идет проработка проекта контроля показаний счетчиков воды оборудованных импульсным выходом с последующей передачей показаний на центральный сервер.

  • Like 1

Share this post


Link to post
Share on other sites
4 часа назад, Kitsum сказал:

идет проработка проекта контроля показаний счетчиков воды оборудованных импульсным выходом с последующей передачей показаний на центральный сервер

и это у меня тоже в планах. Правда в локальном виде, чтобы статистика по счетчикам была везде доступна, плюс была мысль учитывать данные со счетчиков в логике умного дома. К примеру, если по датчикам я покинул помещение, а по счетчику фиксируется расход воды, то что-то где-то протекает и это сигнал тревоги. Как-то так. Сперва хотел импульсные выходы к ардуинке прицепить, а далее по ethernetу либо в mqtt брокер , либо сразу к себе в базу, по сейчас склоняюсь esp8266. Всё это в пределах дома. Ваш вариант 

4 часа назад, Kitsum сказал:

с последующей передачей показаний на центральный сервер

я так понимаю что-то более глобальное и возможно даже коммерческий проект?

Share this post


Link to post
Share on other sites
12 часа назад, Kitsum сказал:

первоначальная идея воспользоваться диодным умножителем и поднять напряжение с 5V до 400V.

Насколько я понял для диодного  умножителя на входе нужна переменка, иначе ничего не будет работать. А у нас постоянка 5 В , поэтому от повышающего трансформатора не уйти вроде бы. 

Edited by Alex_DIY

Share this post


Link to post
Share on other sites

@Alex_DIY Вот, что мне понравилось по теме дозиметра.

1. На таймере и умножителе. Таймер заменяем микроконтроллером, накачка по прерыванию с обратной связью, все остальное время ведем лог и работаем с I2C.

post-2-0-65708300-1457468900.png

2. Дозиметр ArDOs. В принципе, все готово, остается только выбросить все лишнее (подготовить к стационарной работе), а оставшееся подправить под себя.

ARD_dos_105.JPG

Скрытый текст

 

Скрытый текст

 

Что касаемо контроля расхода воды.

Мои познания в микроконтроллерах, это чистой воды хобби, которое появилось совсем недавно. Опыта разработки коммерческих проектов не имею, поэтому отталкиваюсь от мысли - "что получится, то получится". А хочется, чтобы получилось следующее:

  • Учет расхода холодной и горячей воды
  • Возможность работать длительное время в автономном режиме от аккумулятора
  • Передача показаний по WiFi (MQTT, GET) или 433мГц (скорее всего отомрет)
  • Проработать варианты автоматической передачи показаний (средствами умного дома) в МУП РАЦ (расчетно-аналитический центр) или другую, актуальную на тот момент, организацию.

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

 

  • Like 1

Share this post


Link to post
Share on other sites
2 часа назад, Kitsum сказал:

Мои познания в микроконтроллерах, это чистой воды хобби, которое появилось совсем недавно

Аналогично.

2 часа назад, Kitsum сказал:

Возможность работать длительное время в автономном режиме от аккумулятора

С чем связано это требование? Как я понимаю, это реализуется только через прерывания. Но, насколько я понимаю, ESP в режиме deepsleep c прерываниями не работает, поэтому не очень сюда вписывается. Остаются ардуинки ( атмеги), но к ним надо добавлять wifi интерфейс, который тоже нужно включать-отключать от питания атмегой физически. Далее, всплывает проблема с "дребезгом контактов" сам пока не проверял, но пишут, что в переходных значениях, при низком расходе воды импульсный выход счетчика ведет себя так, как будто происходит дребезг контактов реальных. Для устройства на батарейке это лишние ложные пробуждения. Либо от этого придется защищаться схемно.

Но в защиту данного решения есть пример - система Стриж. У них есть модуль, к которому подключается 2 импульсных выхода от счетчиков и он по радиоканалу низкой мощности (используют шумоподобный сигнал) передает показания на их сервер. При этом время работы их встроенной литиевой батареи они заявляют в 10 лет.

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

 

3 часа назад, Kitsum сказал:

Проработать варианты автоматической передачи показаний (средствами умного дома) в МУП РАЦ (расчетно-аналитический центр) или другую, актуальную на тот момент, организацию.

Это уже модули умного дома, вероятно не имеющие к контроллерам отношения :-)

Share this post


Link to post
Share on other sites

@Alex_DIY Работа от собственного источника питания, это независимость системы, естественно при условии разумного аппетита. Внешнее питание может пропасть и могут появиться расхождения показаний между контроллером и счетчиком. Но я не вижу трудностей для поддержки работы как от аккумулятора, так и от внешнего источника.

С глубоким сном и прерываниями для ESP8266 отдельная история. Программа однозначно будет крутиться в пределах функции Setup и передавать данные между пробуждениями придется через RTC. Также есть нюансы с потреблением при пробуждении. Вычитал, что от версии SDK зависит аппетит, а связано это с конфигурацией WiFi еще на самом старте микроконтроллера и до начала выполнения пользовательской программы. В общем тонкостей очень много, все нужно учесть.

Я пока экспериментирую на Atmega328p. Пока в виде Arduino UNO но, когда будет до конца продумал алгоритм и готова сама программа, будет использован голый микроконтроллер с частотой 8мГц и тактированием от внутреннего кварца. Два порта настроены на вход, используют внутреннюю подтяжку к питанию и завязаны на внешнее прерывание, режим FALLING. Внешне порты подтянуты к земле через конденсаторы 0.1 мкф. Счетчики, естественно, коммутируют землю. Таким образом получается бороться с дребезгом. Возможно стоит коммутировать счетчики через дополнительный резистор на 1-2 кОм.

По идеи суть работы довольно проста. Считаем импульсы, инкрементируем показания и засыпаем. При расходе каждых 10-и или 100-а литров воды, производим измерение заряда аккумулятора и будем транспортный контроллер - ESP8266 через CH_PD. Возможно стоит с начало будить, а потом измерять заряд. Передаем данные нашему транспорту и можно засыпать, но в таком случае, ESP должен самостоятельно позаботиться о контроле за CH_PD. Ну и последующая передача данных на сервер и отключение. Если во время связи появились проблемы, то запоминаем это и сообщим о них первому контроллеру в момент очередного пробуждения. Возможно ему будет полезно об этом знать...

К программе для ESP тоже имеется ряд ограничений, но до этого еще далеко.

23 часа назад, Alex_DIY сказал:

Это уже модули умного дома, вероятно не имеющие к контроллерам отношения :-)

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

Share this post


Link to post
Share on other sites

@Kitsum я так понял у нас с Вами небольшое недопонимание. Попытаюсь пояснить свою точку зрения. Мы не знаем в какой момент времени сработает импульсный выход счетчика, поэтому либо МК не спит и  постоянно в опрашивает на наличие срабатывания счетчик, соответственно батарейное питание в этом случае, как мне видится не применимо, ибо менять баарейки каждые там 5-15 дней мало кому захочется.

Либо устройство в режиме глубокого сна должно уметь просыпаться по прерыванию, коим будет служить срабатывание счетчика. Насколько я понимаю, ESP во сне на прерывания не реагирует, да и deepsleep у него реализован с ошибкой, поэтому работает следующим образом - из сна модуль из-за ошибки не выходит корректно из сна в программу, но при этом успевает дернуть gpio16, которую и подключают к reset, чтобы рестартануть модуль и после глубокого сна происходит просто перезагрузка модуля и работа его с начала программы. Переменные, которые не были сохранены в eeprom перед сном, соответственно, утрачиваются. Поэтому мне не приходит на ум, как на одной ESP реализовать работу от батарей сбор и передачу показаний со счетчиков.

На  Atmega или STM + ESP это , конечно, реализуемо.

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

11 час назад, Kitsum сказал:

Также есть нюансы с потреблением при пробуждении. Вычитал, что от версии SDK зависит аппетит, а связано это с конфигурацией WiFi еще на самом старте микроконтроллера и до начала выполнения пользовательской программы.

у меня сейчас уличные датчики в режиме сна. Я замерял потребление мультиметром режимы работы - пробуждение-отработка алгоритма-сон. у меня получилось 80-90 мА пробуждение и работа, 40мкА deepsleep ( вместе с датчиками bmp180, si7021). Так как у меня мультиметр старенький, простенький, то вероятно пики он не видит, а осциллографа у меня нет. По поводу времени подключения - если подключаться через dhcp клиент, то у меня это занимало порядка 4 секунд. После того как прописал жестко сетевые параметры, то подключение плюс передача по mqtt данных с датчиков происходит за 0,6 - 1 секунды.

Не знаю, помог ли чем.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Similar Content

    • By Kitsum
      Всем привет, в этой статье поговорим об уже надоевшей всем теме - "Метеостанция". Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.


      При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной - ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!
      Стоит начать с концепции
      Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome. Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery. А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! "Вы были правы в одном, Мастер: переговоры были недолгими." © Звездные войны. Эпизод 1 Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс. Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость. Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”. Датчики стоит расположить по уму - в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине - минимум проводов, максимум удобства. Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации. Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней. Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку "ThingSpeak" и "Народного мониторинга". При желании можно нарастить функционал, благо памяти у микроконтроллера еще много. Как я себе это представляю
      Учтите, что на видео, данные с датчиков, эмитируются самим микроконтроллером, это нужно для наглядности. В жизни метеорологическая обстановка намного спокойнее слава Богу.
      Перейдем к физической сборки устройства
      Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.

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

      Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
      Ссылки:
      Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
      Датчики взятые за основу
      Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
      В этот раз мы воспользуемся более серьезным вариантом – "Метеорологическая будка Стивенсона". Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!
      Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

      Фото готовой будки

      Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.
      Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.
      Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили "на солнечной стороне все эти измерения - сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома".
      Я пока живу в панельном многоквартирном доме, как и не малая часть нашей страны. Доступ к теневой стороне дома (а для меня, по факту, это окна в подъезде) - прямой вызов всем гопникам района трущимся рядом, любопытным соседям с бегающими глазками и всей элите человечества скрашивающей фоном мою унылую и слишком простую, по их мнению, жизнь. Думаю, что мысль я донес.

      Датчики располагаются на разных уровнях. В основании находится датчик освещенности BH1750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
      Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

      Все хозяйство подключается между собой следующим образом
      NodeMCU | ESP 07/12 | Датчики ----------------------------- D2 | GPIO 4 | SDA D1 | GPIO 5 | SCL 3.3V | 3.3V | 3.3V GND | GND | GND ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.
      Сам микроконтроллер будет спрятан в уже знаменитую распределительную коробку, закрепленную на шпильке, чуть ниже будки Стивенсона. У меня все находится на стадии неторопливой сборки с попутным поиском более удачных идей.
      Плата расширения, на которой будет установлена плата NodeMCU, закреплена через ножки для крепления компьютерных материнских плат в корпусах.

      Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.
      Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
      Производим примерку.
      При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
      Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся "хвост" отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

      Далее останется все подравнять, проверить качество монтажа, возможность замены платы NodeMCU, если это будет необходимо при эксплуатации и самое главное, дважды проверить, что и куда припаяно. Мои кривые руки и невнимательность уже наказывали меня, а т.к ждать новые запчасти долго, повторять не хочется.

      Общий вид получился таким
      А вот как все выглядит в боевых условиях. Кстати, могу предложить идею с помещением в бокс мешочка содержащий впитывающий влагу гель, они часто встречаются в коробках с обувью. Если все герметично, то он впитает остатки влаги, а если нет, то лишним уж точно не будет.


      Требования (!!!Читать обязательно!!!)
      Arduino IDE с поддержкой контроллера ESP8266, версия 2.6.2 (на версиях выше работоспособность не проверялась) Установленный модуль в Arduino IDE для загрузки файлов во Flash память микроконтроллера. Как установить описано тут. Для работы модуля загрузки файлов во Flash может понадобится последняя версия Python https://www.python.org/downloads/ Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS) В параметрах выставляем lwIP версии 2 и максимальную производительность (lwIP v2 Higher Bandwidth) Сам архив с последней версией проекта. Скачать можно в конце статьи или по этой ссылке.   
      Обязательные библиотеки (!!!Читать обязательно!!!)
      ArduinoJson (v5.13.5) PubSubClient Ссылки на библиотеки сенсоров указаны в комментариях к коду. Сами библиотеки, как и обслуживаемые ими сенсоры, не являются обязательными. Вы вольны использовать любые датчики, как физические, так и программные.
      Порядок установки (!!!Читать обязательно!!!)
      Изучите файлы проекта с примерами использования тех или иных сенсоров. Все файлы с примерами начинаются с префикса users_, это users_auto.h, users_bme280_x2.h и т.д. Загрузите необходимые Вам библиотеки или используйте эти файлы как пример для добавления иных датчиков. Выставите необходимые настройки для контроллера в среде разработки Arduino IDE. Пример настроек указан на скриншоте выше. Обязательно убедитесь, что выбрано правильное распределение места для внутренней файловой системы, это значит, что 3MB должно быть выделено под файловую систему. Также проверяем, чтобы использовался lwIP v2 в режиме максимальной производительности (lwIP v2 Higher Bandwidth). Произведите загрузку программы с помощью среды разработки (Ctrl + U). Произведите загрузку содержимого каталога data в файловую систему. Меню/Инструменты/ESP8266 Sketch Data Upload Перед тем как устанавливать метеостанцию на постоянное место жительства, подтянуть GPIO-0 (пин D3 на плате NodeMCU) к питанию 3.3V. Во время данной процедуры, питание на контроллере должно отсутствовать. Первый запуск (!!!Читать обязательно!!!)
      Помните, что вся конфигурация микроконтроллера производится исключительно через web интерфейс. Никаких изменений значений тех или иных параметров в коде не требуется, а подобную практику будем считать плохим тоном.
      И так, после запуска микроконтроллера он сразу перейдет в аварийный режим и поднимет собственную точку доступа с именем WeatherStation. Это нормальное поведение т.к подразумевается использование метеостанции в домашней беспроводной сети, ну а раз о ней пока ничего не известно, то и подключаться не к чему.
      Подключитесь к данной сети с любого удобного устройства и перейдите в панель управления (для этого имеется соответствующая иконка, запутаться невозможно), контроллер будет доступен по адресу http://espws.local или http://192.168.4.1 При попытке входа в панель управления будет запрошено имя пользователя и пароль, по умолчанию admin/admin. После входа в панель управления перейдите в раздел "Основные настройки WiFi" и укажите имя и пароль Вашей домашней сети, а также, при необходимости, укажите пароль для подключения к точке доступа поднимаемой контроллером в аварийном режиме. Если все сделано правильно, то контроллер подключится к домашней сети в течении 5-и минут.
      Если Ваша домашняя сеть скрыта, то после первоначальной настройки необходимо перезагрузить контроллер. Это необходимо из-за частичной поддержки работы со скрытыми сетями. После перезагрузки контроллер увидит Вашу сеть и запомнит её MAC адрес. Помните об этом если захотите сменить домашний маршрутизатор.
      Хотите помочь проекту или спонсировать новый?
      Yandex.Money PayPal.me Файлы
       
    • By Kitsum
      Хотите помочь проекту или спонсировать новый?
      Yandex.Money PayPal.me Тема проекта
      Arduino IDE + Project + Libraries + tools: https://yadi.sk/d/jseefFB50NMhAg
    • By Kitsum
      Просмотреть файл [esp8266] Библиотека CMD, реализует настройку микроконтроллера и управление вашей программой через терминал.
      Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой.
      Данная библиотека позволяет реализовать:
      Управление микроконтроллером Любую настройку, будь то WiFi, другие библиотеки или часть Вашей программы Вызывать Ваши задачи (функции) из терминала по команде и передавать им требуемые параметры Использовать контроллер в качестве шлюза между датчиками и программами на PC Внимание: любая команда, передаваемая в терминал обязана заканчиваться символом перевода строки "\n".
      Подключение библиотеки
      #include <cmd.h> Инициализация объекта, к которому мы будем обращаться для добавления команд. В качестве параметра объекту необходимо передать указатель на объект Serial или любой другой схожий по типу интерфейс.
      cmd command(&Serial); В функции Setup описываем какие команды требуется обрабатывать. Например, по команде "test" вызывать пользовательскую функцию с именем "myFunctionName". Имя пользовательской функции может быть абсолютно любым.
      void Setup() { Serial.begin(115200); command.add("test", myFunctionName); } Пользовательская функция будет вызываться каждый раз, когда по интерфейсу Serial поступит команда "test". Если команда будет передана с параметрами, то эти параметры будут переданы в качестве аргументов пользовательской функции.
      В функции loop должна находится команда вызова обработчика.
      void loop() { command.handleEvents(); } Пользовательская функция обязана соответствовать ряду требований:
      Не возвращать никакого результата (быть объявленной с типом void) Принимать в качестве первого аргумента переменную с типом byte в которой будет храниться число равное количеству переданных параметров Принимать в качестве второго параметра переменную с типом char** в которой будет храниться указатель на массив со всеми указателями (char*) на переданные параметры void myFunctionName(byte argc, char** argv) { /* ... */ } Функция всегда должна иметь такой вид, даже если не подразумевается, что ей будут передаваться какие-либо параметры.
      Чтобы перебрать все переданные параметры и вывести их в консоль, можно воспользоваться следующим примером
      void myFunctionName(byte argc, char** argv) { if (0 < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними
      # test No parameter was passed # test p1 p2 p3 p4 p5 0. p1 1. p2 2. p3 3. p4 4. p5 Помните, что параметры представлены в виде указателей и работать с ними нужно как с обычными переменными не получится т.к указатель содержит не значение переменной (переданный параметр), а указатель на ту область памяти микроконтроллера в которой это значение находится.
      Чтобы сравнить два значения, например, параметр под индексом 0 (идет первым в списке) с каким-либо значением в программе, воспользуйтесь функцией strcmp, которая возвращает целочисленное значение, указывающее на лексическое расхождение строк. Если строки равны, то возвращаемое значение равно 0.
      if (!strcmp(argv[0], "wifi")) { Serial.println(F("Первый аргумент WiFi")); } else { Serial.println(F("Первый аргумент НЕ WiFi!!!")); } Для копирования значения указателя в другую переменную с типом char можно воспользоваться функцией strcpy
      char myVar[20]; strcpy(myVar, argv[0]); if (myVar == "123456") { Serial.prinln(F("ok")); } Также можно обернуть указатель объектом String и получить весь функционал этого объекта, который будет содержать значение параметра
      String param1(argv[0]); // String param1 = argv[0]; Serial.printf("argv[0] length: %i\n", param1.length()); Serial.printf("argv[0] is integer?: %s\n", param1.toInt() ? "YES" : "NO"); if (param1 == "qwerty") { Serial.println(F("Hello QWERTY!")); } С библиотекой идут несколько примеров, в том числе и пример конфигурации WiFi в режиме STA.
      Автор Kitsum Добавлен 05.12.2018 Категория Библиотеки  
    • By Kitsum
      Просмотреть файл [esp8266] Библиотека smartBlink, реализует умное управление штатным светодиодом, что позволяет добавить индикацию состояния вашей программы или микроконтроллера.
      Основная задача библиотеки, это добавление индикации состояния Вашей программы или микроконтроллера. Отображение состояния производится посредством светодиода. Что самое важное, работа библиотеки через прерывание, это позволяет ей поддерживать индикацию даже в то время, когда выполняется длительный код основной программы. Например, Вы можете использовать её для отображения в каком режиме сейчас работает WiFi микроконтроллера, STA или AP и т.д. Или ход выполнения какой-либо операции, например, передача данных на внешний сервер.
      Подключение библиотеки
      #include <smartBlink.h> Чтобы инициализировать управление светодиодом необходимо создать объект, через который мы буем задавать режимы работы индикации.
      smartBlink::smartBlink(byte gpio, bool on = LOW); Объекту необходимо передать два параметра, первый это номер порта, на котором находится светодиод, а второй это уровень логического сигнала, который заставит светодиод работать. Сигнал может быть низким (LOW) или высоким (HIGH), это зависит от схемотехники подключения светодиода.
      Например, штатный светодиод модуля ESP12, использующий GPIO2 (порт 2) можно объявить следующим образом.
      #define led2_pin 2 #define led2_on_signal LOW smartBlink led2(led2_pin, led2_on_signal); Теперь можно в основной программе использовать метод устанавливающий какой режим индикации использовать.
      smartBlink::setMode(mode_t mode); Например, зададим режим светодиода led2 в котором светодиод будет давать одну короткую вспышку раз в секунду.
      led2.setMode(smartBlink::mode_flash1); Режимов работы может быть несколько.
      led2.setMode(smartBlink::mode_off); led2.setMode(smartBlink::mode_flash1); led2.setMode(smartBlink::mode_flash2); led2.setMode(smartBlink::mode_flash3); led2.setMode(smartBlink::mode_flash4); led2.setMode(smartBlink::mode_burn); led2.setMode(smartBlink::mode_inhalf); Чтобы вернуть предыдущий режим индикации для ранее объявленного светодиода led2 используйте следующий метод
      led2.previous(); Благодаря работе библиотеки через прерывания по таймеру, индикация будет работать даже в тех случаях, когда выполняется долгий код.
      С библиотекой идут несколько примеров.
      Автор Kitsum Добавлен 10.12.2018 Категория Библиотеки  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...