Комментарии 115
И железо нормальное и сеть интегрирована
Вы поймите одну маленькую вещь. Пока вы будете строить такой проект как умный дом, многое уже может морально устареть, сейчас каждый день выходят новые модули в 100 раз лучше чем были вчера, будете каждый день хвататься за новое и переделывать уже сделанное, никогда ничего не сделаете до конца вообще.
Лучше уже довести свои задумки пусть и со старыми технологиями до конца, а уже потом начать по новой всё обновлять, постепенно, не ломая работу старого, при этом у вас уже будет рабочий умный дом.
Точно? Вот nRF52 уже лет 5 на рынке и пока они одни из лучших и как-то не очень популярность теряют.
А AVR-ам 25 лет, и я их начал изучать когда ваши nRF даже никто создавать не панировал.
Не вижу смысла изучать их, чтобы делать только лишь устройства для умного дома.
Лучше буду использовать то, что уже знаю.
Если выходит что-то новое, разве это означает, что нужно использовать что-то, что устарело много лет назад?
В подрозетник должно вмещаться, я тут плохо вижу размеры. Много пустого места на плате. Видимо, габариты не важны. Там в круг надо вписаться.
Кто к чему привык, короче говоря (ESP/AVR/NFR/ etc)
ПОЛНОСТЬЮ СОГЛАСЕН! Всё остальное действительно религия и тараканы каждого.
Пожалуй это единственный умный комментарий из всех :( все остальные в силу разных причин пытаются навязывать каждому что-то своё.
1) понадобится ли такое огромное количество GPIO для IoT устройства?
2) где такое же (или хотя бы половина) контактов на землю\питание? удобно\универсально ли подключать периферию?
3) не многовато ли пустого места на плате?
4) программатор с 6 пинами. уже такие на aliexpress, не с 10ю?
5) можете для себя ответить на вопрос, а чем эта плата будет лучше esp32 d1 mini (сейчас ~280 руб.). WiFi у них (и esp8266) куда стабильнее и дальнобойнее (и хотя бы имеет хоть какое-то шифрование), чем у используемой вами nrf (к которой я бы ещё конденсатор припаял), а для километровых дистанций NRF24L01+PA+LNA или см. LoRa.
1) понадобится ли такое огромное количество GPIO для IoT устройства?
Даже если не понадобится то и что? Это всё равно что вам говорят вот выбирайте за ваши 5 тыщ баксов или жигули, или ауди, вы такой, а понадобится мне ехать со скоростью 280 км/ч нет, и берёте жигули. По моему это просто не разумно.
2) где такое же (или хотя бы половина) контактов на землю\питание? удобно\универсально ли подключать периферию?
Тут соглашусь, но всё решаемо!
3) не многовато ли пустого места на плате?
Это же не портативные устройства чтобы за каждый миллиметр бороться.
4) программатор с 6 пинами. уже такие на aliexpress, не с 10ю?
Я начинал ещё тогда, когда на алишке таких программаторов и в помине не было, у меня свой самодельный, им и программирую.
5) можете для себя ответить на вопрос, а чем эта плата будет лучше esp32
Смотрите ответ на 4 вопрос, нет времени разбираться в новых модулях, лучше делать и писать на том, что уже знаешь, иначе ничего не сделаешь. Завтра могут выпустить новую плату за 10 баксов с производительностью как у ноута, а ещё через неделю в 2 раза мощнейшую. Каждую неделю будете свои устройства переделывать под новое?
Тогда вы можете в погоне за передовым угодить в яму, когда до релиза дело вообще не дойдёт.
3) Ну ок. А где же тогда 4ый винт в месте концентрации большей части GPIO, собственно этот угол и будет испытывать максимальное давление :) тем более там разъём программатора.
4) а о людях думать не надо?
5) да! я тоже начинал с AVRок и после появления ESP8266 забыл о них для домашней автоматизации как страшный сон. Наличие WiFi позволяет настраивать устройства на месте вообще без компьютеров и одна прошивка может иметь одновременно кучу функционала (и управление реле в том числе через сдвиговые регистры и сбор показаний датчиков и обеcпечение работы mesh сети).
4) а о людях думать не надо?
Так я же не на продажу делаю, для себя, я никому не собираюсь это продавать, выдавать за идеальную плату и навязывать её всем и каждому. Просто выложил свои наработки, кто-то зашёл, посмотрел, что-то подчерпнул, остальное посчитал го… ном, ЭТО НОРМАЛЬНО. Я и сам иногда со статьи беру лишь малую часть какой-нибудь идеи. И ЭТО УЖЕ ХОРОШО, значит не зря автор писал.
3) Ну ок. А где же тогда 4ый винт в месте концентрации большей части GPIO, собственно этот угол и будет испытывать максимальное давление :) тем более там разъём программатора.
Вот так всегда, ни понос, так золотуха :)
Ну да, СОГЛАСЕН, ПРИЗНАЮ, не хватило места для болтика одного. Ну во-первых, я планирую сначала прошивать, а уже потом устанавливать. Так что программироваться плата будет сразу, и только потом вставляться куда следует.
Даже если потом со временем я захочу подшаманить прошивочку, то уже как-нибудь 1 раз аккуратно тыркану программатор, это же всё таки текстолит, а не картонка. Пальчиком или изогнутым пинцетом придержу чтобы плата не прогибалась и подключу программатор, не раздувайте из мухи слона. Нашли что пришить :)
1) И, к сожалению, вы взяли медленное (по CPU) жигули.
Для обычных устройств 128 мега более чем достаточно, во всяком случае для меня.
Для главного устройства, ещё подумаю.
Отсутствие проводов это тоже огромный плюс.
Для меня это минус, минус в надёжности, беспроводная сеть может пропадать, даже вот роутер в квартире, нет-нет да и пару раз в год приходится физически перегружать, ну и нафига мне такое нужно.
А вот с сетью на ADM488 ничего перезагружать не надо будет, там всё низкоуровневое и ломаться просто нечему.
Не изобретайте велосипед. Возьмите для главного модуля одноплатник типа распберри.
Над этим можно подумать.
Сколько мой двор по длинне сказать трудно, я пока метром не мерял. Но что-то в районе 30-50 метров где-то. А что, какие-то проблемы намечаются? Буду рад если расскажете!
Хотя я уже тестировал эти модули с длинной проводов 15-20 метров, всё было идеально.
внешний проводной интерфейс всегда следует гальванически развязывать от управляющей схемы.
а еще, видимо, плата выполнена в таком виде что ее не поставить в корпус. правильнее было бы подобрать коробку и под ее размеры делать плату. наружу вывести разъем или клемник по краю.
ДА ЛАДНО? Размеры моей платы примерно 8 на 8 сантиметров, как минимум коробочки есть в 2 раза больше, для 4 таких плат как у меня! Ну и собственно кто вам сказал что я буду их размещать в таких коробочках? Сами придумали что я зачем-то должен использовать именно такие коробочки и что в них платы не влезут, а потом начали критиковать, ну вы молодец конечно.
Для меня это минус, минус в надёжности, беспроводная сеть может пропадать,
С длинными проводами проблем больше чем с радиоканалом. Разводка вашей платы не выглядит особо надёжной. Не вижу правильной земли. Ещё посмотрите схемотехнику промышленных устройств с RS485, там не просто 2 проводка от микросхемы до разъема. NRF24L01 так себе решение для умного дома, особенно китайский вариант. В пределах комнаты работает. Если квартира или дом или хотя бы одна стена по пути то не факт что везде будет работать. На улице 50 метров надёжная связь, а дальше как повезёт. Перемещение модуля в пространстве на 15 см может привести к полной потере связи.
А для периферийных модулей маленький размер важнее
Для меня нет! Не надо обобщать. У всех разные критерии. У меня места в доме полно под модули. Так что для вас размер важный аргумент, а для меня нет, и это нормально, не надо всех грести под одну гребёнку, типа если мне не подходит, то и тебе не должно подходить :)
Но есть и специальные обжимники, чтобы этими дюпонами обжимать тоненький многожильный провод, вот такой:
1) Периферия дико старая и требует уровни в 5 вольт.
2) Надо минимальный размер при требовании ручного монтажа (но тут вылезает attiny13a) — 8 ног у soic таракана это идеально и паябельно чем угодно
3) Этих самых AVR в коробке валяется туча
4) Мы делаем девайсину с тиражем в 10000шт (и то, надо оценить, как сэкономить и не прогадать в надёжности, может надо таки будет откатиться на тиньку)
Во всех остальных случаях проще изначально в проект вставить что-то на Cortex-M0 в случае нормальной разработки, а в случае ардуино — сразу перейти на esp и компанию.
Да и сотни WiFi устройств — тот еще геморняк, особенно после отключения электричества )))
Никто WiFiMesh не пробовал вживую поднимать?
Добавлю ещё пару пунктов, когда лучше использовать 8 бит.
- нужна максимальная надёжность железа, в том числе eeprom, ram и flash с прошивкой на одном кристалле,
- нужен расширенный тепловой диапазон, в том числе при продолжительной работе (это корпуса qfn с термопадом),
- нужна максимальная надёжность прошивки (8 бит реально «вылизать» так, чтобы прошивка работала вечно),
- нужна устойчивость контроллера к разным электрическим неприятностям, как по питанию, так и по входам-выходам.
Многим не понравилось что свой диммер я делаю на базе микроконтроллера ATmega128. Поэтому хочу объяснить, почему используется именно этот микроконтроллерБлин! Ожидал обоснование, почему всего лишь Mega, а не навороченный STM. А тут — почему Mega128, а не Mega8…
Все чипы на ваших иллюстрациях в статье — подделка. Оригинальная ATMega2561 стоит около девяти долларов в партиях от 260 штук.
В этом можно легко убедиться, растворив корпус вашей и оригинальной микросхем.
Я бы не стал поддельным чипам автоматику доверять, как бы чего не вышло.
Я бы не стал поддельным чипам автоматику доверять, как бы чего не вышло.
Допустим глюканул мой термостат или регулятор яркости, или термометр, или ещё что-то. Ну и что? Куплю и впаяю оригинальные, а эти повыбрасываю. Буду знать что это барахло. Но пока всё работает за копейки и сбоев в работе не обнаружено! Жизненно важные устройства я и не делаю. Даже оригинальная электроника ломается и никто к ним многомиллионые иски не подаёт, когда вдруг телик самсунга сломался или микроволновка LG не работает. В лучшем случае вам заменят по гарантии, в худшем, после истечения пары лет, будете ремонтировать за свои деньги, ХОТЯ ТАМ СТОЯТ оригинальные детали.
Хотя конечно я не призываю использовать неоригинальное, просто лишь хочу сказать что вы прямо так сильно всё утрируете. Как будто от моего устройства зависит ваша жизнь и жизнь всего человечества.
Я написал это предупреждение, так как мы занимаемся серийным производством устройств автоматики для умного дома, в том числе на базе таких же чипов. И сталкивались с подделками разного качества.
Представьте, например, что у вас тёплый пол не выключится вовремя и сгорит (а может и загореться). Или автоматика отопления перегреет воду и пластиковые трубы «потекут». Ущерб будет на несколько порядков выше разницы цены оригинальной микросхемы и подделки.
P.S. Я один из разработчиков устройств MegaD.
Было бы интересно.
А сколько они раньше стоили, до того как Микрочип поняли, что их только любители покупают? Ибо stm32f411, который на black pill, стоит вдвое дешевле 2561.
Тонкая Errata у древних AVR, возьми какую-нибудь новую тиньку, типа tiny212 и там для последней ревизии чипов в Errata 21 пункт. Для сравнения у таких же новых STM32G0 — 33, у STM32H750 — 45. А если у этого H750 не использовать Ethernet/CEC/SDMMC/FDCAN/QUADSPI, которых у AVR все равно нет, то остается 23...
Разница тут в самом подходе. Производительность и фичи стм32 помноженные на доступность — впечатляют, и позволяют то что раньше было сделать не на чем. Только реализовано многое халтурно и по-дурацки… У авр-ок наоборот — всё простенькое, но реализовано так добротно как это вообще возможно. И вот второй подход мне по душе куда больше. А с другой стороны, многое из функционала авр-ок никто больше предложить и не может. Скажем, любая авр-ка с TWI умеет выходить из полной спячки по совпадению адреса I2C. У стм32 это продвинутая фича, для которой надо брать F4+, лол (да и сам I2C какой-то уродский «для сброса флага запишите SR1 затем прочитайте SR2»). Тот же дифференциальный режим АЦП (не всем девайсам нужны 480 МГц и XGA-дисплей, девайсы вида «вход термопары, 3 семисегментника и релюшка» тоже на чём-то надо делать). Ещё легко реализовать шим в 4 такта:
ld r16,x+ / cmp r17,r16 / rol r18
ld r16,x+ / cmp r17,r16 / rol r18
...
Ещё и выдавая параллельно с этим предыдущий байт в 595-е через SPI.
Или вот протокол WS2812 недавно писал — на 4 канала одновременно, с чтением данных из внешней SPI SRAM. Далеко не всё можно провернуть на Си, а ассемблер у армов сильно заточен под компиляцию, писать на нём что-то вручную я даже не пытаюсь.
I2C работает в режиме Stop даже на простых сериях типа F0/L0/G0. Не работает в Standby, но L0 в Stop потребляет меньше 1uA. У современного 8-ми ногого G0 целых 9 таймеров, у трех из них 4-х канальный ШИМ, один таймер может работать на удвоенной частоте(128 Mhz) и гонится вместе с мк более чем в 2 раза, сложно представить ситуацию когда бы для STM32 пришлось делать ШИМ ногодрыгом… Но при желании можно, причем на некоторых сериях быстрее даже в тактах, не считая намного большие частоты, а на любых кроме M0+ можно выводить в порты при помощи DMA, хоть 16 бит сразу и также начиная от 4-х тактов. И для WS2812 подходит, хотя обычно используют DMA + ШИМ, при этом мк 98% времени будет простаивать, а типичный подход для AVR — это блокирующая передача при помощи SPI. Опять же когда много RAM, то и подключать SPI SRAM нет никакого смысла, я разве что 8МБ PSRAM подключал к QUADSPI, причем в новых сериях все разруливается автоматически и к внешней RAM можно обращаться как ко встроенной. На ассме тоже пишу в самом крайнем случае, начиная со стартапа все на C++ и тут AVR также подкачал, потому как многие хедеры для современного C++ в GCC просто отсутствуют. В итоге практически единственное преимущество AVR — это простота :)
Проблемы использовать какой нибудь F401/410/411 вообще не вижу, они по 2$ стоят, а на алишке вроде и дешевле.
Вы не видите, а они есть, если человек их вообще не знает.
Что ни говори, а AVR самые простые в изучении были, да и остаются наверное, ардуина это тоже AVR. Всё остальное уже посложнее.
К тому же порог вхождения сейчас реально нулевой из-за того же HAL
на той неделе общался с погромистом, пришел программу в устройстве переписывать. для начала надо было померять входные напряжения и ток, на ножках мк, худо бедно справился, а перевести в показания на клемнике, до делителя на резисторах, уже не смог. так что нулевой уровень это не есть хорошо.
можно вообще не открывать даташит и за 15 минут с нуля собрать проект
А если что-то пойдет не так, потом потратить пару лет на чтение даташита?)
Проблемы использовать какой нибудь F401/410/411 вообще не вижуХм… Юзал я I2C и на F1, и на F4, и он там абсолютно одинаковый дурацкий, с дикой кучей каких-то флажков, которые нужно все проверять и сбрасывать в в духе «три раза подпрынгнуть на левой ноге и похлопать в ладоши». После удобнейшего модуля AVR, с аппаратным автоматом состояний, просто вызывающим из юзеркода нужные хендлеры — плеваться хотелось (впрочем, неправильно называть его «модулем AVR», такой же точно модуль и у NXP и видимо тянется ещё от создания I2C филлипсом, ещё до AVR).
Можно пример того, что нельзя сделать на С? Желательно парочку примеров.Хм… так я и привёл именно парочку с шим и ws2812. Мне тут, правда, объяснили, шим можно сделать многочисленными таймерами стм32, как будто я не знаю (в паре девайсов, куда я ставил стм32, как раз нужно было по 16 каналов скоростного шима). Я имел в виду немного другой случай — а именно, контроллер может до 256 каналов вывода, каждый из которых может работать как шим (а ещё, кстати, передавать данные по асинхронному протоколу). Причём там хитрый шим, с реверсом битов счётчика, благодаря чему достигается максимально возможная эффективная частота. Обновляется всё каждые 320 мкс, в неблокирущем прерывании, не мешая RS-485 и прочим приоритетным задачам. Вот для таких случаев асм и нужен. Тем более что у AVR очень приятный асм, особенно если юзать свои макросы.
чтобы не пытаться дебажить real-time через printf
Лучший отладчик! Какой контроллер ни возьми, на каком бы языке не писал, если умеешь отлаживать через принтф, то отладишь всё и всегда.
МНЕ ВСЁ РАВНО!
Почему я бы смотрел в сторону esp, все говорят, что wifi не надёжный, но он лучше всего мониториться и кастомизируется. Если хочешь проверить насколько захламлён вайфай, просто поставь на телефон wifi analizer. Если хочешь мониторить устройства, просто пингом и любым мониторингом следишь за устройствами.
А смысл под атмегу свою плату разводить ради единичного проекта? Не проще взять ардуинину, и если уж не по душе их среда разработки (согласен, косяк на косяке) — прибить загрузчик и заливать через jtag точно так же как свою плату.
На базе этой платы будут делаться все мои устройства.После первого же устройства, надеюсь, придет понимание, что можно было бы улучшить. Вот только дальше два пути — мыши плакали, кололись, но… или «все» будет пересмотрено.
Как что ни делай, всегда потом можно сделать ещё лучше! Это прописная истина.
p.s. Всё-таки мыши…
Нет, я никогда не буду на даче развёртывать вайфай сеть! Лучше проложу провода.
Но и вас я отговаривать не буду, делайте как считаете нужным! Мне в отличии от некоторых всё равно что вы используете, ГЛАВНОЕ ЧТОБЫ РАБОТАЛО СТАБИЛЬНО!
Вот если сделаете стабильно, хоть на транзисторах, вот тогда вы молодец! А что вы использовали, ДО ЛАМПОЧКИ, главное чтобы надёжно работало!
С зависанием роутера я то же решил проблему, на роутер установил openWRT и написал задачу по cron. Изначально был перезапуск каждую ночь, потом сделал скрипт анализирующий состояние подключения и пр… который так же перезапускает роутер. Зимой на дом практически не езжу, и еще не приходилось перезапускать роутер по причине зависания… Может просто повезло… А, так же реализовал vpn канал до сервера и квартиры.
Вот собственно и всё. Может кто-то подчерпнёт какие-нибудь полезные идеи и для себя.
Вам многие комментаторы указали, что идеи и реализация уже устарели лет на 10-15.
К счастью, прогресс не стоит на месте! Познавать новое и учиться — увлекательнейшее занятие. Дорогу новым идеям и технологиям!
Мимопроходил. Как по мне — так не следует расходовать частотный ресурс WiFi на сраные десятки байт домавтоматики. Мало ли когда понадобится вся пропускная способность? Либо медь (по которой можно и 12..24 В питания пустить, поставив на каждой плате понижайку с переходом в PFM на малых нагрузках), либо 868 МГц и т.п. "не WiFi".
И по сути:
- Не вижу 5-й провод (GND) на разъёме сети RS-485. См. синфазный диапазон приёмников.
- Не вижу защиты на сигнальных линиях RS-485. См. "как все делают".
Не вижу защиты на сигнальных линиях RS-485. См. «как все делают».
Возможно эта платка с ADM488 будет переделываться и там будет стоять микросхема для гальванической развязки, например ADuM1201.
Не вижу 5-й провод (GND) на разъёме сети RS-485. См. синфазный диапазон приёмников.
По даташиту мона одну витую пару пускать
и общим проводом не соединять устройства, но спасибо за совет, если что пущу и его.
Пока тестировал с 20 метровым проводом витой пары, всё было хорошо и так.
для этого есть 5g
Представьте себе ситуацию, когда у вас сорок групп света и ещё тридцать автоматики, плюс по мелочи пара десятков исполнительных устройств (это не самый крупный проект частного дома).
Или даже небольшая квартира и штук 20 ESP или чего-то подобного.
И вот неожиданно происходит короткий перебой в электроэнергии. Всё перезагружается и пытается одновременно войти в сеть и затем достучаться до сервера. Роутер ложится, всё встало. Дома одна бабушка, вы в командировке на Северном полюсе. Занавес.
Всё перезагружается и пытается одновременно войти в сеть и затем достучаться до сервера.До сервера, обрабатывающего сотни\тысячи запросов в секунду. Как-нибудь штук 20-30 ESP переживёт и не заметит.
Роутер ложится, всё встало.Почему он должен ложиться? Из-за одновременного коннекта кучи устройств? Не происходит такого, даже древний WL-520GU (от 100 до 1000 руб. на авито) прекрасно живёт с 30 устройствами. Выключить и снова включить может бабушка. А так же железный watchdog, ничего страшного если он будет перезагружать его раз в сутки. И чем роутер хуже контроллера умного дома? Ваше устройство настолько безупречно, что не может лечь? (p.s. свой ESP32 контроллер посмотрел, аптайм 1.5 года уже без обновления прошивки, весь его функционал сохранять события от устройств, передавать журналы на сервер и команды с сервера\мобильника как раз без работающего wifi — другие ESP8266 соединяются с точкой доступа, если нет интернета или точки доступа, то с прокси-контроллером). Заметим, что роутер заменить меньшая проблема (т.к подойдет вообще любой, поставили то же имя сети и пароль — и ОК), чем самодельный контроллер.
Возможно, дело было в прошивках, но я лично был свидетелем описанной ситуации.
И дело не в наших устройствах, а в очевидных преимуществах проводной автоматизации в сравнении с беспроводной, особенно не имеющей mesh и автономной схемы работы.
Если у вас «пара сигналов», то ладно. Хотя не вижу простого способа послать сигнал по GPRS умному дому. У меня опросы климат-контроля, например, куда чаще — минимум раз в минуту, чтобы была комфортная температура.
Вот его точно перезагружать надо
Ну это только одно устройство, а не куча разных устройств которые в случае отключения напряжения или пропадания сигнала, должны потом подключаться к умному дому заново.
У меня умный дом будет интенсивно посылать команды на сервер только когда я зайду на веб страницу умного дома, тогда да, команды будут идти каждую секунду чтобы видеть состояние дома (и то, только того устройства, на странице которого я нахожусь, а не все возможные данные) почти в режиме реального времени. Но как только я выхожу со страницы, всё, умный дом не будет интенсивно посылать данные, потому что незачем, я их всё равно не просматриваю уже, только парочка очень важных команд будет идти постоянно, вроде состояния сигнализации и аналогичные :)
Так что sim900 мне вполне хватит.
Послали умному дому команду что он должен делать, умный дом дал команду термостату и всё. Термостат в умном доме дальше сам должен знать как её поддерживать, какие устройства включать и что делать. Зачем вам мониторить ежесекундно какая там температура.
Захотели узнать какая температура, послали умному дому команду на получение температуры, он ответил и всё.
Захотели узнать какая температура послали умному дому команду на получение температуры он ответил и всё.Так в каждом помещении своя, у меня на 10 комнат более 200 датчиков (а ещё баня, парники, гараж...). Зато реально добился того, что отклонение меньше ± 0.7 градуса и минимум расхода газа (вот для этого как раз и нужен прогноз погоды, чтобы знать, что топить сильно не надо, температура не опустится; или наоборот, начинаем топить заранее, за 3 часа упадет с -15 до -30).
Так что если вы делаете универсальную плату, то гребёнка лучше решение. Но это сугубо моё мнение и мне так проще. Если кому-то проще по другому, то пусть делают по другому.
Думаю что универсальной платы для всех сделать просто не возможно. От того сейчас и есть такой зоопарк вроде: ладе панд, ардуин, разбери и прочих, а их там наверное ещё пару десятков менее популярных платформ. Кому что больше нравится, то то и использует, главное сделать рабочее устройство.
Универсальные платы для умного дома на базе микроконтроллера ATmega128 (ATmega2561)