Авторизация
Зарегистрироваться

tthRelay - делаем полоумное WiFi реле на ESP8266


Хотите реле которое умеет контролировать нагреватели, холодильники, увлажнители, осушители, включать электроприборы по расписанию и много чего еще? Тогда прошу под cut…

За $4 вы получите:
— ручной режим, включение/выключение
— по времени от чч: мм до чч: мм
— по температуре (охлаждение/обогрев) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— по влажности (увлажнитель/осушитель) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— поддержка нормально разомкнутого/нормально замкнутого реле
— режим эмуляции кнопки без фиксации, с регулируемым временем нажатия от 150 миллисекунд до 500 миллисекунд и шагом 50 миллисекунд
— поддержка сенсоров AHT1x/AHT2x и HTU2xD/SHT2x/Si70xx
— регистратор температуры и влажности на флэш-память SPI с графиками, до 400 КБ (этого достаточно для хранения годового отчета с шагом 30 минут)
— при выходе из строя датчика, реле переходит в выключенное состояние и рабочими остаются только режим по времени и ручной
— если подключены два датчика с разными адресами и один выходит из строя, то во время перезагрузки второй датчик будет использован автоматически
— hostname WiFi клиента используется в качестве ID реле, в сети может находиться не ограниченное количество реле при условии, что все они имеют разные hostname
— web интерфейс (Bootstrap + jQuery)
— автоматическая синхронизация с NTP серверами или в ручную со временем из браузера
— автоматически переход с летнего на зимнее и обратно

Реле предоставляется «КАК ЕСТЬ» без каких-либо гарантий. Не оставляйте без присмотра. Автор, не несет ни какой ответственности если у вас что-то пошло не так.

Для сборки нам понадобятся:
— Один модуль на ESP8266. Например WeMos Mini D1 за $1.83
— Реле на 5в с обвязкой, например Single channel relay module 5v, за $0.54
— Цифровой датчик температуры и влажности AHT1x/AHT2x или HTU2xD/SHT2x/Si70xx, например AHT10 за $0.97

Качаем мой проект с GitHub и соединяем весть зоопарк по схеме.



Чтобы реле не давало помехи при переключении, питать устройство лучше по топологии звезда (не используя USB порт WeMos Mini D1). У ESP8266 только два нормальных пина ведущих себя адекватно во время загрузки — это GPIO4/D2 и GPIO5/D1. Все остальные меняют свое состояние. Подробно об этом тут. Чтобы предотвратить ложные срабатывания реле, во время старта ESP8266, нужно добавить RC фильтр 680Ом/220мФ с постоянной времени длиннее чем переходные процессы на GPIO.

Прошиваем ESP8266 с помощью Flash Download Tools. Предварительно выставив:
— SPI speed 80MHz
— SPI Mode QIO
— Flash Size 32Mbit
— поставить галку DoNotChgBin
— адрес для fw_latest.bin 0x00000
— адрес для fs_latest.bin 0x200000



Если вы все сделали правильно, то после прошивки и нажатия reset у вас должна появится новая точка доступа tthRelay. Подключитесь к ней введя пароль 12345678. После удачного подключения введите в браузере 192.168.4.1 и в появившемся окне User name: admin и Password: 12345678.

Про базовые настройки Access Point Config, Server Config, Station Config и NTP Config читаем в обзоре моих WiFi часов — MatrixClock. В конце не забываем нажать на Save и Reboot.

После того как реле подключится к вашему роутеру — WiFi точка доступа tthRelay пропадет. Если у вас Windows 10, то в браузере набираем tthRelay.local/. На Android и Win7 используйте IP-адрес реле вместо mDNS. Его можно найти в логах UART на скорости 115200 бит/с или в админке вашего роутера.

Идем в Sensor или Settings -> Sensor Config выбираем тип сенсора, порты и скорость обмена согласно схеме. Жмем Save и Reboot. Внимание — чем выше скорость, тем короче должны быть провода от сенсора до ESP8266. Рекомендуемые частоты 100KHz..400KHz, на очень длинных проводах допускается 10KHz. Учтите, что на низких скоростях датчику приходится работать дольше и он начинает разогревать сам себя искажая результаты.



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



Заходим во вкладку Relay или Settings -> Relay Config выбираем режим — ручной, по времени, по температуре или по влажности. Дальше выбираем время и дни недели для Time mode, желаемую температуру, гистерезис, время для Temperature mode и желаемую влажность, гистерезис, время для Humidity mode. В подменю Advance настраиваем порт к которому подключено реле, полярность сигнала для срабатывания реле, выбираем длительность импульса если нужна эмуляции кнопки без фиксации. Жмем Save и Reboot.



Если нужен журнал с графиками изменения температуры и влажности идем в Settings -> Recorder Config выбираем частоту выборки, жмем Save и Reboot. Максимальный размер журнала 400КБ. Этого достаточно для хранения годового отчета с шагом 30 минут. После его заполнения он автоматический стирается и на его место пишется новый. Для тех кто любит все хранить есть кнопка Backup data. Формат записи очень простой и не является секретом, если будет нужно расскажу.



Для просмотра графиков кликаем на Settings -> Recorder Data



Данная прошивка также должна работать на Sonoff Basic R1 (первой ревизии) и Sonoff TH10/TH16 с сенсором Si7021. С небольшой доработкой можно использовать WiFi Relay module на ESP-01S. Нужно заменить флеш с 1МВ на 4МБ и добавить RC фильтр. Как и куда подключать датчик смотри readme на Github.


Планирую купить +72 Добавить в избранное +89 +161
свернуть развернуть
Комментарии (236)
RSS
+
avatar
+27
спрошу первым. :)
Исходный код недоступен? Только бинарники?
+
avatar
  • diz
  • 20 ноября 2021, 11:33
+18
Тоже удивился. Гитхаб предполагает публикацию исходников, а тут бинарники и всё
+
avatar
+6
Думал, поумничаю, напишу что ТСже дал линк на Гитхаб, там все должно быть… А оно вон как обернулось. ))
+
avatar
  • AlexA42
  • 20 ноября 2021, 11:47
+31
Автор не желает показывать исходники:
+
avatar
  • jenya
  • 20 ноября 2021, 11:48
+43
И не первый раз — можно закапывать…
+
avatar
+37
Русский DIY, бессмысленный и беспощадный.
+
avatar
  • SEG
  • 20 ноября 2021, 16:09
+7
Это вы просто китайский с индусским мало видели. Вот уж где от беспощадности и паяльником не отмахаться.

ПМСМ, данное поделие, скорее относится к банальному школьному уровню DIY.
+
avatar
+15
Да осмысленный он, но жлобский.
+
avatar
+6
Вот есть к меня мысль изучить микроконтроллеры и подрабатывать продажей самоделок. В качестве рекламы выкладывать схемы и готовую прошивку. Кто захочет — сам сделает. Расскажите, что не так в этой идее.
По поводу «жлобский» — у нас вроде коммунизм ещё не наступил. Я за социализм (это первый этап на пути к коммунизму). Что, будем вместе социализм строить? Как построим, так авторские права все и отменим. Я просто не представляю, почему в действующей системе простой инженер не может подработать такими же методами, как какой-нибудь мелкий предприниматель.
+
avatar
+7
Ты сначала заработай что-нибудь. Автор ничего на этом не заработает, его самоделки никто не повторит. Утверждение «китайцы скопируют» противоречит утверждению «кому надо, тот сам сделает». Ну или тут попахивает рассизмом. Что до меня, то у меня чисто шкурный праздный академический интерес. Само умное реле мне нафиг не нужно, повторять или создавать свое с нуля я никогда не буду. Ну а полистать исходники на досуге и забыть про них через час мне было бы интересно.
+
avatar
+2
Печально, что Вы ответили не на мои вопросы, а повторили то, что другие тут уже в комментах написали по несколько раз.
+
avatar
0
Я вижу у вас, товарищ, только один знак вопроса в комменте. Ответ — НЕТ. Вместе социализм строить не будем. А вообще, не стоит печалиться на мой счёт.
+
avatar
  • PvlKi
  • 22 ноября 2021, 00:33
+4
Давай я тебе расскажу «что не так в этой идее», основываясь на многолетнем практическом опыте подобной ерунды:
1. Конкурировать с готовыми решениями невозможно ни по цене, ни по качеству. Разве что найти то, что ещё никто не делает (и следовательно это почти никому не нужно).
2. Платёжеспособного спроса почти нет. Те у кого лишние деньги — таким не интересуются или доплатят пару сотен за фирму и позолоченный корпус из титана. Те кому интересно — сделают своё, а не будут копаться в чужих схемах и софте.
3. Ты не можешь давать гарантию, не имея оборотов и не изучив статистику и не разнеся продавца и изготовителя в разные фирмы, иначе тебя или будут кидать или будут портить репутацию.

А исходный код скрывают обычно из-за стыда, что написан не по-модному и тестами не покрыт.
+
avatar
  • sav1812
  • 22 ноября 2021, 04:57
+1
А исходный код скрывают обычно из-за стыда, что написан не по-модному и тестами не покрыт.
А так же по множеству других, совершенно разных причин…
+
avatar
  • ABATAPA
  • 22 ноября 2021, 08:51
0
Конкурировать с готовыми решениями невозможно ни по цене, ни по качеству.
+
avatar
+2
Впрочем, в DIY проектах зачастую весь код «индийский», т. к. делается ad hoc лишь бы работало. Зачастую это оправдано, т.к. в противном случае проект рискует никогда не завершиться, а еще надо куда-то жить.
+
avatar
+1
Вот есть к меня мысль изучить микроконтроллеры и подрабатывать продажей самоделок.
Если кратко, то схема такая: С каждой бабки по 10 копеек, 10 бабулек — рубль.
+
avatar
  • kvolk
  • 20 ноября 2021, 19:19
+6
Да, как бы и не обязан. Это его право. Тут две стороны медали: откроешь код — сразу найдутся копипасты, не откроешь — камнями закидают, скажут что шпионишь, трояны там в прошивке. Проходили уже такое, знаем.
+
avatar
  • ABATAPA
  • 20 ноября 2021, 21:50
+22
сразу найдутся копипасты
А то вот он без «копипастов» обошёлся, ага. И без библиотек. И ещё неизвестно, какие лицензии этих библиотек и заимствованного кода он нарушил.
+
avatar
-2
А вы свечу держали? Откуда вы знаете, что человек делал?

Я кучу своих библиотек написал по datasheet-ам, прикиньте? Ибо это проще, чем разбирать то, что вкладывают (а там часто такое бывает, что тошнить начинает) + это надежней, ибо следуешь сам спеке и понимаешь чем жертвуешь, а чем нет.
+
avatar
+8
Именно так — пишу драйвера сам. Это быстрее и надёжнее и интереснее.
+
avatar
  • Naevus
  • 21 ноября 2021, 07:54
+11
Именно поэтому хочется открытого проекта. Не потому, что буду копировать и продавать (интересно — кто мешает продавать бинарник?) не потому что горю желание высмеять стиль автора (он еще мой стиль не видел). А просто потому что, например, у меня уже есть три программы (это что навскидку вспомнил) которые не поддерживаются авторами. У одной автор умер и программа со временем стала не актуальной. Две другие просто стали авторам не актуальными или обременительными (при том обе с легальными лицензиями)…
+
avatar
  • sav1812
  • 21 ноября 2021, 09:31
+1
А чем в этом плане массовому потребителю помогут исходники?
Всё равно ведь абсолютное большинство в них либо совсем не полезет, либо ради косметических изменений, без которых вполне можно обойтись. А те, кто в состоянии написать ПО сам — сам это и сделает, скорее всего. И не из боязни каких-то там «закладок», а просто потому, что может это сделать и хочет свой функционал.
+
avatar
  • Naevus
  • 21 ноября 2021, 09:57
+6
Один из трех «умерших» проектов жив до сих пор благодаря энтузиастам, которые поддерживают его через внешние костыли. А был бы проект открытый — программа бы жила не как инвалид в коме.
Собственно вы тоже в чем то правы. Тот же проект, надеюсь, в ближайшем будущем избавиться от трупа и станет самостоятельным… Вот только времени на это уже ушло несколько лет.
+
avatar
  • sav1812
  • 21 ноября 2021, 09:58
-2
Подозреваю, что Вы даже и не представляете себе количество «сдохших» проектов с открытыми исходниками… ;) :))
+
avatar
  • Naevus
  • 21 ноября 2021, 10:08
+10
вы подменяете причину и следствие :) Если проект никому не нужен — он сдохнет независимо от открытости (знаю по своим проектам :) )
Если проект нужен, после смерти его будут реанимировать или пытаться заменить. Вот только реанимация открытого проекта пройдет гораздо безболезненнее.
+
avatar
  • sav1812
  • 21 ноября 2021, 10:23
-9
+
avatar
0
Мне, например, исходники как раз и интересны тем, что я для своих домашне-хоббийных поделок для души (которые зачастую не имеют практического смысла, просто посмотреть, поколдовать и забросить в долгий ящик) не готов тратить кучу времени на написание кода. Поэтому очень часто проще скопипастить кусок кода и не заморачиваться. Да и действительно, зачем мне устройство один в один? Это должно быть что-то из разряда «вау! то, что я хотел!», но, опять же, чаще всего это не так. Любой DIY без напильника и термосоплей не обходится никогда. Даже если копировать 1:1.
+
avatar
  • sav1812
  • 25 ноября 2021, 03:11
0
не готов тратить кучу времени на написание кода
Ну так как по мне, так если не готов — то и не пиши! :)
Никто же не заставляет. ;)

Я, вообще-то говоря, о том, что и Вашего «очень часто проще скопипастить кусок кода и не заморачиваться» — вполне понятного и естественного, к слову — никак не следует, что авторы кода обязаны и должны его выкладывать в публичный доступ. А из комментариев значительной части требующих этого именно такой посыл и звучит: «Мне надо, хочется — поэтому он должен!».

А «он» — не должен. :) Никому и ничего…

Поэтому если поделился автор кодом — скажите дяде спасибо и пользуйтесь подарком, в меру своих потребностей и возможностей. А не поделился — тоже скажите спасибо: мало ли от какого ужаса он вас тем самым избавил ;) :)) — и пишите свой код. Ну или не пишите — вы же все тоже ничего и никому не должны и не обязаны… :)

А требовать — не имеете права. Ни от кого и ничего.
До тех пор, пока не наняли его для написания кода за очень дополнительное вознаграждение, во всяком случае. :)
+
avatar
0
А «он» — не должен. :) Никому и ничего…
Дык я и не говорю, что «должен». И не призываю к этому. Но они были бы очень полезны во всех смыслах. И не только мне. Если проект не коммерческий, так это только наоборот поможет, в т.ч. и автору, т.к. всегда найдутся более знающие люди, которые помогут в исправлении ошибок и развитии. Ну, а если проект никому не нужен, то и выкладка исходников ничего не решит))

так если не готов — то и не пиши!
Если следовать этому принципу, то вообще проще тогда ничего не делать) На то оно и хобби, что делается исключительно в свободное время. Иначе это уже работа))
+
avatar
  • sav1812
  • 25 ноября 2021, 04:12
+3
Дык я и не говорю, что «должен». И не призываю к этому.
Так я и не о Вас. :)
Вы-то как раз не «давите»…
Я о «группе товарищей», минусующих меня и других, которые явно считают, что автор просто обязан им предоставить исходники… :))
А если бы выложил — были бы недовольны качеством кода, функционалом, ещё чем-нибудь. Есть такая категория людей, которым все должны, и все всё и всегда делают «не так». По их мнению… ;) :)))

Если проект не коммерческий, так это только наоборот поможет, в т.ч. и автору,
Автор свои причины «сокрытия» исходников объяснил и я его понимаю. Его право, в общем-то.

т.к. всегда найдутся более знающие люди, которые помогут в исправлении ошибок и развитии.
Или «хор мальчиков»-хейтеров, что случается гораздо чаще. Достаточно почитать комментарии здесь… :)

Если следовать этому принципу, то вообще проще тогда ничего не делать) На то оно и хобби, что делается исключительно в свободное время.
Хобби — это любимое занятие, то, что человек делает «для души», ради удовлетворения своих личных потребностей в творчестве, в познании, и т.п. Это то, что делается самостоятельно, «для себя», своими руками и только тогда, когда человек хочет делать именно это. :)

Так что да, не хочешь — не пиши. Хочешь — пиши сам. И удовлетворение от сделанного получишь, и свой уровень знаний повысишь, и опыт приобретёшь. Но всё это только от самостоятельной работы, а не от бездумного «копипаста», которым страдают — а может, и наслаждаются ;) :))) — многие «ардуинщики»…

«Я так думаю!» © :)
+
avatar
+1
Или «хор мальчиков»-хейтеров
Хейтеры есть в любой публичной деятельности… К сожалению… Их наличие надо просто принять, как неизбежное.

Вся суть в одной картинке


Хобби — это любимое занятие
Таки да. Но скорость разработки тоже решает) Ходить по граблям тоже иногда полезно, особенно, если каждый удар граблями не отдаёт звонким гулом в пустой голове. А «бездумная копипаста» позволяет быстрее сделать прототип и понять, а надо ли оно вообще… Но, как мне кажется, тем самым «ардуинщикам» (которым я тоже люблю побыть) хватает и бинарников и более-менее понятной инструкции по установке)) Но это не точно))

«Я так думаю!» © :)
+1 =)
+
avatar
  • sav1812
  • 25 ноября 2021, 12:15
0
Их наличие надо просто принять, как неизбежное.
Не-не-не, не надо! :))

Но скорость разработки тоже решает
Ну какая может быть «скорость разработки», если мы всё ещё о хобби?? :) А как же получать удовольствие от процесса? ;)

По опыту: если вместо бездумной «копипасты» почитать документацию и разобраться в задаче самостоятельно — это повышает дальнейшую скорость разработки куда лучше и надёжнее копирования чужих решений без понимания их сути.

И потом, разве самостоятельное освоение «предмета» в процессе решения своей задачи — это не часть удовлетворения, получаемого от хобби? ;) :))

А «бездумная копипаста» позволяет быстрее сделать прототип и понять, а надо ли оно вообще…
Возможно, это очень индивидуально. Мне вот для понимания (не)нужности реализации моих идей вполне достаточно, чтобы «прототип» «заработал» в моей голове… :)

Но, как мне кажется, тем самым «ардуинщикам» (которым я тоже люблю побыть) хватает и бинарников и более-менее понятной инструкции по установке)) Но это не точно))
Большинству хватило бы, если бы и собрал «прототип» для них кто-то другой… ;) :)))
+
avatar
+1
Так бы производителей компьютерного железа обязать драйвера под новые ОС писать. Жалко как-то, что рабочее железо из-за этого использовать нельзя. А ведь за железо деньги плачены.
+
avatar
  • tirarex
  • 20 ноября 2021, 12:08
+3
А зачем вам исходники? Есть нормальные открытые прошивки с расширенным функционалом, написать свою прошивку тоже не проблема, функционал тут супер банальный и от части бесполезный, а тот кто не может написать прошивку, не будет брать закрытую нонейм прошивку, когда на рынке куча готовых коробочных решений за цену сборки сабжа.
+
avatar
  • sav13
  • 20 ноября 2021, 12:51
+15
Может быть автору стыдно исходники выкладывать?
Код то разный бывает…

Есть масса свободных прошивок с неплохим коммунити. Тот же блинк, например
+
avatar
  • userman
  • 20 ноября 2021, 17:54
0
Blink другой, много зависит от сервера, tasmata, espeasy мне больше нравятся.
А народец накинулся на автора, «Самый умный что ли?». Всегда удивляюсь этому стадному инстинкту самосохранения.
+
avatar
  • makmini
  • 20 ноября 2021, 23:38
-1
кстати ваш проект.вентиляция в ванной комнате, работает до сих пор)
правда вы его забросили…
+
avatar
  • sav13
  • 21 ноября 2021, 14:52
+2
Почему забросил?
У меня последняя версия трудится на ESP32, что-то передает в мажордомо и всех устраивает
Но ничего принципиально нового там нет, так что статьи про это не пишу
Код на гитхаб могу выложить
+
avatar
  • VIB
  • 21 ноября 2021, 19:19
0
Получается, что девайс, потенциально опасный в случае взлома, идет с тривиальным паролем, который нельзя поправить.
+
avatar
0
Все пароли меняются, смотрите как в моем предыдущем обзоре. Но надо помнить что все идёт по http те без шифрования.
+
avatar
  • Mplus
  • 20 ноября 2021, 11:18
+13
Зачем городить огород устройств, если есть готовые модули, например: https://aliexpress.ru/item/item/1005001289929458.html

Есть от 1 до 8 реле и питания от 220 и 5 и 12в
+
avatar
  • DrBOBAH
  • 20 ноября 2021, 11:48
+8
я вот тоже не понял, зачем такие сложности. я беру сонофф и прошиваю 1MSmartfon
+
avatar
+2
Есть ещё такой проект. Homes-smarT Правда расширенная версия за небольшую плату, но есть неплохой функционал и бесплатно. Есть Конструктор прошивок.
+
avatar
  • starson
  • 20 ноября 2021, 15:18
+4
Кому-то хочется повозиться с паяльником и программатором.
Если сильно хочется, почему бы и нет
+
avatar
+4
Согласен с вами. Остаётся тогда непонятным, зачем делать своё, чтобы потом прошивать это чужой прошивкой не имея возможности посмотреть исходники.
+
avatar
  • sav1812
  • 20 ноября 2021, 23:45
+1
Зачем городить огород устройств, если есть готовые модули
А зачем жить, если всё равно умрём?..

P.S. Кому-то просто «поскорее купить, воткнуть и забыть/забить», а кто-то склонен к творчеству или, как тот же я :), «наелся» уже «готового»…
+
avatar
  • ne4eHer
  • 20 ноября 2021, 12:18
+12
полоумный (разг.) — Сумасшедший, слабоумный, а также подобный сумасшедшему, безрассудный.
+
avatar
+2
я вот тоже не понял, что хотел сказать автор заголовком
+
avatar
+14
Он хотел выпендриться. Очевидно же.
+
avatar
+9
Узнал новое слово, и чванится им. Видно же что чванится.
Ему говорят «ну что ты чванишься?», а он чванится.
+
avatar
  • Phanex
  • 21 ноября 2021, 11:04
+5
Ну не знаю, шутка насчёт «умного»->«не совсем умного, а только наполовину, полу-умного» ->«полоумного» реле мне показалась очень остроумной.
+
avatar
0
Слишком уж своеобразный юмор.
+
avatar
  • sav1812
  • 20 ноября 2021, 23:46
+2
Не знаю, что хотел этим сказать автор, но вот мне эта характеристика псевдо-«умных» устройств прямо на сердце легла, так она хорошо отражает уровень их «умности»… :))
+
avatar
  • sdivt
  • 20 ноября 2021, 12:19
+5
Теперь я знаю, как называть многочисленные вариации а-ля «smart»-часов
Полоумные часы!))
+
avatar
  • sav1812
  • 21 ноября 2021, 11:13
+1
Недоумки… ;) :))
+
avatar
+8
За самоотверженное упорство — респект и «плюс».
В качестве «преодолеть себя» — достойно и вызывает уважение.

Но, действительно, существует масса проектов, которые не менее похожи на «mass market решение», при том допускают развитие в виде централизованного управления, когда их самодостаточность перестанет быть преимуществом для пользователя.
Первое, что приходжит в голову — Blynk, Tasmota, ESPHome — которые вполне самодостаточны и универсальны, но могут стать частью полоумного дома. Например, Home Assistans.
+
avatar
  • sav13
  • 20 ноября 2021, 12:53
0
ESP32-S2 кто-то ковыряет?
Скоро приедет плата и несколько модулей. Буду осваивать.
+
avatar
0
Tasmota есть под ESP-32
+
avatar
  • m13ale
  • 20 ноября 2021, 13:03
+6
Ачо, реле в секунды не умеет? Мне надо помпу на 30сек включать, а все заводские розетки, что видел — имеют шаг настройки в 1 минуту. И как насчет функционала астрономического реле? Если уж лепить колхоз полоумный, то он должен уметь всё!
+
avatar
0
Самый простой способ, вкорячить ещё одно ведомое реле на 30 секунд. )
+
avatar
-10
+
avatar
+13
Реле писалось под себя и мне такие интервалы были не нужны.
Отчасти потому просят исходники.
Кто захочет барыжить опенсорсем будет шить бинарниками и барыжить. Если есть желание накидаю ссылок на такое поведение.
А вот тех кто захочет изменить функционал под себя отсутствик кода отсеивает. :(
+
avatar
-3
Барыг осуждаю. За свой проект денег не беру. Кто захочет напишет свое и даже лучше. Драйвера под датчики в открытом доступе с конце README.md остальное сами на сколько у вас фантазии и времени хватит.
+
avatar
-1
Вы так говорите как будто вы целую ОС написали, кому оно надо такое красть?
Великое блин достижение что даже примитивные исходники зажали людям готовым поддержать идею и развить функционал.
+
avatar
  • sav1812
  • 25 ноября 2021, 14:53
-1
Скажите, а что именно «не зажали» Вы? ;)
Ссылки, пожалуйста… :)
Вдруг «поддержать и развить» кому захочется? ;) :))
+
avatar
+1
Давайте, накидайте ссылок на барыжащих опенсорсем. Я вот думаю изучить МК и колымить потихоньку. Как это лучше сделать?
+
avatar
  • sav1812
  • 21 ноября 2021, 15:15
-5
+
avatar
+5
отсутствие знаний. Подправить в готовом проекте под себя- это одно, а написать с ноля- совсем другое
+
avatar
-4
Поверьте мне если у вас такой уровень знаний
Подправить в готовом проекте под себя- это одно, а написать с ноля- совсем другое
То в этом проекте вам будет разобраться сложно. Тут тебе и Си, html, Dom, Ajax, JavaScript и все это перепленно и менять надо в 100500 местах.
+
avatar
  • sav1812
  • 22 ноября 2021, 04:54
-5
+
avatar
+4
Как бы это странно не звучало далеко не факт. Я вот например довольно давно поддерживаю и модифицирую большой китайский(!) проект на vue не только не будучи в состоянии написать его с нуля, но и вообще даже не зная языка программирования на котором он написан (разбираюсь на ходу по мере необходимости). Во делов то подивиться очередному выверту дивного синтаксиса и подправить его под себя.

Но тут одно «но», чтобы это работало у вас должен быть большой опыт программирования на других языках.
+
avatar
  • sav1812
  • 22 ноября 2021, 10:03
0
Вот именно. У Вас уже есть упомянутый мной уровень знаний и опыта.
И с ним Вам уже не особо важен язык проекта, в котором Вы, как тут выражаются, «ковыряетесь» — Вы всё осваиваете по ходу дела, используя уже имеющиеся знания и опыт.

А как Вы думаете — много ли такого «большого опыта» у большинства тех, кто упрекает автора в «утаивании» его кода?..
+
avatar
  • Z2K
  • 22 ноября 2021, 14:00
0
«окажетесь не в состоянии внести правки в уже существующий:» — поменять GPOI не получится? Проще переписать с нуля чем разбираться? Хороший проект :)
+
avatar
  • sav1812
  • 22 ноября 2021, 14:15
-1
Попробуйте читать то, на что отвечаете.
+
avatar
  • val_sav
  • 21 ноября 2021, 00:55
0
Сами реле действительно все с дискретностью 1мин в настройках интервалов. Зато сценарий у них может секунды. Я так цветы поливаю. 10 сек раз в сутки.
+
avatar
0
Есть крутой проект полива (не мой). автор пришёл к выводу что все тлен. Сейчас от выдает по150мл на растение и все пучком.
+
avatar
  • val_sav
  • 21 ноября 2021, 12:23
+4
Есть простой проект когда мы берем умную розетку за 500р и бачок омывателя с моторчиком от газели. И все
+
avatar
  • Aostspb
  • 23 ноября 2021, 11:35
-2
Есть простой проект когда мы берем умную розетку за 500р и бачок омывателя с моторчиком от газели.
Коллекторный «моторчик от газели» — не расчитан на длительную работу. Тут лучше использовать «бесщеточные» решения «для аквариумов»…
+
avatar
  • val_sav
  • 23 ноября 2021, 19:17
+1
Где тут долгая работа?
Мы даже обсуждаем секундные!!! интервалы.
У меня 10 сек в сутки включается да еще и на 5вольт.
+
avatar
  • Aostspb
  • 24 ноября 2021, 10:26
-1
Мое дело: предупредить. У меня уже два коллекторных насоса сдохли из-за попадания воды внутрь…
+
avatar
  • val_sav
  • 24 ноября 2021, 11:08
0
ну прекратите.
Бочонок Газели стоит в Газели в подкапотном
Там везде вода
+
avatar
-24
+
avatar
  • AddWin
  • 20 ноября 2021, 15:26
+43
Может, конечно, я излишне параною. Но юзать чёрный ящик от непонятно кого, который знает настройки твоего роутера, и сам ходит в интернет — это как-то неправильно. Что это вещь в себе, без развития — уже вторично.
+
avatar
-22
+
avatar
+10
чувствительные данные никуда не передаются. даже в uart логах пароли не выводятся.
«Мамой клянусь!», да?
+
avatar
+1
«Мамой клянусь!», да?
Умный, да? :D

Дизассемблер в руки и вперед, благо асм у ESPшки простой — не STM да и прошивка небольшая.

А потом ждем здесь — поделитесь с общественностью аудитом.
+
avatar
  • sav1812
  • 20 ноября 2021, 23:50
+7
Дизассемблер в руки и вперед
Нечасто встречается такая доброта… :))
+
avatar
-2
UEFI перепиши под себя. И прошивки всех своих устройств с WiFi.
+
avatar
0
Может, конечно, я излишне параною. Но юзать чёрный ящик от непонятно кого, который знает настройки твоего роутера, и сам ходит в интернет — это как-то неправильно.
Не юзайте.

Открытых, альтернативных решений — полно. Но там солянка.

Не хотите солянки — разбираетесь, пишете свое, выкладываете сюда )
И всем хорошо.
+
avatar
  • AddWin
  • 21 ноября 2021, 00:36
+2
Своё и работает. Причем, давно. Esp8266 — далеко не новый микроконтроллер.
+
avatar
  • sav1812
  • 20 ноября 2021, 23:48
+3
Не троллинга ради — просто интересно: а исходники прошивки ESP у Вас есть? ;)
И как? Где Ваша паранойя по этому поводу? ;) :))
+
avatar
  • tklim
  • 21 ноября 2021, 13:04
0
Троллинга, таки.
что такое
исходники прошивки ESP
?
+
avatar
  • sav1812
  • 21 ноября 2021, 13:32
-2
Троллинга, таки.
Обоснуете? Или по себе судите? :)

что такое

исходники прошивки ESP
?
Вы серьёзно?? :))))

Ну, хорошо. Вот используемый автором ESP8266. Читайте. :)
+
avatar
  • DeeZ
  • 21 ноября 2021, 11:50
+8
Респект за скилы. но проектов с функционалом куда более богатым полно. Та же Тасмота


Надеюсь что понимаете что говна вам накидали не за плохой проект а за закрытость :)
Удачи в разработке.
+
avatar
-3
Все понимаю и не осуждаю. Сам таким был таким ещё n- лет назад.
+
avatar
  • SubOm
  • 20 ноября 2021, 14:05
+1
Ко всему перечисленному можно еще добавить беспeребойное питание, если подцепить доработанный Battery Shield. Правда там будут пульсации в пределах 50-150мВ, не знаю будет ли это критично для работы датчиков:

+
avatar
0
А есть такая же только с перламутровыми пуговицами с экранчиком и управлением?
Что бы получить полноценный термостат для тех же тёплых полов, но без обязательной привязки к компу.
+
avatar
-1
для это есть пару проектов на Github в 100500 раз лучше моего. Например HASPone и его форк openHASP.
+
avatar
  • xvoland
  • 20 ноября 2021, 14:21
+1
«полоумное WiFi реле»?
Полоумное, в смысле — сумасшедшее? Оно, даже, произвольно не включается/выключается :(
+
avatar
  • linkar
  • 20 ноября 2021, 15:50
+4
Полоумное, в смысле — сумасшедшее? Оно, даже, произвольно не включается/выключается :(
Оно дожидается, пока хозяин уходит из дома и включает чайник на обогрев всего помещения, первые 20 минут даже с паром.
+
avatar
-4
пока на 100% обкатан только режим осушителя (работает уже 2 недели) и пару раз пользовался режимом по времени и ручным. хоть код охлаждения/обогрева на 99.9% идентичен коду осушителя — все может быть. уж очень все сильно переплетено и из опыта знаю, что баг может прилететь отовсюду.

поэтому повторю:
Реле предоставляется «КАК ЕСТЬ» без каких-либо гарантий. Не оставляйте без присмотра. Автор, не несет ни какой ответственности если у вас что-то пошло не так.
+
avatar
  • Aahz
  • 20 ноября 2021, 17:52
+6
Может кому интересно будет:
Проект таймера на ардуине под esp8266 с расписаниями. Есть исходники.
www.instructables.com/ESP8266-01-IoT-Smart-Timer-for-Home-Automation/
+
avatar
  • adzus
  • 20 ноября 2021, 18:46
+5
Китайские модули с синими реле крайне говеного качества, коммутировать ЭТИМ нагрузку 230В, тем более мощную, крайне стремная и опасная затея.
+
avatar
  • et2000
  • 20 ноября 2021, 18:53
+1
Какие можете предложить не китайские реле в качестве альтернативы?
+
avatar
+6
Можно поставить на реальную нагрузку контактор. А «синим» реле только управлять.
+
avatar
0
finder, te connectivity, relpol, ну и шнайдеры, абб, сименсы и прочие туда же (хотя в основном им названные в начале производители реле делают)
+
avatar
+2
А твердотельное реле или тиристор задействовать что мешает?
Я уже много лет пользуюсь подобными самоделками дома.
На свет простой SSR(solid state relay) на 2А более чем хватает.
Всё влезает в коробочку 40*40мм.
Управление двумя каналами.
За готовое реле ~80-90₽.
Можно взять модуль с тиристором или спаять самому: дешевле, компактнее, надёжнее.
Но нужны голова, руки и отсутствие лени.

Мои менее функциональные, чем у ТС'а.
Но его — без исходника, а это как любоваться машиной соседа)
+
avatar
+3
Угу, если нагрузка мощная, я сними реле управляю SSR реле. Естественно SSR стоит на радиаторе. Если надо эмулировать нажатие в слаботочных цепях, то отключаю SSR и подключаюсь к кнопке синим реле. Получается довольно универсально.
+
avatar
+1
Автору респект за проделанную работу. Если проект стабильно работающий еще и с архивом данных, то остается Вам только руку пожать за труды. Открытый код и не нужен, как тут многие просят и сокрушаются что его нет. Теперь к просьбам: нельзя ли реализовать в проекте доступ к Веб Морде WiFi реле в двух режимах: Через интернет (например через Телеграмм бота) а при его отсутствии по условию ESP8266 сама бы поднимала свою сеть для получения доступа к Веб серверу. Ну и добавить на веб сервере добавление настроек домашней WiFi сети при включении условия необходимости доступа через интернет. А так автору добра и всем Муськовчанам так же.
+
avatar
0
Немного не понял. Можно подробнее.

Сейчас вебморда доступна из локальной сети роутера. Никто не мешает пробросить ip реле во внешний мир и управлять с любой точки мира. Но помним что протокол http и его слушают все кому не лень.

Если связь с роутером пропадает, то в течении минуты на реле подымается точка доступа куда вы можете зайти и поменять пароль и имя роутера если надо.

Как только реле подключится с роутеру, то точка доступа пропадает. И появится опять только если связь с роутером пропадает.
+
avatar
0
Да все верно проброс портов этот вопрос снимает. Просто в тексте поста я про это не нашел: вроде как просто написано «Если вы все сделали правильно, то после прошивки и нажатия reset у вас должна появится новая точка доступа tthRelay. Подключитесь к ней введя пароль 12345678.». Как я понял из поста подключаемся на прямую к точке доступа ESP8266 и попадаем на веб интерфейс соответственно. Про то что реле подключается к локальной сети роутера — видимо не внимательно прочитал пост. Извиняюсь…
В общем надо гонять проект в живую и большинство вопросов снимется… пойду достану макетку, датчик AHT10 как раз валяется без дела)
+
avatar
0
Про то что реле подключается к локальной сети роутера — видимо не внимательно прочитал пост.
Про это там ссылка на мой прошлый diy — MatrixClock. У них много общего по базовым настройкам сети и я решил тоже самое второй раз не писать.
+
avatar
  • exeland
  • 21 ноября 2021, 08:27
0
Внешний ip адрес может смениться, всё зависит от провайдера, удобнее использовать mqtt и внешний брокер.
+
avatar
0
Внешний ip адрес может смениться
Почто все роутеры умеют в динднс. Ходи по адресу а не по ип.
+
avatar
+1
Об mqtt подумываю, но пока не разобрался home assistance. Как только его разгадаю то добавлю. Но быстро не ждите.
+
avatar
-5
+
avatar
  • jenya
  • 21 ноября 2021, 01:25
+11
С таким подходом вообще непонятно зачем обзор делался…
+
avatar
  • tklim
  • 21 ноября 2021, 01:48
+8
С какого перепугу кто-то что-то вам обязан выкладывать?
Тем более — исходники? Может у вас и от биоса исходники есть, который вы пользуете?
Или от часов? Или от каких-либо других девайсов?
Все что касается DIY с прошивками без исходников — крайне сомнительная вещь. Даже если проект сам по себе хороший. Потому что только очень малому проценту людей подойдет «как есть». Остальным всегда нужно «на одну кнопочку больше» или «на секунду больше задержка».
Отличный пример — wifi-iot.com/ В свое время это была очень удобная штука, я и сам пользовался и денег не жалко было заплатить (2$ было за лицензию, не знаю как сейчас). Но нет исходников. Нужна какая-то небольшая доработка или багфикс — жди полгода или вообще не жди.

Например я тоже исходники не отдаю, потому что почти все они основаны на моих-же библиотеках, на которые потрачено много сил и времени, а без них исходники будут бесполезны, даже если их открыть.
Это одна из самых частых причин невыкладывания исходников. А еще библиотеки могут быть просто под NDA.
Это что ж у вас там за такие волшебные библиотеки?
Они чем-то лучше чем то что уже выложено?
+
avatar
+2
Из опыта общения, именно те кто больше всех ругает об отсутствии исходников сам ничего не написал и не выложил.
+
avatar
  • tklim
  • 21 ноября 2021, 03:59
+6
А кто-то ругает? (лично я — нет)
Просто, по моему опыту, «выкладывание в массы» подразумевает некоторую ответсвенность за «продукт». И это даже с исходниками не исключает вопросов, типа, «а можете сделать, чтоб 3го мая в 8 утра включалось». Но если продукт действительно хороший, то кто-то сделает «под себя», кто-то пулл-реквестов накидает… ну и дальнейшее развитие.
Переживать, что «украдут» и будут деньги на этом зарабатывать? Серьезно?
+
avatar
  • sav1812
  • 21 ноября 2021, 04:12
+3
«выкладывание в массы» подразумевает некоторую ответсвенность за «продукт»
Ой, да не смешите! :))

И это даже с исходниками не исключает вопросов, типа, «а можете сделать, чтоб 3го мая в 8 утра включалось».
Да ничто и никогда их не исключает. :)

Люди охочи до халявы, поэтому — да, после выкладывания исходников стоит ожидать критики типа «Я не понимаю, почему ты не сделал всё так, как считаю правильным я??» с прозрачными намёками на возможность поработать бесплатно на чужое благо, «допиливая» своё поделие в соответствии с чьими-то представлении «о добре и зле». :))

Но если продукт действительно хороший, то кто-то сделает «под себя», кто-то пулл-реквестов накидает… ну и дальнейшее развитие.
А если человек поделился тем, что сделал, в том объёме, какой он счёл для себя возможным — это что, рубит на корню «творческий порыв и инициативы масс»? :))))

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

Дерзайте! Личным примером… ;) :)
+
avatar
  • tklim
  • 21 ноября 2021, 13:02
+2
Ой, да не смешите! :))
Если вы что-то «опенсорсили» или вообще выкладывали результаты вышего труда — поделитесь опытом. Любой «продукт» требует поддержки (если он хоть кому-то интересен)
Люди охочи до халявы, поэтому — да, после выкладывания исходников стоит ожидать критики типа «Я не понимаю, почему ты не сделал всё так, как считаю правильным я??» с прозрачными намёками на возможность поработать бесплатно на чужое благо, «допиливая» своё поделие в соответствии с чьими-то представлении «о добре и зле». :))
(не касается темы конкретного обзора) Но бывает, находишь то что тебе нравится, хочется подправить под себя. Я не хочу лезть к автору с просьбами добавить кнопочку для меня. Есть исходники — ок, поиграюсь.
+
avatar
  • sav1812
  • 21 ноября 2021, 13:44
0
Если вы что-то «опенсорсили» или вообще выкладывали результаты вышего труда — поделитесь опытом
Из OpenSource «в чистом виде» было только небольшое участие в чужих проектах. Своё, так уж сложилось, было «для узкого круга лиц», выкладывать на всеобщее обозрение не было ни необходимости, ни желания, ни, иногда, и возможности.
Но это не означает, что я не знаю, как это устроено и работает на практике. :)
Любой «продукт» требует поддержки
Спасибо, что рассказали. :))

Но бывает, находишь то что тебе нравится, хочется подправить под себя
Бывает, что и находишь, да. Но лично мне обычно хочется «запилить» своё, потому как чужого кода, который бы мне нравился «как есть», я не встречал уже лет с 25, наверное. Это была FORTH-система F-PC от Tom Zimmer, под DOS ещё…

А дальше всё больше самому хотелось писать. :)

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

Но ведь устройство и его функционал достаточно просты, так что если Вы умеете «поиграться» с чужими исходниками, то почему бы не «сыграть» в своё собственное? ;) :)
+
avatar
+2
Это что ж у вас там за такие волшебные библиотеки?
Они чем-то лучше чем то что уже выложено?
В разы лучше. Потому что написаны чётко по спекам, отлажены и написаны так, что ими реально удобно пользоваться. Если бы вы посмотрели то, что люди выкладывают — то тогда бы и вопросов не возникало. Ну не знаю, посмотрите FastLED, например. Это адский ад. Очень редко правда встречается нормальное, но это, скорее, исключение.

Ибо там обычно:
-дикое и не нужное ооп, или его отсутствие там, где оно нужно
-ужасный код что на с, что на плюсах
-бешенное использование директив компилятора
-мешанина кода без разделения на библиотеки
-реализован лишь кусок функционала
-тайминги на от… сь
-отсутствие обработки ошибок
-работа в цикле (прерывания, дма — не, не слышали)
-неуниверсальность (например, только под конкретный проц)

и тд
+
avatar
  • tklim
  • 21 ноября 2021, 12:40
+7
Вы продоете библиотеки? Нет, просто рассказываю.

В разы лучше.
© Каждый разработчик очередной библиотеки

Если бы вы посмотрели то, что люди выкладывают — то тогда бы и вопросов не возникало.
Смотрел, видел, прекрасно понимаю, что 90% — колхоз. Из нормальных все равно что-то не подходит. По этому, проще написать свое, ибо часто надо всего 1% от фунционала.
Потому что написаны чётко по спекам, отлажены и написаны так, что ими реально удобно пользоваться.
Это коммерческий продукт или «для себя»? «Удобно пользоваться» — сколько пользователей сказали, что им удобно?

Остальные пункты — там все субъективно и противоречиво если смотреть в общем.
+
avatar
+4
Вы продоете библиотеки?
Я продаю продукты, на них основанные.

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

Нареканий не было, ибо я всегда придерживаюсь принципа kiss, стандарта кода, разумной универсальности и полноты спецификации.

Пишем на C/C++ без каких-либо сторонних оберток.

И не надо за других домысливать — всегда ошибаться будете.

там все субъективно
Если вам больше 20, вы и так знаете, что в жизни, в принципе, все субъективно.)
+
avatar
  • sav1812
  • 21 ноября 2021, 13:46
0
Если вам больше 20, вы и так знаете, что в жизни, в принципе, все субъективно.)
И это объективно… ;) :))
+
avatar
  • tklim
  • 21 ноября 2021, 13:47
0
Да, коммерческий. И я, конкретно, занимаюсь именно поддержкой этих библиотек. В команде у нас 17 человек, если считать меня, которые активно ими пользуются.
Зачем вы сравниваете коммерческий продукт и DIY?
У меня основная работа иногда пересекается с тем что я делаю дома «для себя». Но это два разных мира — по затратам, подходам ну и результатам.
И не надо за других домысливать — всегда ошибаться будете.

Если вам больше 20, вы и так знаете, что в жизни, в принципе, все субъективно.)
домысливать вы тут началали:
Если бы вы посмотрели то, что люди выкладывают
Ну я так понял, вам больше 20, но все ниже перечисленное, если не брать частные плохие примеры — явно юношеский максимализм
-дикое и не нужное ооп, или его отсутствие там, где оно нужно
-ужасный код что на с, что на плюсах
-бешенное использование директив компилятора
-мешанина кода без разделения на библиотеки
-реализован лишь кусок функционала
-тайминги на от… сь
-отсутствие обработки ошибок

-работа в цикле (прерывания, дма — не, не слышали)
-неуниверсальность (например, только под конкретный проц)

+
avatar
+1
Поржал. Удачи вам с открытыми библиотеками.)

Знаете, Марк Твен говорил так: «Никогда не спорьте с дураками, они опустят вас до своего уровня и победят опытом.»

Я не хочу спорить с вами, tklim) Вы абсолютно не понимаете, точнее, не хотите понять, что вам пишут. Смысл тогда?

Считать можете, все что хотите.
+
avatar
  • tklim
  • 21 ноября 2021, 15:13
0
Поржал. Удачи вам с открытыми библиотеками.)
Не пригодится, но спасибо!
Знаете, Марк Твен говорил так: «Никогда не спорьте с дураками, они опустят вас до своего уровня и победят опытом.»
Не знаю, лично не знаком, да и как-то не успел застать. Если у вас есть текст оригинальной цитаты на английском — скажу спасибо, иначе это "© Джейсон Стетхем"

Вы абсолютно не понимаете, точнее, не хотите понять, что вам пишут. Смысл тогда?
Можно мне другого психолога?

Тут про DIY.
Я не поленился и вчера скачал и поставил посмотрел.

1) Имея опыт с ЕСП — потратил полчаса времени «чтоб просто заработало»
2) Не включает реле по кнопкам на странице (ну или пишет что не включило)
3) Интерфейс тупит по 2-3 секунды
+
avatar
+2
Удачи вам обоим с любыми чужими библиотеками в большом коммерческом проекте, причем неважно открытыми или нет. Отдельной удачи после того как их автор решит выкатить какое либо обновление.
+
avatar
0
даже та же дурина позволяет ипользовать конкретную версию библиотеки. Кто мешает использовать библиотеки готового проекта а не обновлять их при каждой сборке?
+
avatar
+1
В одном недавнем кейсе помешал кодемагик который у себя обновил геркиновские тесты и радостно завалил тестирование проекта который у меня дома успешно собирался и тестировался.
Пришлось звать «кавалерию» чтобы она разбиралась с тем что происходит, ведь я использовал «конкретную версию библиотеки» © и у меня все работало как часы.
+
avatar
0
И это конечно проблема именно оттого, что используются чужие библиотеки, да?
+
avatar
  • tklim
  • 22 ноября 2021, 12:42
0
Я где-то писал, что использую «чужие» библиотеки в коммерческом продукте? Уже два раза удачи пожелали в том что я не делаю.
А StainlessSoul — так вообще только за свои собственные библиотеки.
Но тут все отвлеклись от темы. Я так понял, наболевшее — это библиотеки околоардуины для общения с датчиками. С ними все +- понятно. А вот библиотеки парсинга json или xml тоже надо самому изобретать?
+
avatar
  • Z2K
  • 22 ноября 2021, 14:06
0
«вот библиотеки парсинга json или xml тоже надо самому изобретать?»
— irony да, обязательно — каждый должен иметь свои велосипеды и разбитый нос от многочисленного хождения по тем же граблям что другие прошлись — irony :)
+
avatar
+3
конечно обязательно! Вдруг до них дойдет, что 90% их задач по хранению данных на маломощных «ардуинах» можно реализовать вообще без xml и json.
Например банальными struct


struct ClientConfig
{
  time_t lastTime;
  uint16_t lastFile[3]; //
};

ClientConfig cf;


void saveConfig()
{
  EEPROM.writeBytes(0, (void *)&cf, sizeof(ClientConfig));
  EEPROM.commit();
  delay(100);
}
void readConfig()
{
  EEPROM.readBytes(0, (void *)&cf, sizeof(ClientConfig));
}
+
avatar
0
GermanIvanov
Ну вот, взял и все спалил :D
Пусть мучаются.
+
avatar
  • rustamt
  • 22 ноября 2021, 16:22
0
xml/json здесь скорее всего понадобятся не для хранения внутри устройства а например, если нужно слать собранные данные напрямую в какой-то внешний сервис типа elasticsearch или influx, или при работе с какими-то внешними http api.
+
avatar
0
В моем проекте Json используется для обмена между страницами html которые отдаются сервером-esp8266 клиенту (интернет браузеру) и обратно.

Пы.сы. про фишку GermanIvanov не знал. Я не настоящий сварщик.
+
avatar
+1
Если оба сервиса ваши, тогда вместо json могли бы просто строки гонять, не тратя бесценную память на «парсе-шмарсе» json. Держите в качестве простого примера, тут и веб сервер с кодом страниц закомпилированных прямо в коде и страничка гоняющая значение микросекунд между esp и вебом, заодно про интересную фишку 8266 узнаете :)

Пы.сы. про фишку GermanIvanov не знал.
Вы шутите! Это базовый С образца Кернигана и Ричи. :)
Нате тогда еще одну чудо-фишку :) Это конфиг файл на SD карточке. Тоже в пару строк без внешних библиотек.
void processConfigFile()
{
  File f = SD_MMC.open("/config.txt");
  while (f.available())
  {
    i++;
    String s = f.readStringUntil('\n');
    int indx = s.indexOf("=");
    String key = s.substring(0, indx);
    key.trim();
    s.remove(0, indx + 1);
    s.trim();
    if (key == "ble_pause_period")
    {
      mcf.ble_pause_period = atoi(s.c_str());
    }
    else if (key == "ble_work_period")
    {
      mcf.ble_work_period = atoi(s.c_str());
    }
    else if (key == "client_last_activity")
    {
      mcf.client_last_activity = atoi(s.c_str());
    }
  }
  f.close();
}
void makeConfigFile()
{
  File f = SD_MMC.open("/config.txt", FILE_WRITE);
  f.printf("ble_pause_period=%u\n", mcf.ble_pause_period);
  f.printf("ble_work_period=%u\n", mcf.ble_work_period);
  f.printf("client_last_activity=%u\n", mcf.client_last_activity);
  f.flush();
  f.close();
}
+
avatar
-2
Спасибо за чудо-фишку. Тут ничего нового для себя не узнал. Это все умею, но использую не часто. Все эти substring очень тяжело читать и легко ошибиться. В этом плане ArduinoJson намного удобнее.

heap у меня постоянно свободно около 30КБ с фрагметацией 2%, так что не вижу препятствий использовать json.

Имхо считаю — харкодить html страницы в Сишные заголовки — это моветон, костыль и человеческая лень. Да хотя бы потому что после правки страницы нужно весь проект пересобирать. Да и не правильно все это. Вы же творог не из вареников добываете, а наоборот творог в вареники кладёте. Вобщем есть тут какая-то broken logic.

базовый С образца Кернигана и Ричи не читал. Даже не знал что он существует. Я вобще не программист. Писать для себя как хобби начал с 2011. Изучал во сновном читая чужой код с github. Только в 2016 что, то начало получаться и до рос до законченный проектов (tthRelay,
MatrixClock) только в 2020. Все это урывками, в свободное от работы и семьи время.
+
avatar
+3
Все эти substring очень тяжело читать и легко ошибиться.
Как правило все что тяжело делать вам — легко делать процессору, и наоборот. Процессор в ардуинках дохленький. Вы грузите его непосильной ношей.
Да хотя бы потому что после правки страницы нужно весь проект пересобирать.
Это же ардуина! У нее своя специфика. Откуда она по вашему может вообще текст html страницы взять? Вам придется выделять часть памяти под нечто вроде диска, и дополнительно заливать его содержимое в процессе компиляции из папки data. То есть делать два действия вместо одного, попутно подтягивая пару лишних библиотек и все равно пересобирая проект.

>>>Вобщем есть тут какая-то broken logic.
Есть замечательная статья которую следует прочитать всем программистам, как начинающим, так и опытным. Держите :)
Вы — не Google
+
avatar
-2
Прочитал и ваши доводы и статью. Не убедили. Пихать html, json и txt в проект как Сишные заголовки — это моветон и лень матушка.
+
avatar
+1
Сначала был сделан вариант с файловой системой. затем она была выкинута ибо неудобно и неэффективно. Так что это что угодно только не лень :)

Небось файл веб странички как то так читаете?

    File file = SPIFFS.open(path, "r");
    http.streamFile(file, contentType);
    file.close();
 


ps: Главное что, главное чтобы вам самому нравилось. :) ну и действительно код лучше никому не показывать :))
+
avatar
-1
а мне наоборот очень удобно с файловой системой.

почти так читаю.

bool server_fileRead(String path)
{
  /* get file extension from path & convert to MIME type */
  String contentTypeStr = mime::getContentType(path);

  /* check if compressed version of file or file is available */
  if (LittleFS.exists(path + F(".gz")) == true)
  {
    path += F(".gz");
  }
  else if (LittleFS.exists(path) != true)
  {
    Serial.printf_P(PSTR("Oops! file %s not found\n"), path.c_str());

    return false;
  }

  File file = LittleFS.open(path, "r");

  size_t fileSize = file.size();                               //get file size, in bytes

  /* set additional HTTP request headers */
  server_addUserAgentHeader();                                 //add field to header, User-Agent

  if ((path.endsWith(F(".gz")) == true) || (path.endsWith(F(".js")) == true))
  {
    server_addCacheControlHeader(2);                           //add field to header, 2 - always cache on CDN company also always cache for 7 days (for Chrome) or never change (for Firefox)
  }
  else if ((path.endsWith(F(".html")) == true) || (path.endsWith(F(".json")) == true) || (path.endsWith(F(".txt")) == true))
  {
    server_addCacheControlHeader(0);                           //add field to header, 0 - never store on CDN company side, for better logout behaviour 
  }
  else
  {
    server_addCacheControlHeader(2);                           //add field to header, 2 - always cache on CDN company also always cache for 7 days (for Chrome) or never change (for Firefox)       
  }

  uint32_t sendSize = server.streamFile(file, contentTypeStr); //send header 200 - OK, send file with "Content-Length" to client

  file.close();                                                //close file to prevent memory leak

  if (fileSize != sendSize)
  {
    Serial.printf_P(PSTR("Oops! only %u-bytes from %u-bytes transferred, %s\n"), sendSize, fileSize, path.c_str());
  }

  return true;
}
+
avatar
+2
Ну да, все обычно на одном и том же примере базируются. Смотрите вы сначала запихали строку html страницы в виде файла в littlefs. Затем читаете ее оттуда в память и отправляете клиенту.

uint32_t sendSize = server.streamFile(file, contentTypeStr);

Считываете вы строку туда, где у меня она лежит изначально(это не совсем так но опустим)… опять потратив память и потратив время на считывание с сравнительно тормознутой файловой системы. В моем варианте вы просто взяли… и вывели строку клиенту и все!

ps: Что означает R в начале строки с текстом страницы в моем примере предлагаю узнать самостоятельно. :)

String html_1 = R"=====(

pps: Строчки указанные ниже типичный «Я Google». Вы всерьез полагаете что кто то будет коннектится к вашему серверу кроме вашего же сервиса?

String contentTypeStr = mime::getContentType(path);
/* check if compressed version of file or file is available */
if (LittleFS.exists(path + F(".gz")) == true)


Вы не знаете какие страницы собираетесь считывать?
+
avatar
0
Вы не знаете какие страницы собираетесь считывать?
не знаю. я это код использую во всех проектах.

String html_1 = R"=====();
конечно знаю. я же сказал хранить файл тупо во флеше (а не на файловой системе) — это странно. давайте весь win10 так зафлешим. прикиньте какая скорость будет?

Вы всерьез полагаете что кто то будет коннектится к вашему серверу кроме вашего же сервиса?
как говорил один очень толковый инженер с которым я работал — если это может случиться, то рано или поздно это произойдет. я его первый раз не послушал и через год мне прилетело.
+
avatar
+2
не знаю. я это код использую во всех проектах.
А потом народ удивляется почему простейшие задачи так тормозят. А потому что при таком подходе нет простейших задач — любая задача включает все остальные возможные задачи.

И поэтому я стараюсь не использоватьв проектах чужие «универсальные» либы. Если мне от них нужна специфичная функциональность выкусываю ее и очищаю от «универсальности».

хранить файл тупо во флеше (а не на файловой системе) — это странно
Было бы странно если бы это был файл, а это ведь обычная тестовая строка. Гляньте исходники своего вебсервера под капотом скорее всего найдете код из моего примера.

давайте весь win10 так зафлешим. прикиньте какая скорость будет?
Думаю очень быстрая, но потребуется много флеши.
+
avatar
0
Гляньте исходники своего вебсервера под капотом скорее всего найдете код из моего примера.
исходники Sream не смотрел, но более чем уверен, что там что-такое как вы описали. понятно что напрямую быстрее, но не удобно.

вы же сами на си пишете? а почему не на asm? вот и мне не удобно.

не понятно зачем, с такими знаниями, вы используете Arduino? писали бы сразу на esp-idf без томозной прокладки
+
avatar
+1
Ну дык и я так начинал, причем относительно недавно. Но наступил на непонятный баг. Все работало некоторое время, циферки резво бегали, а затем все зависало наглухо по таймауту.

Обновишь страничку — опять циферки побежали. и нигде никаких ошибок. 8-(...)

В попытках отыскать причину бага, уменьшил зону поражения, удалив все ненужные либы. Спустился до показанного уровня детализации. и вы знаете, мне там понравилось! :)
+
avatar
  • sav1812
  • 23 ноября 2021, 00:54
0
как говорил один очень толковый инженер с которым я работал
О, так Вы работали с Эдвардом Мерфи?? ;) :))
+
avatar
0
Нет с ним не знаком.
+
avatar
  • ACE
  • 22 ноября 2021, 20:19
+1
Небось файл веб странички как то так читаете?
А так?
#define JS_FILE "/scripts.js"
#define JS_URL "/scripts_6197d7d0.js"
httpServer.serveStatic(JS_URL, SPIFFS, JS_FILE, "max-age=86400");

Хозяйке на заметку:
1) к URLу добавляется рандомное число, тогда после обновления прошивки не надо чистить кэш, а в остальных случаях оно успешно кэшируется. Ну в тексте html надо ссылку обновлять, но это решаемо.
2) библиотеки ардуино ESP в serveStatic автоматически проверяют наличие файла с добавленной ".gz", если есть, то отдают его, указав в HTTP-заголовке сжатие. Т.е файлы в spiffs/littlefs можно сжать совершенно прозрачно.
3) я делал так. Файлы статики добавлены в прошивку, но при её старте скидываются в spiffs, если их там ещё нет или версия обновилась. Да, увеличивает размер прошивки, зато прошивается одним файлом. Но можно обновить только статику. Или только код. И удобно и просто.
+
avatar
0
я делал так. Файлы статики добавлены в прошивку, но при её старте скидываются в spiffs, если их там ещё нет или версия обновилась. Да, увеличивает размер прошивки, зато прошивается одним файлом. Но можно обновить только статику. Или только код. И удобно и просто.

хорошая идея, возьму на заметку. к моем проекту не подойдет — файлы статики много весят и прошивка может не влезть.
+
avatar
+2
>>> а в остальных случаях оно успешно кэшируется.
ниразу с этим проблем не было, ведь при смене прошивки отваливается и вайфай и сервер. Браузерам обычно хватает ума перечитать данные у вновь появившегося после отвала точки доступа сервера.

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

3) я делал так.
Я тогда как раз и ставил задачей избавиться от файловой системы. Как только понял что вся магия веб сервера это банальное чтение строчек текста из одного места и записи их в другое место.
if (header.indexOf("GET /range") >= 0){
            client.println(String(curRange));
            client.println();
            break;
          } else if (header.indexOf("GET /") >= 0) {
              client.println( header_1 );
              client.println();
              client.println(html_1);
              client.println();
              break;
          }

Если клиент спросил страничку /range — отдай ему строчку со значением(без json или вообще какого либо html),
если спросил / — отдай клиентскую страницу.

Клиентская страница в свою очередь получив от запроса /range строчку с числом выводит ее в div на html странице.

 var value= parseInt(data); 
 document.getElementById('rdm').innerHTML = value;


Все. нет ни json, ни даже либы веб-сервера. Для работы хватает того простейшего что описан в Wifi.h

Правда моих задач это все равно не решило по скорости пришлось уйти на вебсокеты.
+
avatar
0
Все. нет ни json, ни даже либы веб-сервера. Для работы хватает того простейшего что описан в Wifi.h
так можно договориться что и Wifi.h не нужен — сразу в регистры писать, да на ассемблере.
+
avatar
+2
Если бы настолько хорошо знал стек то так бы и сделал. Пока не тяну.
+
avatar
  • ACE
  • 22 ноября 2021, 21:01
0
Браузерам обычно хватает ума перечитать данные у вновь появившегося после отвала точки доступа сервера.
да не может такого быть. Видимо кэширование просто не работало. В вашем примере кэширование не включается, оно и не нужно. Но не может браузер знать, что какой-то IP перестал пинговаться и, тем более, у него нет инфы от роутера, что кто-то там переподключался. Даже если браузер по велению джаваскрипта долбился в страницу /range и она была не доступна, это не повод считать закэшированное неактуальным. Про вай-фай браузер тоже ничего не знает, ну только «есть инет/нет инета». У меня такая проблема точно была, как на мобильных, так и на десктопных браузерах. C CSS файлом, как минимум.
Дык если есть сразу и закодируйте блобом сжатый. Будет и быстро и без потерь памяти. Имхо так лучше.
Да тоже самое. Скорость вообще не заметно, память занимает только если временно, во время обработки, не жалко. А плюсы есть. В том числе и gzip сжатие, возможность обновлять только статику без полной перепрошивки при отладке (банально быстрее).
В вашем примере на одну страницу — это хорошо работает, но в проекте покрупнее уже все-таки лучше с либой веб-сервера, а не изобретать велосипед с риском получить несовместимость с каким-либо браузером. А то придётся разбирать POST запросы и т.д.
Да, у каждой задачи свои оптимальные решения, спорить не буду. Просто предложил ещё один вариант.
+
avatar
0
Видимо кэширование просто не работало.
скорее всего

В вашем примере на одну страницу — это хорошо работает, но в проекте покрупнее уже все-таки лучше с либой веб-сервера, а не изобретать велосипед с риском получить несовместимость с каким-либо браузером. А то придётся разбирать POST запросы и т.д.
Да, у каждой задачи свои оптимальные решения, спорить не буду. Просто предложил ещё один вариант.
вот именно это и хотел донести, но знаний не хватило
+
avatar
0
Но не может браузер знать, что какой-то IP перестал пинговаться
В моем проекте он его опрашивает 10 раз в секунду и выводит результат на страницу. Да и коннектится напрямую (или находится с ним в одной локальной сети), Это был нечто вроде прототипа специфичного лазерного дальномера на vl503. :)
давно это было, но насколько помню ошибки были разные при отвале Wifi и не отвечающем сервисе. в одном случае таймаут, а во втором что то про DNS или протоколы вроде.

но в проекте покрупнее уже все-таки лучше с либой веб-сервера
Возможно. Каждой задаче свое решение. Но имхо такие проекты лучше решать не на ESP. И окончательный релиз я бы довел до указанного состояния. Хотя и там я во многих местах схалявил — это ж прототип :)
+
avatar
  • ACE
  • 22 ноября 2021, 21:27
0
Возможно. Каждой задаче свое решение. Но имхо такие проекты лучше решать не на ESP.
У меня проект как раз таки близкий к этому реле. Полоумные шторы. Но все эти интеграции с умными домами (что-то нужно мне, что-то просят люди) требуют и веб-сервер, и веб-клиент, dns-сервер для captive portal, NTP-время, MQTT и JSON с XML. Благо последние два достаточно генерить, а не парсить, так что без либ. А вот MQTT взял либу, так проще. Правда, пришлось повыбирать из нескольких вариантов. Но esp8266 в самый раз.
+
avatar
0
А на какой либе mqtt остановились в итоге?
+
avatar
  • ACE
  • 22 ноября 2021, 21:44
+1
PubSubClient (от Nicholas O'Leary, а то есть с таким же названием других авторов). Одна из самых популярных, судя по беглому поиску в гугле. В исходники особо не лазил, по факту оказалась беспроблемной, пока не натыкался на какие-либо глюки, в моём сценарии использования.
А вот от adafruit была глючной, один баг даже исправил, приняли мой PR, но там коде весьма корявый, в тех местах, куда заглядывал. В прочем, с тех пор могло поменяться многое. Повелся на неё, потому что тоже вроде как популярная в diy-проектах, ну и имя на слуху было.
+
avatar
0
Кстати счас поднял тот проект посмотрел на чем остановился. Оказался промежуточный вариант: веб страничка статичная в коде, веб сервер таки есть и реализован следующим образом

#include <ESP8266WebServer.h>
 ESP8266WebServer http(80);

 void initHTTP()
 {
   http.on("/", HTTP_GET, [](){
      http.send(200, "text/html", html_index);   // строка с html 
   });  
   http.onNotFound([](){
      http.send(404, "text/plain", "FileNotFound");
  });
  http.begin();
 }

обмен данными на websocket.

Но esp8266 в самый раз.
Я таки согласен с небезизвестным в узких кругах pvvx — пора сползать на ble. Даже пару проектов на TLSR реализовал.
+
avatar
  • ACE
  • 22 ноября 2021, 21:49
+3
Стиль общения pvvx привил мне привычку стараться не искать ответы на вопросы, связанные с esp8266 на русскоязычных форумах, я слишком ранимый человек для такого, пару раз наткнуться и прочитать хватило :) При всем уважении к его опыту и знаниям.
А насчет сползать — не соглашусь. Где-то wi-fi удобнее, благо есть, по сути, везде. В некоторых случаях — zigbee.
+
avatar
0
Он на самом деле добрый, только Ардуину воообще и ESP в частности не любит. :) А так вполне адекватен и очень эрудирован. Когда его заносит, я ему обычно свой прототип обсуждаемого дальномера показываю и он махает рукой и успокаивается, мол что с меня взять. :))

Где-то wi-fi удобнее, благо есть, по сути, везде.
BLE проще в реализации и как ни странно и надежней. Разве что скорости низкие.

В некоторых случаях — zigbee.
Этого не пробовал еще.
+
avatar
0
Пока есть люди, которые при каждом обращении к «серверу» будут лезть во внешний флэш, да еще и через FS — у меня будет дофига работы, потому что «им так удобнее».
Записал эту интересную мысль в блокнотик :)
+
avatar
0
не закрывайте, еще одна подъехала — минимальные требования win10 1ГБ оперативки, а когда то и 640КБ хватало.

ребята пишущие на ассемблере по началу тоже смеялись, но потом быстро перекрасились на ООП, потому что так удобнее.
+
avatar
  • Z2K
  • 23 ноября 2021, 18:23
0
«быстро перекрасились на ООП»
— вчера было, эти уже сегодня перешли и работают на лов-коде и ноу-коде. так еще удобнее.
+
avatar
  • sav1812
  • 23 ноября 2021, 01:11
0
Про вай-фай браузер тоже ничего не знает, ну только «есть инет/нет инета»
Про «инет» браузер тоже ничего не знает. ;)
Его «знания»: «Был сделан запрос — был/не был получен ответ».
+
avatar
  • ACE
  • 23 ноября 2021, 01:17
+1
Нет, не всегда. Например, на андроиде есть какой-то статус, что инета нет. И браузер может сразу выдавать ошибку, даже не пытаясь. И выдаёт табличку с предложением включить вай-фай, например. И наоборот, сам перезагружает недоступную страницу, когда инет появляется.
+
avatar
  • sav1812
  • 23 ноября 2021, 01:55
0
Откуда уверенность насчёт «даже не пытаясь»? :)
Вообще-то по стандарту браузер просто обязан «пытаться»…
А выдаваемая им ошибка — это, скорее всего, просто «перевод» кода ошибки, получаемого им от системы.
+
avatar
  • ACE
  • 23 ноября 2021, 02:12
-1
Вы докопались до фразы, не меняющей ничего в сути диалога. Вы очень хотите об этом поговорить? Я не очень. Летом на даче инет мобильный, через модем и роутер, нередко глючит, я насмотрелся на поведение браузера, для меня больная тема. Но вы в итоге и сами признали, как минимум, по коду ошибки браузер и знает, есть инет или нет… Так что больше спорить не о чем.
+
avatar
  • sav1812
  • 23 ноября 2021, 02:49
-1
Вы докопались
Вообще-то можно было остановиться ещё в момент возникновения такой реакции. Подростково-детской, надо сказать…

я насмотрелся на поведение браузера
А я «начитался» RFC. Правда, давно уже, но тем не менее, представление о поведении браузера в данном ситуации имею не по внешним признакам…

И ещё. Я, вообще-то говоря, не «докопался», как Вам пригрезилось, а уточнил. Рассчитывая, как обычно, либо на ответ по существу, либо на отсутствие ответа, но уж никак не на детски-обиженное, в стиле «Сам дурак! Мне и без тебя тут плохо!..». :)

Так что да, с учётом Ваших реакций — спорить, в принципе, есть о чём, но вот с Вами — не стоит.

Выздоровления Вам… :)
+
avatar
0
Пихать html, json и txt в проект как Сишные заголовки — это моветон и лень матушка.

С чего Вы это взяли?
Больше половины софта используют так или иначе компилируемые «ресурсы», начиная от виндовых rc файлов с описанием форм, иконок и прочего, заканчивая Андроид приложениями где те же Активити описываются в xml.
+
avatar
+1
Больше половины софта используют так или иначе компилируемые «ресурсы»
охотно верю. был не прав. перефразирую свою мысль. мне очень удобно использовать файловую систему в МК и не заморачиваться с записью/чтением бит из eeprom выжимая такты. надеюсь в недалеком будущем МК станут такими жирными, что это станет нормой.
+
avatar
  • tklim
  • 25 ноября 2021, 13:22
0
Кстати, осталось в «незакрытых вкладках» marktwainstudies.com/the-apocryphal-twain-never-argue-with-stupid-people-they-will-drag-you-down-to-their-level-and-beat-you-with-experience/
Mark Twain never said these words, nor anything resembling them.
Так что, удачи в использовании чужих цитат и придумыванию несуществующих «заслуг» по комментариям в интернете.
+
avatar
+2
Угу я уже писал. Например фирма adafruit делает драйвера чтоб только температуру и влажность отдавали. А там у сенсора ещё куча фич — встроенный нагреватель, компенсация влияния т на h и тд. И вот моя либа которая все это умеет 20 звёзд и в конце списка на Github, а обрубок от adafruit 100500 звёзд и в топе.
+
avatar
+4
И вот моя либа которая все это умеет 20 звёзд и в конце списка на Github, а обрубок от adafruit 100500 звёзд и в топе.
Дык к их либам примеры есть с открытыми исходниками. И ответы не всегда в вашем стиле же ))))
Тут тоже какбы не большинство оценит труд и похвалит… Хотя работа вожможно и проделана колосальная ))))
Почитываю пару проектов там вполне накидывают полезных фич в развитие с помощью в их решении.
В частности очень интересный здешний проект, который кстати комерческий. При открытых исходниках, либах, и файлах производства плат и корпусов. ))))
+
avatar
+2
Мои либы тоже открыты.

Моя либа для AHTxx тут. Моя либа для HTU2xD/SHT2x/Si70xx здесь. Фреймворк Arduino ESP8266 берём отсюда.

Тепрь у вас есть все кубики написать свое реле, а писать за вас я не буду.
+
avatar
+3
Мои либы тоже открыты.

Моя либа для AHTxx тут. Моя либа для HTU2xD/SHT2x/Si70xx здесь. Фреймворк Arduino ESP8266 берём отсюда.

Тепрь у вас есть все кубики написать свое реле, а писать за вас я не буду.
Ну лично от меня, СПАСИБО.
Но я так понимаю вам так и не стало понятнее, почему некоторые вас критикуют…
почему либы с большим количеством реальных примеров и отзывчивой поддержкой/помошниками более популярны? Боюсь тут я ничего исправить не смогу ))))
тот же фрут продает железо, показывает как оно устроено, пишет драйверы/библиотеки, реальные примеры использования, и какуюто помошь при использовании. может найдете чего у вас из этого нет, и что б из этого могло больше популяризировать нормальные (с вашей точки зрения) библиотеки? ;)
+
avatar
  • sav1812
  • 22 ноября 2021, 10:05
0
А с чего Вы взяли, что ему вообще нужна эта «попу-ляризация»?? ;) :))
+
avatar
+2
Потому что человек выкладывает это в паблик и тратит силы на статью. Если подумать логически, то это ему нужно:
1. Для «попу-ляризации» своего проекта. И в последующем, если проект стрельнет, то заработать что-то на нем.
2. Для того, чтобы оттестировать свой проект на как можно большем количестве устройств
3. Для того, чтобы распространить своего бота на как можно большей аудитории.

Скорее всего это 1 или 2, но и 3 исключать нельзя.
+
avatar
  • sav1812
  • 22 ноября 2021, 14:23
0
Если подумать логически, то это ему нужно:
Перевожу: «Я тут пофантазировал, и если он такой же, как я, то: »… :)

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

Но да, это слишком обыденно, нет никакого полёта фантазии, никакой интриги… ;) :)))
+
avatar
+2
цели три:
Для того, чтобы оттестировать свой проект на как можно большем количестве устройств
послушать что говорят люди, чтоб добавить или убрать функционал. например в проекте часов так появилось меню длительности горения разделительных точек. а теперь сам пользуюсь режимом — точки с анимацией. без людей этой фичи никогда бы не случилось.

поделится очень полезным устройством, которое работает без облаков, дополнительных шлюзов и стоит дешевле sonoff. лично мне такой всегда не хватало, поэтому и сел писать.
+
avatar
  • toxatmn
  • 20 ноября 2021, 20:53
+5
В поддержку автора, «ковыряльщиков» судя по коментам пол муськи, но фиг кто чего выложил. Есп ковырять не проблема — вектор задан. Кто готовое берет, кто свое делает. А киты нефигово копируют уже готовые решения, поэтому ничего такого в отсутствии исходников нет, кому надо и без них сделает, кому не надо — купит готовое.
+
avatar
  • igpl
  • 20 ноября 2021, 21:12
0
Как-то понадобилось сделать умный вентилятор в санузел, который включается по влажности и включению света. Для себя решил что вифи и прочие наворотов не нужны. Собрал все на Digispark/atiny85. Реле использовал твердотельное. Програмку за пару часов написал сам с изучением нового для меня контроллера. Все отлично работает, в санузел плесени нет. По моему это и глава цель а не графики включения за год. Зачем так усложнять?
+
avatar
  • sav1812
  • 20 ноября 2021, 23:57
+5
«У всякого портного свой взгляд на искусство» — К. Прутков

«По-моему» автора отличается от Вашего. :)
И это более чем нормально: он ведь делал для себя, а не для Вас.

Зачем так не понимать?.. ;)
+
avatar
+2
Графики и не планировались, но одновременно с просьбой мне стала интересна работа одного промышленного реле. Я подумал а почему бы и нет. Вот щас по графикам изучаю алгоритм работы.
+
avatar
  • ser
  • 21 ноября 2021, 10:17
+1
умный вентилятор в санузел
Очень заинтересовало. Можете проект выложить?
+
avatar
+1
А разве плохо получить бонусом телеметрию ванной?
И менять установки удалённо?
Учитывая, что экономия между тинькой и есп-шкой не покроет даже такое простое мероприятие как «нормально попить пива».
+
avatar
0
Бонус это когда без дополнительных усилий. А если для этого надо написать в три раза больше кода, то это не бонус.
+
avatar
0
Нужен то всего аналоговый датчик и компаратор:) Даже тинька — оверкилл. Это если следовать Вашей логике.
+
avatar
  • ebook
  • 21 ноября 2021, 08:33
+1
так и не понял, какое все-таки реле — полоумное или полуумное:)
+
avatar
  • sav1812
  • 21 ноября 2021, 09:25
+2
Одно другому не мешает. ;)
+
avatar
  • ACE
  • 21 ноября 2021, 16:29
+2
Если связь с роутером пропадает, то в течении минуты на реле подымается точка доступа куда вы можете зайти и поменять пароль и имя роутера если надо.

Как только реле подключится с роутеру, то точка доступа пропадает. И появится опять только если связь с роутером пропадает.
Я вот над этим думал, и у себя сделал так, что точка доступа создается только если нет связи с роутером сразу после включения питания. Если хоть раз соединились, то ТД уже не будет создана, при отвале связи. Это не создает проблем, если нужно устройство перенастроить, но уменьшает шанс того, что кто-то посторонний подключится к устройству, если вдруг умрёт роутер в моё отсутствие, или вдруг кто-то заDDOSит мою вай-фай сеть. Не то чтобы это прям критично или решает все проблемы с безопасностью, тем не менее.
+
avatar
+1
У точки доступа тоже пароль. Arduino ESP8266 использует lwip, у него вроде есть встроенная защита от ddos (но это все теория на практике не проверял)
+
avatar
0
Есть это все и стабильно работает и исходники есть, можно самому дописать или убрать лишнее
github.com/letscontrolit/ESPEasy/releases
+
avatar
  • newcss
  • 21 ноября 2021, 23:46
0
Для EspEasy придется еще обвязку в виде контроллера умного дома делать).
А тут в одном устройстве…
Но при EspEasy там возможностей в разы больше будет)
+
avatar
0
Не надо контроллер там есть правила
На основе правил все и даже больше можно реализовать
то что предлагает автор.
Я с EspEasy уже давно 17 устройств работаю
на осное ESP уже 4 год + мажордом
+
avatar
+1
На мой взгляд (подтверждённый практикой), подобные устройства (большинство) приобретают практический смысл после подключения к алисе (или подобным). Вот полная и развёрнутая инструкция по сопряжению есп и Алисы (через того же кузю), была бы весьма интересна.
+
avatar
0
Народ похоже молча и в штыки воспринимает всю эту новомодную Алисоманию.

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

Пока склоняюсь к изготовлению простенького «роутера» с IR на Wifi (BT) принимающего команды от «умного пульта» и отправляющего их дальше девайсам в домашней сети. Тогда никакого «Кузи» не понадобится и опять таки безопасность повысится. Но опять таки не понятно как отдавать назад состояние.
+
avatar
  • ACE
  • 22 ноября 2021, 12:09
+1
Я пару раз уже спрашивал в разных местах, а не завалялась ли где прошивка позволяющая нативно цеплять самопальный девайс на esp к алисе
Я изучал тему, как я понял, всё не просто. Во-первых, сделать что-то, работающее в локальной сети, невозможно в принципе. Любой навык — уже веб-служба. А если ещё и управляет устройством — вообще куча требований, в т.ч. надо устройство отправлять в яндекс на тестирование, продаваться на я.маркете и т.п. И без всего этого, видимо, никак.
yandex.ru/dev/dialogs/smart-home/doc/certification.html
+
avatar
0
Я имел виду целый сонм «умных» розеток, и лампочек продающихся на али. Врядли они согласовывали свои девайсы с Яндексом, тем не менее они работают с ней без проблем, некоторые даже «напрямую» без вендорского «навыка». Внутри у них esp8266. Хотелось бы поиметь прошивку которую можно прошить в любую произвольную esp8266 и получить аналогичный девайс.
+
avatar
  • ACE
  • 22 ноября 2021, 14:59
+1
Всё что я видел — это всё работает через какой-нибудь Mi Home, для которого есть навык. Через сторонний сервис. Но не напрямую. Например реле и розетки от Sonoff. Они привязываются к своему облаку eWeLink, тот подключается в MiHome, а оно уже к яндексу. Или вариант HomeKit — HomeBridge — MQTT. Но никак не напрямую. И нагуглить я ничего такого не смог.
+
avatar
+1
Ну вот например эти розетки (фига-се подорожали, я их недавно за ~700 руб брал)
https://aliexpress.ru/item/item/33005918303.html Работают с Алисой напрямую без навыка.

Отдельная тема — «умный» пульт. Он обучается IR командам от любого произвольного пульта, а затем выплевывает выученные комбинации по голосовой команде. Нужно спаять либо мост IR-> «полоумное» локальное © WiFi или к распаянной в пульте esp8266 допаять еще одну которая будет раздавать команды не только по IR но и по локальному WiFi (BT, rf433) вообще без облаков.
+
avatar
  • ACE
  • 22 ноября 2021, 15:27
+1
Благодарю за ссылку. Судя по вот этому списку яндекс сам включил поддержку некоторых устройств, в данном случае из экосистемы Tuya. Вот тут есть список устройств, которые поддерживает яндекс, они продаются в том числе на их маркете. Т.е. всё равно нужна поддержка со стороны яндекса.
Другой вопрос, насколько сложно кастомной прошивке прикинуться устройством от Tuya, например, такой вот розеткой. Надо искать.
+
avatar
  • Shaman2
  • 21 ноября 2021, 19:12
0
Посоветуйте проверенные временем rf433 передатчик и приемник. Чтобы нормально работали в пределах квартиры и которые без проблем стыкуются с esp. (в данном случае есть esp32-wroom)
С прошивкой сам разберусь
+
avatar
+1
Лучше nrf24. Он стабильнее, и уже в цифре.
+
avatar
  • Shaman2
  • 21 ноября 2021, 23:06
0
а можно ссылку? а то на али ищется не то что надо
+
avatar
+1
5 штук за $3.19 — тыц
+
avatar
  • sav1812
  • 22 ноября 2021, 05:32
0
$3.91 с пересылкой… :)
+
avatar
  • Shaman2
  • 24 ноября 2021, 21:26
0
Так он же не rf433, а 2,4гГц
+
avatar
0
А что передавать? Может блюпуп? он в есп32 уже искаропки
+
avatar
  • Shaman2
  • 21 ноября 2021, 23:05
0
rf433 сигнал. Вместо радиобрелка и некоторых датчиков
+
avatar
0
это «чем». а спрашивал передавать ли фиксированые команды, или обмен типа юарта и с каким потоком/скоростью…
от этого может зависеть что из железа моста интереснее и больше подходит.
просто уточнил.
+
avatar
  • Shaman2
  • 24 ноября 2021, 21:28
0
Просто я сосканил статические коды с некоторых радиовыключателей на 433мГц, вот и хочется послать сигнал вместо такого віключателя. Ну или наоборот принять с него сигнал для дальшейшей обработки на стороне esp. Не выкидывать же эти датчики-выключатели
+
avatar
0
а, о. тогда вам nrf24 не подойдет. они на 2.4гГц

вам тогда сюда — mysku.ru/blog/aliexpress/46221.html
+
avatar
  • bampr
  • 22 ноября 2021, 12:37
0
меня вот интересует подобное изделие в части подключения к нему ключей для управления например гусеничным шасси детского танка )
чтоб можно было управлять им со смартфона, и видеть через камеру )
кто что видел подобное, поделитесь плиз )
+
avatar
  • Aahz
  • 22 ноября 2021, 14:04
+2
Ищем по «esp32 cam car»
Плату esp32 вместе с камерой можно взять меньше $5 на али.
Навскидку:
dronebotworkshop.com/esp32cam-robot-car/
+
avatar
  • VlaoMao
  • 22 ноября 2021, 12:45
+2
Нет уж, спасибо. Кушайте сами. Непонятно зачем обзор выкладывали.
+
avatar
0
Уважаемый автор, а не подскажете, можно ли использовать такую микросхему ESP8266MOD?
А то я что-то не могу нагуглить сравнительную таблицу между всеми вариантами ESP.
+
avatar
0
Это которая esp-12 называется? Да можете, но нужна объвязка — пару резисторв и конденсатор.
+
avatar
0
Вроде бы да, ESP-12F, см. заказ, но на самой микросхеме такой надписи нет:

А чем они вообще отличаются E, S и т.п. размером флешки?

А вообще мне реле не нужно, просто интересно точно температуру мерять. Я как раз на последней распродаже купил датчик ATH21…
+
avatar
  • Aostspb
  • 23 ноября 2021, 11:43
0
А чем они вообще отличаются E, S и т.п.
E от F — отличается только геометрией антенны на печатной плате.
+
avatar
  • ACE
  • 23 ноября 2021, 13:14
+1
ESP-XX — это модули от фирмы Ai-Thinker. Под крышкой чипы esp8266 и флэш-памяти. Требуют нескольких внешних резисторов для того, чтобы правильно загрузиться при старте. Память обычно зависит от цифр, на модули ESP-01 ставят 0.5 или 1 МБайт флэш, на -07 — 1МБ, на -12 — 4МБ. Хотя при желании, отпаяв крышку, можно на любой модуль впаять флэш любого поддерживаемого esp8266 размера. У ESP-12 (без буквы) изначально были контакты только с двух противоположных сторон. Потом появились вариации с буквами E и F — добавился третий ряд контактов. Про отличие E и F уже сказали, по сути они равнозначны.
+
avatar
  • Sanja
  • 24 ноября 2021, 13:08
0
Автор странный.

Вот есть же прекрасный проект github.com/maximkulkin/esp-homekit от нашего соотечественника. Открытый, вылизанный.

Используется в продакшене кучей народу, в т.ч. китайцами, которые на нём делают классные штуки типа этой:



(эта штучка прячется за существующим выключателем в подрозетнике и превращает его в «умный», управляемый с iPhone)

В результате все рады — автор тешит свою программистскую жилку, зарабатывает известность, ему есть, что показать рекрутёрам — а потребители получают дешёвое китайское железо с написанным европейцем кодом.
+
avatar
+2
да я странный — у меня нет iPhone

за ссылку спасибо.
+
avatar
  • Sanja
  • 26 ноября 2021, 18:36
-1
для владельцев Android то же самое железо идёт уже прошитым под работу с Assistant/Alexa, Али полон ими. Работают безупречно, шьются по OTA.

Открытые проекты лучше всякой проприетарщины.
+
avatar
0
С алексой работает напрямую (подключил к wifi без всяких приложений, вошёл в настройки акаунта алексы и они уже там видны)? или нужно привязывать через приложение прокладку tuya?
+
avatar
  • Gudrun
  • 28 ноября 2021, 22:49
0
Странно. Видишь полную инструкцию как сделать нужную вещь быстро и дешево, заходишь в комментарии — а там все обсуждают закрытость исходного кода. Люди перед покупкой хлеба, вероятно, ищут информацию о печах и тестомесах.
Я понимаю, если бы это выложено было на форуме программистов. Но это, как я понимаю, для самодельщиков. А я давно хотел такую штуку, но мне не нравятся девайсы, которые работают через Пекин. Знаю, что некоторые из них можно было перешить, но посмотрел методику — желание отпало возиться. Это было несколько лет назад, может сейчас уже по другому, но для меня критерий простой: чтобы девайс работал локально и чтобы довести его до ума было просто.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.