Перейти до публікації
Пошук в
  • Додатково...
Шукати результати, які містять...
Шукати результати в...

ARDUINO - общая тема обсуждения различных домашних девайсов на ARDUINO

Diver

Рекомендовані повідомлення

Можна много язвить в теме, но вот неплохой и проверенный сайт:

homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi

По етому сайту уже зделано несколько термометров,

все работает и прекрасно есть больше функционал но платно.

[/url]

 

Добавлено через 24 минуты

house4u.com.ua/

Тоже неплохой сайт

Посилання на коментар
Поділитися на інших сайтах

Нашел магазин производителя - есть любые корпуса, даже на DIN рейку

www.aliexpress.com/store/505449

Сам пока не определился что брать - глаза разбегаются....:o

Посилання на коментар
Поділитися на інших сайтах

Держите еще парочку.

www.aliexpress.com/store/1006252

www.aliexpress.com/store/316973

 

Фактически там то же самое (за небольшим исключением), но цены могут отличаться (периодически есть небольшие скидки).

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Ну сарказм я бы по умерил. Собрать схемное решение на модулях особых трудностей не вызывает. Больше всего времени отнимает именно процесс отладки программы, с дальнейшим выявлением багов. ТС собственно довольно далеко, и результативно, продвинулся вперёд. Но просто подарить свой труд не спешит, и я его понимаю. На форумах так же вы не встретите конкретных решений именно под ваши задачи. Есть куски, из которых можно собрать то что вам нужно. Либо сидеть и придумывать алгоритмы с нуля.

PS: вот рекомендую electromost.com/, правда автор пишет на Асемблере для PIC. Сам собирал для себя несколько устройств автора, всё ОК. Изначальная позиция автора - всё доступно и бесплатно для всех. Так же присутствуют архивы с печатками и прошивками.

 

Как все сложно.... :-)

Давайте попробуем развенчать мифы.

Поехали:

1. ESP8266 - вожделенная мечта многих - полноценный WiFi.

Есть разные модификации, 01, 03, 07, 12, 13, 14. На борту - процессор, по командам схожий на 8051, flash с 512 - 1024 килобайта памяти. Антенна, в некоторых моделях светодиод, в общем полный набор.

 

2. Как включить ?

В интернете валом схем,- можно выбирать, но учитывая разнообразие моделей, нужно все-таки понимать что вы делаете. Питания, даже имени FTDI недостаточно, нужен дополнительный стабилизированный источник 2.9 - 3.3V, который вклюбчается совместно с FTDI или СР340.

 

3. Ой, а я боюсь что сгорит ...

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

Думаю что точно сгорит если запитать от 5В (или подать на управляющие входы). Диапазон 2.9 - 3.6V. Меньше напряжение - меньше греемься, но и радиус уверенной зоны приема при этом уменьшается.

 

4. Выбор модели.

1, 3 модели обладают некоей глючностью, выражающейся в том, что иногда теряется connect, и происходят перезагрузки. Лечится тяжело, в зависимости от модели и партии. Я по финалу остановился на 12й модели, которая имеет на борту "чистых и незадействованных" 7 GPIO, ADC, и мегабайт flash, который впаян совместно с кристаллом под экранирующим металлическим корпусом. При некотором усердии, можно "откусить" GPIO2 и GPIO0, но это достаточно морочливо. В конце концов, 7 портов хватит как для клавиатуры, так и для управления 1-2 светильниками, или аналогичными нагрузками.

 

5. "чем" программировать

Arduino, или любой другой приемлимый инструментарий. Keil к сожалению не заработает, уточнял у производителя. IAR тоже. Можно воспользоваться Visual Micro и Microsoft VC 12 или выше. В конце концов, вам от Arduino нужен только toolchain. Для ленивых. Неленивые способны сами.

 

6. На чем программировать.

C/C++. Можете на ассемблере, но это будет достаточно трудоемкий процесс. Примеров валом, например github:

github.com/esp8266/Arduino/blob/master/doc/libraries.md

Не знаете C ? Извините пожалуйта, но тогда действительно Эпицентр или aliexpress. Вариантов нет. lua и прочее "приближение к массовой аудитории" думаю ваших вопросов не решит.

Посмотрите например на SimpleWebServer. Все просто, доступно, понятно, и повторить как мне кажется, не составляет никакого труда.

 

7. Стабильность работы.

1й и 3я модели - никакая. Только путем морочливого тюнинга, персонально для каждой партии. Перезагрузка приблизительно раз в 30 минут. Конечному пользователю это как правило незаметно, только если именно этот момент не совпадет с активностью пользователя, ну или крайне кратковременным миганием. Сама перезагрузка занимает менее 0.2c, так что обычное реле как правило сработать не успевает. Поиск и присоединение к сети может затянуться секунд на 10, но при грамотно написанном коде, это отразиться только на невозможности управления черз WiFi. С 7й моделью чуть полегче, но она крайне требовательна к питанию. При работе уже на 3.1V могут наблюдаться совершенно неожиданные "спецэффекты".

 

8. Нагрев.

7, 12 и 13я модели, я не смог нагреть выше приблизительно 50 градусов. Это кстати стоит учитывать (тепловыделение), если хотите устанавливать в кормус на DIN рейку,- там вентиляция никакая, да еще и соседние модули греют. Если хотите снизить нагрев, есть режим deep sleep, который правда "съедает" один GPIO. При таком режиме нагрев не превышает 40 градусов (температура тела, если верить моему пальцу, и простому пирометру с "лазерным прицелом", которым я пользовался).

 

9. Шара.

Ее нет. Те кто знают, или способны сделать что-либо дельное, вряд-ли будут выкладывать свои знания и кропотливый труд "за просто так". Как правило такое исполняют энтузиасты, которые путем экспериментов, проб и ошибок, медленно но уверенно делают железку все более доступной для массовой аудитории. Еще раз хочу напомнить, - минимальный порог входа - C/C++. C отладкой на этих платах есть определенные проблемы, так что методом "проб и ошибок" совсем без знаний, так просто решить поставленную задачу не получится.

 

10. Энергопотребление.

до 300mA в пиках (зависит от модели). Это стоит учитывать при выборе источника стабилизированного питания.

 

11. Как подключить реле ?

Через оптическую развязку, оптопару. Можно прямо от 220V, через ограничивающий резистор. Схемы можете нагуглить. Стоимость обвязки (4-5 элементов),- до 20 грн на текущий момент. Реле можно твердотельное, можно электромагнитное. Стоит совсем недорого. Если реле на 3.3, 5 и 12V. Потребление тока на 3.3 (для электромагнитного реле) самое "негуманное", так что лучше 12 или 5V.

 

12.Что будет в доме, если стоит 10 или более WiFi AP или клиентов.

Будет невесело. Для streaming applications придется использовать 5gHz. Диапазон 2.4 пудет слегка "подзабит". Не смертельно конечно, но уже критично для например, просмотра HD video "по воздуху". Это кстати обратная сторона медали, с которой большинство я думаю еще не столкнулось. ZigBee в этом плане выигрывает,- но что-то направление подзачахло.

 

13. Как состыковать с Arduino или STM.

UART или SPI. Оба варианта распрекраснийшим образом работают. Можно конечно придумать еще несколько способов, но я предложил, как мне кажется, наиболее распространенные и простые для понимания.

 

14. Что можно уместить в 1Mb flash памяти.

3 умных дома. :-)

Вместе с сигнализацией, управлением светом, котлами, измерителями температуры, влажности, и прочими удовольствиями. Основным ограничением тут будет оперативная память (память под переменные), которая как правило закончится гораздо быстрее, чем вы сумеете заполнить своим кодом flash.

 

15. Стоимость.

Менее 100 грн за кристалл. FTDI еще 50 - 80 грн. Блок питания 20 - 100 грн. Стоимость обвязки я упонинал выше. Пожалуй все.

Ну паяльник еще в общем-то не помешает, проводки там разные припой, желательно заниматься при "недрожащих руках",- оно там все мелкое и хрупкое. Лучше конечно с большой паяльной станцией и прочей аттрибутикой, но в общем можно и так.

 

Где-то так. Если у кого-либо возникнут вопросы,- постараюсь на них ответить.

  • Лайк 5
Посилання на коментар
Поділитися на інших сайтах

А собственно, что сложно?

 

1. Собрать схемное решение на модулях особых трудностей не вызывает

Вызывает.

 

2. Больше всего времени отнимает именно процесс отладки программы

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

 

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

Что именно нужно придумать "с нуля" ?

 

Давайте рассмотрим простой пример. Например "засунуть" WiFi контроллер в подрозетник. Вопрос зачем ? А типа "управлять". А как собсно управлять ? Что именно должно получиться в результате ?

Предположим есть желание сделать дистанционный выключатель. Это уже 2 WiFi модуля, либо один модуль, и домашний маршрутизатор, предполагая что 8266 будет работать в режиме Station/AP. Как Station соединяться с домовым маршрутизатором, получать IP адрес из вашей подсети, и обеспечивать некий (можно визуальный) интерфейс мониторинга и управления. Если захотите 2й, 3й, ..., то уже вначале нужно предусмотреть как они будут взаимодействовать друг с другом. Наиболее как мне кажется "общий" вариант использования, это собсно управление (включалка/выключалка реле), путем некого алгоритма зашитого внутри, а так же как результат внешнего воздействия (WEB интерфейс например). Может оказаться что дом большой, и какой-либо из WiFi "не дострелит" до домашнего маршрутизатора. Тогда можно организовать некую mesh network,- это когда WiFi точка пытается достучаться до ближайшей доступной такой-же точки, а та уже маршрутизирует дальше, и так до самого домашнего маршрутизатора.

А что должно происходить если пропало питание на одной из WiFi ? А на домашнем маршрутизаторе ? Вот все эти хотелки нужно как-то сложить вместе, можно даже нарисовать прототив WEB интерфейса, как вы его на данный момент представляете.

Когда нарисуется "картина мира", т.е. окончательный на данный момент вариант хотелок, можно попробовать оценить возможность физической реализации оных.

Например в подрозетник заведено только 2 провода, новый тянуть не хочется, хочется стать в разрыв. Ну Ок, можно и так. Потребление схемы в этом случае составит приблизительно 300mA по 5 вольтам (с обвязкой), или 1.5Wt. Вас это устроит ? Например светильники будут все время "в 1/10 часть накала". Можно импульсно, т.е. основной режим - до 50mA, а если событие - то тогда до 300. Тогда лампочки будет весело помигивать. Можно побороть ? Можно конечно, есть масса вариантов, реализация которых зависит например от типа установленных лампочек, и автоматики управления оными (диммер например). Или например с 10 люминисцентных ламп. Это достаточно серьезная индуктивная нагрузка, и нужно смотреть поместится ли реле нужного номинала в подрозетник.

Или например есть желание сохранять текущее состояние контакта, и восстанавливать при пропадании/появлении питания. А собсно где ? Да, га борту 8266 есть flash память, где эти самые значения можно хранить, но у flash есть ограничения на количество перезаписей, и сохранение состояние контакта в этой самой flash чревато скорой кончиной flash. Можно побороть ? Конечно. Какая-нибудь обобщенная SRAM на батарейке, толоько вот нужно ли ?

Да, 8266 можно поставить в режим WPA2, но вдруг захочется большего ?

TLS ? Да, можно. Access list с IP, с которых можно ? Не проблема. Дополнительный логин/пароль для мониторинга/конфигурирования ? Элементарно. Вот только после выяснения всех подобных деталей, имеет смысл садиться и что-то писать. Для любителей BDSM можно конечно и на ассемблере (у 8266 кстати RISC архитектура), но лучше все-таки на плюсах. Ассемблерные вставки уместны, но только там, где нельзя или проблематично решить стандартными средствами.

 

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

  • Лайк 2
Посилання на коментар
Поділитися на інших сайтах

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

1.

 

2. Больше всего времени отнимает именно процесс отладки программы

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

 

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

Что именно нужно придумать "с нуля" ?

 

Например ПРИДУМАТЬ схему диммера с радиоуправлением.

в такой схеме , НАПРИМЕР У Сименса, которая ставится в разрыв фазового провода стоит до 100 компонентов.

 

Отладка вместе схемы и программы - это тоже отдельный процесс.

Это не вай фай телефона коннектить к готовому вайфай модулю 8266.

Посилання на коментар
Поділитися на інших сайтах

Например ПРИДУМАТЬ схему диммера с радиоуправлением.

в такой схеме , НАПРИМЕР У Сименса, которая ставится в разрыв фазового провода стоит до 100 компонентов.

 

Отладка вместе схемы и программы - это тоже отдельный процесс.

Это не вай фай телефона коннектить к готовому вайфай модулю 8266.

 

dip - что диммировать будем ? Лампочку накаливания ? C ? LC ?

А если лампочка недиммируемая ? У меня кстати ни одной димируемой не стоит. Как то не довелось.

WiFi это не для мобильного телефона. Зачем эти "понты для приезжих" ?

Посмотрите reference ради на OASIS имени Elko, причем не на панели, а именно на функционал (актуаторы). Справитесь ? Я уже, причем совсем не за ту цену (концепция правда немного сместилась). Можете еще посмотреть скажем на RFSG-1M и RFSA-11B. Я думаю по описанию вы догадаетесь что к чему. Когда отключается grid, у меня есть необходимость адресно "заглушить" прожорливую нагрузку, согласно орпределенным правилам, зависящим от времени, положения солнца, и состояния луны. Да, да, реле приоритетов, конечно, пренепременно. С его прибитой гвоздями логикой. Когда-то я покупал такие (RF модули) за 700+ грн, го сейчас они стоят совсем несуразных денег. Таких примеров применения у меня около 10, и продолжают появляться.

Поскольку на рынок со всем тем что я понаделал я выходить пока не имею времени и сил, сравнение с Siemens несколько некорректно. Как минимум по причине усилий, и workforce, которые использует Siemens, и использую я. Повторюсь еще раз, "породистое оборудование" требует "породистых доходов". Кончились породистые доходы,- с большой долей вероятности попрощайтесь со своей системой. Будет работать до первого дорогостоящего ремонта или замены. Сейчас я это могу расценить только как "пир во время чумы".

Что касается WiFi, то вы почему-то в большинстве своем считаете что это все "для управления путем мобильного телефона". Wrong. Это централизованное управление, и сбор данных. И все. Да, я конечно нарисовал странички для того, чтобы можно было вмешаться в работу автоматики, но как-то за год с хвостиком воспользовался кажется 1 раз.

Все остальное - это просто такой себе способ связи по воздуху, чтобы не тянуть новые провода. Более того, набрав 10 устройств, я таки обнаружил что эфир я испоганил вполне конкретно, и пришлось выдумывать как их "диммировать" и выводить из эфира, чтобы значит не постоянно фонили. :-)

Отладка схемы и программы, ясен пень присутствует. Куда ж без этого ?

И даже бета-тестеры есть. Тестируют "вживую" у себя. Я по мере возможности исправляю баги, и перезаливаю прошивки. Тут все путем. :-)

Что вы все зациклились на Siemens ? У вас что, доход 5000+$ в месяц ? Если нет,- то поищите более дешевую альтернативу.

Змінено користувачем toksoft
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

dip - что диммировать будем ? Лампочку накаливания ? C ? LC ?

А если лампочка недиммируемая ? У меня кстати ни одной димируемой не стоит. Как то не довелось.

WiFi это не для мобильного телефона. Зачем эти "понты для приезжих" ?

Посмотрите reference ради на OASIS имени Elko, причем не на панели, а именно на функционал (актуаторы). Справитесь ? Я уже, причем совсем не за ту цену (концепция правда немного сместилась). Можете еще посмотреть скажем на RFSG-1M и RFSA-11B. Я думаю по описанию вы догадаетесь что к чему. Когда отключается grid, у меня есть необходимость адресно "заглушить" прожорливую нагрузку, согласно орпределенным правилам, зависящим от времени, положения солнца, и состояния луны. Да, да, реле приоритетов, конечно, пренепременно. С его прибитой гвоздями логикой. Когда-то я покупал такие (RF модули) за 700+ грн, го сейчас они стоят совсем несуразных денег. Таких примеров применения у меня около 10, и продолжают появляться.

Поскольку на рынок со всем тем что я понаделал я выходить пока не имею времени и сил, сравнение с Siemens несколько некорректно. Как минимум по причине усилий, и workforce, которые использует Siemens, и использую я. Повторюсь еще раз, "породистое оборудование" требует "породистых доходов". Кончились породистые доходы,- с большой долей вероятности попрощайтесь со своей системой. Будет работать до первого дорогостоящего ремонта или замены. Сейчас я это могу расценить только как "пир во время чумы".

Что касается WiFi, то вы почему-то в большинстве своем считаете что это все "для управления путем мобильного телефона". Wrong. Это централизованное управление, и сбор данных. И все. Да, я конечно нарисовал странички для того, чтобы можно было вмешаться в работу автоматики, но как-то за год с хвостиком воспользовался кажется 1 раз.

Все остальное - это просто такой себе способ связи по воздуху, чтобы не тянуть новые провода. Более того, набрав 10 устройств, я таки обнаружил что эфир я испоганил вполне конкретно, и пришлось выдумывать как их "диммировать" и выводить из эфира, чтобы значит не постоянно фонили. :-)

Отладка схемы и программы, ясен пень присутствует. Куда ж без этого ?

И даже бета-тестеры есть. Тестируют "вживую" у себя. Я по мере возможности исправляю баги, и перезаливаю прошивки. Тут все путем. :-)

Что вы все зациклились на Siemens ? У вас что, доход 5000+$ в месяц ? Если нет,- то поищите более дешевую альтернативу.

 

 

Как для радиосвязи использовать именно вайфай?

 

Он много потребляет - чем питать?

Тянуть провод к коробкам выключателей?

А если тянуть провод, то зачем нужно радио?

 

А если нужно 50-100 радиомодулей?

Вайфай засоряет эфир для интернета,..., всякий там итюнс с музыкой..

 

50-100 модулей - котострофа.

 

И, как говорил Леня Голубков,50-100 - это не предел...

А еще в соседней квартире то же самое...

Посилання на коментар
Поділитися на інших сайтах

 

dip - что диммировать будем ? Лампочку накаливания ? C ? LC ?

А если лампочка недиммируемая ? У меня кстати ни одной димируемой не стоит. Как то не довелось.

 

Диммировать будем

и лампочку накаливания

и С

и ЛС

 

Все, что нужно.

Перед диммированием будем анализировать тип нагрузки R-L-C самими диммером и

устанавливать автоматически тип фронта управления ключа.

 

Если не диммируемая лед лампа, то ставим реле, но тоже не простое, а для

C- нагрузки.

Так делаю Симменс,Гира, Лутрон,

Но не делает китай и турецкий макел.

 

Но диммировать лед лампу не помешает - красиво выглядит вечером.

 

Да и процесс плавного включения-выключения лед лампы выглядит красиво.

 

Но к схеме такого диммера вайфай 8266 не относится.

 

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

Посилання на коментар
Поділитися на інших сайтах

Диммировать будем

и лампочку накаливания

и С

и ЛС

это на Ардуино?

Посилання на коментар
Поділитися на інших сайтах

Диммировать будем

и лампочку накаливания

и С

и ЛС

 

Все, что нужно.

Перед диммированием будем анализировать тип нагрузки R-L-C самими диммером и

устанавливать автоматически тип фронта управления ключа.

 

Если не диммируемая лед лампа, то ставим реле, но тоже не простое, а для

C- нагрузки.

Так делаю Симменс,Гира, Лутрон,

Но не делает китай и турецкий макел.

 

Но диммировать лед лампу не помешает - красиво выглядит вечером.

 

Да и процесс плавного включения-выключения лед лампы выглядит красиво.

 

Но к схеме такого диммера вайфай 8266 не относится.

 

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

 

Так. Давайте делить мух и котлеты.

 

1. WiFi (или ZigBee) имеет смысл использовать, т.к. есть уже готовые протоколы обмена, которые можно использовать, в том числе и с "обычного" компьютера. Вы хотите использовать какой-то другой дипазон/радиоканал ? А сам протокол обмена кто разрабатывать будет ? Это очень морочливо и долго. Я как-то особым желанием не горю писать свой TCP stack, или нечто подобное.

2. Я использую наверное штук 50 разных LEDов в доме но, честно говоря, вопросами диммирования не заморачивался. Когда-то игрался с RFDEL-71M, но как-то не нашел применения "нафига оно нужно". Кажется пол-года назад подгорел драйвер на t8 имени максус (официально недимируемом), пока чинил прикинул что таки можно задимировать. Опять же, не нашел ответа на вопрос "зачем". Есть еще пару экономок, доживающих свой век, их точно не представляю как диммировать, без преждевременной кончины схемы управления лампы. Ламп накаливания кажется уже нет,- нужно будет провести ревизию. :-)

3. Перестаньте упираться и комплексовать. Рассматривайте 8266 как процессор, с частотой 40 или 80mHz, без WiFi, с 512-1024kb память, и digital io.. Его (WiFi) можно просто и тупо не использовать. Вы ведь не используете например одновременно PWM, ADC, ... когда выбираете кристалл для разработки приложения ? Так же и здесь. Можно взять Cortex (в нужном форм-факторе), но это стрельба из пушки по воробьям для данной задачи.

4. Мощность. Это важно, т.к. от этого зависит размер, в который все это хозяйство должно поместиться.

5. Для задачи именно димирования, я бы предложил совсем и напрочь отказаться от реле. Это можно реализовать иначе, если конечно вы не планируете киловатную нагрузку С или LC.

6. Если делать на заказ, то собсно кому это нужно ? Какой рынок потенциальных клиентов ? 1-5 шт в месяц ? Подсветка промышленных объектов ?

7. Можно отказаться от радио, и остановиться на ethernet или can. Можно управлять по электропроводке (до 1го трансформатора). Это в планах, но пока руки не дошли. Это не основной вид моей деятельности. :-)

Я как бы делал все под себя, сразу отказавшись от GSM, Audio, диммирования, и еще некоторых, на мой взгляд нерелевантного для моих задач функционала.

Многоканальный универсальный таймер (все CRMы + немного от Shneider, ну и + то, что решалось несколькими модулями, а теперь можно в одном, по результатам "нескольколетней" эксплуатации) на все случае жизни, с экраном и программированием "a la" Siemens, контроллеры освещенности, температуры и влажности, тоже с экранчиком, кнопками, программингом и разными установками в разных видах и комбинациях (под все датчики, с возможностью задания параметров практически любых подключаемых датчиков). Измерители уровня воды, расход воды, в общем все такого типа. Все на DIN рейках, счастливо живет и работает. Задачи вполне "земные", и как на моем примере, и примере моих коллег, наиболее востребованные. Ессно понадобилось все это связать в одну сеть, чтобы не тянуть кучу проводов, и не бегать к каждому модулю. Ethernet не влазит, да и проводов столько нет, я на такие расклады раньше явно не рассчитывал. Если теперь нужно что-либо добавить,- то +2 или 3 места на DIN рейке и, собсно все. Может на майские выделю денек и попробую отказаться от 3х местных, попытаюсь уложиться в 2х местные.

Ради интереса закажу разных диммируемых LEDов в Китае, на очередной поставке. Посмотрим, может действительно полезно и актуально ...

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

опа, а тут ветка для ардуино и только..

Diver, я извиняюсь за offtop, немного увлекся, но попробую компенсировать.

[offtop]

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

[/offtop]

Большинство считают Arduino "игрушкой", которая не предназначена для разработки "серьезных" приложений. Это большущая ошибка. Кому-то не нравится setup() & loop(), кто-то считает что "можно иначе".

Иначе - можете исполнить самостоятельно, main (int argc, char *argv []) никто не отменял,- это всего лишь такой себе programming convention, который приняли в качестве стандарта. Концептуальной разницы нет, и мнение тех, кто утверждает обратное, мне кажется можно смело игнорировать. Компилятор - это такая штука, которая преобразовывает ваши самые смелые фантазии, в машинный код. Основная задача компилятора,- это "зажать" вас в некоторые рамки, которые позволят компилятору формализовать ваши "хотелки" в машинный код. Помимо компилятора, есть еще такая штука как linker. Это такая утилита, которая компонует уже готовые, ксомпилированные в машинный код в единый EXE файл. Расширение приведено в качестве примера, т.е. в общем совершенно пофиг какое оно будет. Расширение,- это не более чем признак для какой-либо утилиты, которая собственно либо занимается прошивкой кристалла, либо операционной системы, которая загружает код в память, и передает на него управление.

Почему я уделил внимание linkerу: эта самая утилита, помимо компоновки кода, имеет еще несколько достаточно важжных задач, без которых ваша программа не заработает:

1. Настройка относительных и абсолютных адресов.

Каждый кристалл (в том числе и Intel C5, 7 или какие уже они там по счету), имеет свою систему адресации, т.е. программа загружается в вполне конкретную область памяти, и нужно чтобы все переходы (скажем Jump, в терминах Basic), знали куда собсно они должны "прыгать". В случае Intel архитектуры, jmp может быть как абсолютный (на конкретный адрес физической памяти), так и относительный,- например "отсюда + 120 байт".

2. Когда вы пишите свою программу, там 100% есть процедуры, функции и переменные, которые в вашей программе вполне себе могут и не использоваться, т.е. например вы написали большущую кучу кода, а реальные вызовы - это 2-3 функции. Да, так вот именно linker занимается тем, что собирает в готовый ".exe" только то, что используется в вашей программе. Остальные функции компилируются (преобразуются в машинный код), но не будут являться частью исполняемого файла (или прошивки кристалла).

Да, так вот gcc комилятор (вместе с linker - компоновщиком),- это "сердце" вашей системы. Именно он преобразует скажем "a = 24" в "mov r1,0x18", а затем в 1 или 2 байта инструкций (нули и еденички), которые впоследствии исполнит выбранный вами процессор. Нужно запустить нкую цепочку команд, включающую в себя собсно компиляцию, сборку, настройки, и прошивку кристалла. Эта штука называется toolchain, и представляет собой такие себе строчки текста, с кучей непонятных символов, т.е. набор команд (для command.com в windows, sh, ksh, ... для unix), которые исполнят все необходимые действия.

Преимущество Arduino в том, что разработчики этой штуки сделали некий визуальный редактор (Java), при помощи которого вы можете редактировать исходный файл, а так же большущая куча настроек и готовых команд, которые будут выполнены "втихаря", когда вы нажмете нужную кнопку в среде Arduino. Помимо Arduino, есть еще куча разных "frameworks", которые как правило базируются на gcc, в который упрощенно говоря, внесли некоторые модификации для того, чтобы получался максимально оптимальный код для данного конкретного кристалла, с учетом особенностей его архитектуры. Это например Keil, IAR, Eclipse, Cocox, Visual GDB, и еще парочка не столь "знаменитых".

gcc, который каждый свободно может скачать, самый "гуманный". Он "прощает" многое. И обращение к неициализированной области памяти, и переменные которые "типа должны быть 0 при инициализации, но забыли проинициализировать". Добрая и гуманная штука. :-)

Компиляторы в оболочках, названия которых я привел выше, не столь "гуманны". Они предполагают чтто персонаж не учится программированию, а точно знает что он делает (коммерческое приложение например), и пытаются уоптимизировать вусмерть, с целью экономии опреативной памяти и flash. Они (компиляторы), как правило так же построены на основе gcc, но имеют некоторые "хитрые" настройки и изменения, позволяющие им "упаковать" вашу буйную фантазию, заключающуюся например в 2000 строк c++ кода, в ~10-15 килобайт машинных команд, которые впоследствии будут выполнены процессором. Обычный gcc, при равных условиях (скажем без -o1, -o2, или -o3), скомпилирует этот же исходный код в 25-30 килобайт, но при этом "простит" вам многие ошибки. Что касается вопросов "чистый C или чистый C++",- для embedded приложений это не работает. Нужно хотя-бы чуть чуть понимать арзхитектуру выбранного вами процессора, и избегать некоторых моментов. Самое "больное место" - это аллокация и деаллокация памяти. В 32, 48 или 64kB памяти, достаточно сложно "вписать" управление памятью аналогичное тому, как это делает скажем Visual C на Intel платформе. Самое лучшее - избегать free() или delete []. Могут быть варианты. Есть так же нюансы касательно всем известной calling convention, когда например переменной типа uint64_t присваевается значение, скажем uint8_t. Очень часто бывает так, что меняются только младьшие 8 бит, а остальные 56 остаются заполненные хрен знает чем. Если говорить о конкретно кристалле 8266, поищите книжку "Kolban's_Book_on_ESP8266.pdf", в которой достаточно детально описываются все известные на данный момент функции, интерфейсы, и архитектура кристалла. Книжка еще в тираж не вышла, есть только бета, которая доступна для скачивания.

Да, совсем забыл,- если вы услышите от кого-то что-то типа "main это круто", а "setup & loop - отстой" - гоните нахрен такого "специалиста",- он нихрена не понимает, и, скорее всего не поймет.

  • Лайк 4
Посилання на коментар
Поділитися на інших сайтах

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

 

Так никто же и не удаляет. :pardon:

Посилання на коментар
Поділитися на інших сайтах

Так никто же и не удаляет. :pardon:

 

Я когда-то кажется месяц или чуть больше назад, "встрял" в дискуссию касательно setup & loop + main. Наверное все-таки слегонца переборщил, удалили сразу, посему на всякий случай решил попросить. :-)

У меня есть минут 30 пару раз в неделю, поделиться с форумчанами знаниями, посему и упомянул. :-) :-)

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

а такая задача. нужно ардуиной измерять мощность в 6-ти линиях по переменке 220В, ток там до 1А в линию будет, полученные данные передавать на 50м WiFi

 

принимать пока также на ардуину с выводом на дисплей

 

кто может помочь? для меня самое тут сложное это алгоритм измерения тока и напряжения переменного:o

 

я бы даже заплатил за помощь в написании кода.

Посилання на коментар
Поділитися на інших сайтах

а такая задача. нужно ардуиной измерять мощность в 6-ти линиях по переменке 220В, ток там до 1А в линию будет, полученные данные передавать на 50м WiFi

 

принимать пока также на ардуину с выводом на дисплей

 

кто может помочь? для меня самое тут сложное это алгоритм измерения тока и напряжения переменного:o

 

я бы даже заплатил за помощь в написании кода.

 

Тогда лучше сразу esp8266 + ацп 16 битный ic2 (8 канальнй). Можно по вайфай считывать передавать и можно на экран выводить. Это оптимальный вариант, бдтжет примерно 7зеленых, без экрана.

Посилання на коментар
Поділитися на інших сайтах

Тогда лучше сразу esp8266 + ацп 16 битный ic2 (8 канальнй).

а 6шт датчиков тока?

а платы, и прочее?

Посилання на коментар
Поділитися на інших сайтах

Тогда лучше сразу esp8266 + ацп 16 битный ic2 (8 канальнй).

 

это как-то с конца.

 

а хотелось бы с начала. есть ардуина UNO и Leonardo с них и желание начать творить

Посилання на коментар
Поділитися на інших сайтах

Датчики без разницы к чему цеплять, да и датчики разные бывают:

1. Трансформатор тока, не инвазивный, сила тока до 100А, но минус низкая точно и слабый ток не меряет.

2. На эффекте Холла, инвазивный (нужно цепь разрывать), точный по сравнению с п.1. но минус дорогой зараза, меряет малые токи.

 

Кроме датчиков тока, еще бы прицепить вольтметр, чтобы мерять напряжение в сети.

 

Можно сразу к UNO, Due, Meha, Nano цеплять. Но потом все равно для того что бы был W-Fi вам придется его покупать, или делать через Ethernet но такое решение будет дороже.

Посилання на коментар
Поділитися на інших сайтах

а такая задача. нужно ардуиной измерять мощность в 6-ти линиях по переменке 220В, ток там до 1А в линию будет, полученные данные передавать на 50м WiFi

 

принимать пока также на ардуину с выводом на дисплей

 

кто может помочь? для меня самое тут сложное это алгоритм измерения тока и напряжения переменного:o

 

я бы даже заплатил за помощь в написании кода.

 

О WiFi временно забудьте,- это потом. :-)

Для того, чтобы измерить напряжение, его таки нужно будет выпрямить. Поскольку диапазон напряжений у вас я думаю известен (скажем 160-250V AC), то можно обойтись делителями. Матчасть (пример): accrochages.drone.ws/en/node/125

Выпрямить можно одним, двумя диодами, или мостом. Для упрощения можно взять готовую диодную сборку, например DB207. До выпрямления, можно озадачиться измерением тока. Для этого нужно купить 6 датчиков, фактически ферритовых колечек с десятком-другим витков. Можно сделать самому, из феррита магнитной проницаемостью 50 или 100 и, скажем, провода, выдернутого из сигнального кабеля. Если делать самому,- будет дешево, но придется калибровать - это морочливо. У меня была такая задача, нужно было быстро, нашел старую экономку, достал оттуда 3х обмоточный дроссель (маленькое такое колечко), мотнул кажется 15 витков провода, а потом пару дней калибровал.

При кажущейся простоте, и доступности комплектующих, задача не такая простая. В качестве платформы для разработки можете "окинуть взглядом" STM32F103,- это более "взрослая" штука, занимает меньше места, стоит менее 100грн (понадобится еще "свисток" для программирования), и есть хороший инструментарий. Экран, если "простой", скажем 4*20, проблем не представляет. Если захотите с графическим, +2 месяца. :-)

Уже после того, как будет готов прототип, можно озадачиваться WiFi. В принципе, можно конечно сразу взять 8266, пару сдвиговых регистров, плату ADC, но это затянется на год, или может даже больше. Изучать "как" на примере 8266 мне кажется не самая лучшая идея. Каждая итерация по кромпиляции и заливке новой прошивки может занять минут 5. Дебаг, чтобы значит понять "где мы",- светодиодами или экранчиком. В общем так просто вы не отделаетесь. :-)

Если хотите чтобы получилось,- лучше всего найти толкового электронщика, который будет заничаться схемными решениями и платами, а сами сосредоточьтесь на концепте и программинге. Это пожалуй самая большая проблема. У меня не получилось,- по прежнему ищу. Проводил "кастинг" у 7,- бесполезно. "старички" не знают современной элементной базы, а "свежевыпущенные" знают как сделать то, что они знают, а не то что вам нужно. :-)

У Arduino может не хватить памяти, если у вас разгуляется фантазия (а она разгуляется,- поверьте), и вы поймете что можно "добавить еще, ...".

Можно взять Mega или Duo,- но там очень негуманный форм-фактор.

Обращайте анисание на уровни сигналов для каждой платы - 3.3V или 5V,- если не угадаете, придется еще заморачиваться согласователями.

  • Лайк 2
Посилання на коментар
Поділитися на інших сайтах

Электрические измерения параметров переменного тока, я бы доверил такому девайсу ru.aliexpress.com/item/AC-80-260V-Multifunction-Energy-Metering-Power-Monitor-Meter-Module-Ammeter-Power-Table-12002467/32449764713.html?spm=2114.03010208.3.264.dCBeO9&ws_ab_test=searchweb201556_9,searchweb201602_1_10034_507_10032_10020_10001_10002_10017_10010_10005_10011_10006_10021_10003_10004_10022_10009_10007_10008_10018_10019,searchweb201603_8&btsid=71bbf852-0d30-48fd-bbac-747d5f6213a9.

Даташит www.circuitspecialists.com/content/189799/ac004.pdf.

А дальше, либо UART - Wi-Fi мост напрямую, или через ардуинку с ведением базы (графиков) + Web интерфейс. Общий ценник может не порадовать, но работать с готовыми данными работать легче, + ардуинка не занята постоянным вычислениями.

zftlab.org/pages/2015101400.html

www.xpablo.cz/?p=899#more-899

В общем информации много :).

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Створіть акаунт або увійдіть у нього для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!

Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.

Увійти зараз
×
×
  • Створити...