Управление arduino по сети без web

Sl1ng3R
Offline
Зарегистрирован: 11.02.2015

Всем привет.
Перед тем как задам вопрос - опишу концепцию, так будет проще понять мой вопрос :)

И так, есть дом, хочется автоматизации. В качестве "конечных" устройств будут ардуины (нано или про мини), часть из них информационные (датчики температуры, освещенности и прочее), часть исполнительные (через реле естественно, например выключение света, отопления и т.д.). Вся логика на одном устройстве - 99% это будет raspberry. Именно на центральном узле будет прописана вся логика обработки и действий по сигналам.

Конечные ардуины будут в большенстве своем подключаться по wi-fi. Вот ими и нужно как то просто управлять. Понятное дело что на каждой можно поднять веб сервер и управлять всем через web, хочется от этого уйти, т.к. это и не сильно безопасно и не очень то и удобно. Нужно какое то решение прямого посылания/получения данных с консоли каждой конечной ардуинки, при этом еще и с максимальной безопасностью, лучше вообще по авторизации.

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

P.S. Я не прошу готового решения - я прошу "вектор" для размышления )))

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Вы считаете что telnet безопасен?

вот вам вектор http://www.opennet.ru/opennews/art.shtml?num=32217

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Sl1ng3R пишет:

Всем привет.
Перед тем как задам вопрос - опишу концепцию, так будет проще понять мой вопрос :)

И так, есть дом, хочется автоматизации. В качестве "конечных" устройств будут ардуины (нано или про мини), часть из них информационные (датчики температуры, освещенности и прочее), часть исполнительные (через реле естественно, например выключение света, отопления и т.д.). Вся логика на одном устройстве - 99% это будет raspberry. Именно на центральном узле будет прописана вся логика обработки и действий по сигналам.

Конечные ардуины будут в большенстве своем подключаться по wi-fi. Вот ими и нужно как то просто управлять. Понятное дело что на каждой можно поднять веб сервер и управлять всем через web, хочется от этого уйти, т.к. это и не сильно безопасно и не очень то и удобно. Нужно какое то решение прямого посылания/получения данных с консоли каждой конечной ардуинки, при этом еще и с максимальной безопасностью, лучше вообще по авторизации.

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

P.S. Я не прошу готового решения - я прошу "вектор" для размышления )))

Я считаю сомнительным постулат, что Малина справиться с логикой лучше, чем Ардуино. Сколько там той логики? Да и смысл тогда в Ардуинор, если на Малине своих GPIO достаточно. Но это можно оставить за скобками, ибо холивар...

А вот чем вам сеть не угодила? Не хотите выпускать свой дом в глобальную сеть - не выпускайте, оставьте в локальной сети. Более того, именно доступ из интернет - задача не очень тривиальнае и люди ломают голову, как ее решить... Вот с ролью веб-сервера Малина справиться великолепно. Но это если сильно нужно ее как-то использовать, т.к. openwrt на роутере справляется не хуже...

Зато на стороннем веб-сервере можно замутить кошерный веб-интерфейс, с которым не справиться никакая Ардуино.

Sl1ng3R
Offline
Зарегистрирован: 11.02.2015

Gippopotam пишет:

Я считаю сомнительным постулат, что Малина справиться с логикой лучше, чем Ардуино. Сколько там той логики? Да и смысл тогда в Ардуинор, если на Малине своих GPIO достаточно. Но это можно оставить за скобками, ибо холивар...

А вот чем вам сеть не угодила? Не хотите выпускать свой дом в глобальную сеть - не выпускайте, оставьте в локальной сети. Более того, именно доступ из интернет - задача не очень тривиальнае и люди ломают голову, как ее решить... Вот с ролью веб-сервера Малина справиться великолепно. Но это если сильно нужно ее как-то использовать, т.к. openwrt на роутере справляется не хуже...

Зато на стороннем веб-сервере можно замутить кошерный веб-интерфейс, с которым не справиться никакая Ардуино.

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

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

роутеров (703N или 2030) на все ардуинки не напасешься :) По факту пока получается сборная солянка из nano v3, набор датчиков/реле и esp8266 для связи, т.к. тянуть километры выитухи крайне не охото )))

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Sl1ng3R, чисто для интереса - а на кой каждой ардуинке по роутеру?

P.S. Хотел еще спросить про "простоту исполнения" на Малине, но решил промолчать, ибо холивар...

Sl1ng3R
Offline
Зарегистрирован: 11.02.2015

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

Мне нужен максимально простой способ получить по wifi доступ к serial порту каждой ардуины, остальное дело техники

P.S. не холивара ради - насчет малинки. Не факт что буду использовать еще - для начала попробую ее (еще не приехала), а там видно будет :) 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Sl1ng3R пишет:

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

Мне нужен максимально простой способ получить по wifi доступ к serial порту каждой ардуины, остальное дело техники

P.S. не холивара ради - насчет малинки. Не факт что буду использовать еще - для начала попробую ее (еще не приехала), а там видно будет :) 

Ну раз без холивара - утолите мое любопытство, нафига 20 ардуинок? Чем одна Мега не устраивает? Или провода уже не реально протянуть, только вай-фай?

Sl1ng3R
Offline
Зарегистрирован: 11.02.2015

Gippopotam пишет:

Ну раз без холивара - утолите мое любопытство, нафига 20 ардуинок? Чем одна Мега не устраивает? Или провода уже не реально протянуть, только вай-фай?

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

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Sl1ng3R пишет:

Gippopotam пишет:

Ну раз без холивара - утолите мое любопытство, нафига 20 ардуинок? Чем одна Мега не устраивает? Или провода уже не реально протянуть, только вай-фай?

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

Ну раз у нас с вами мир и взаимопонимание (без холивара) - ответьте, чем будете питать свои 20 ардуинок?

std
Offline
Зарегистрирован: 05.01.2012

Gippopotam пишет:
Зато на стороннем веб-сервере можно замутить кошерный веб-интерфейс, с которым не справиться никакая Ардуино.

HTML5, CSS3, quoted-printable картинки позволяют сформировать такой ни███вый интерфейс, что клиент только рот сможет открыть, увидев. И можно будет кружку подставить и собирать слюну. Прозрачные таблицы, фон постером, шевелящиеся объёмные кнопки с тенью, и прочие красивости. И всё это вполне возможно затолкать в один файл, не более 20 кб. С графикой. Для этого даже SD флешка не нужна и FAT поднимать не сплющилось (только память зря расходовать). Галимая внешняя EEPROM за 4 юаня. Аще не вижу проблем сделать сервер из 328.

Sl1ng3R пишет:
на каждой можно поднять веб сервер и управлять всем через web, хочется от этого уйти

Правильно хочется, ибо вайфай модули стандарта g нахер положат сеть до скорости 4 кбит/с. Самый простой способ - передавать через нечто, менее ресурсоёмкое, нежели TCP/IP. Например трансиверы, nRF24L01+ тот же. Вайфай в этом случае нужен только центральному "серверу", который служит шлюзом WiFi<>RF. И чтобы не бездельничал, можно к нему часы приделать. Или датчик движения в коридоре. Всё равно этот сервак будет находится в середине квартиры, чтобы был качественный приём.

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Народ, так как решили проблему? Сори за поздний пост. У меня просто задумка точно такая же - по 2-3 ардуинки на комнату, которые между собой связаны по tx-rx, а одна из них самая главная по ethernet с с ервером по локальной сети. Подскажите есть резон так делать? Или нужно все же все ардуинки связывать через tx-rx и тоьлко самую главную из всех главных по ethernet?

По идее я хотел использовать SynologyDS как web сервер для того чтобы через него отправлять http запросы, который бы отправлял по tCP IP запрос на нужную ардуинку в комнате, а та уже исполняла. Скажите насколько такой подход оправдан. Я в отличие от автора сейчас могу тянуть любые провода, но пока не могу определиться с архитектурой.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

снова я чегото не пойму, для чего ставить 10 ардуинок в одну комнату?

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Ну я не сильно силен пока в архитктуре ардуино, но по  подсчетам не хватает цифровых пинов arduino uno для всех задач. В теории в одной комнате есть выключатель(arduino), rgb led подсветка, несколько датчиков, управляемая римская штора, вентиляция, модуль управления техникой по ИК каналу и т.д. Складывается ощущение, что одна уно со всем этим не справится, да и пинов просто не хватит. Поэтому напрашивается вариант, когда одна уно висит где-то под потолком и слушает http запросы, в случае, если нужно вмешаться в ее обычный ритм работы. Так же она управляет всеми своими подчиненными по tx-rx соединению. И отсылает тревожные сигналы на сервер от датчиков. 
Я не хочу сказать, что уже все решено, если кто-нибудь подскажет какое-то решение, то буду благодарен. 
Да и в одной комнате 2-3 ардуино по задумке, просто комнат как всегда на два этажа )))

axill
Offline
Зарегистрирован: 05.09.2011

Посмотрите mysensors.org там много примеров

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

например openhab+mqtt broker+arduino

У openhab есть интерфейс удаленного управления в том числе со смартфона

но ардуино в этом деле не самый лучший выбор, есть хорошая альтернатива esp8266 с прошивкой nodemcu. С тем же openhab она может работать напрямую, а датчики и реле цеплять прям к esp8266, они работают по wifi, стоят меньше 200р за штуку

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

ну во первых можно увеличить количество пинов как цыфровых так и аналоговых. 

если переживаете по 1 меге лучше ставьте, будет надежнее чем писать общение между кучами ардуин.

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

axill пишет:

Посмотрите mysensors.org там много примеров

Оо... Честно говоря я мало что понял, что вы имеете ввиду, но все-таки попробую сформулировать. Я правильно понимаю, что мне нужно "мастер устройство" с wi-fi модулем и ethernet модулем(для связи с роутером) на котором будет крутиться один из "контроллеров" с данного сайта под linux(?), например openhub + еще что-то(mqtt broker), который по wi-fi общается с wi-fi модулем, прикрепленный к ардуино или вообще без ардуино, к которому привязаны реле или датчики(т.е. это исполнительное устройство) которое использует прошивку для этого и общается с "мастером" по wi-fi. Вся логика крутиться исключительно на "мастере", к которому можно подключиться через любое устройство хоть смартфон и получить данные или поуправлять чем хочется?
Мастер устройство видимо может быть тот же SynologyDS или малинка, т.к. она намного навороченнее любой ардуинки?

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Baks пишет:

ну во первых можно увеличить количество пинов как цыфровых так и аналоговых. 

если переживаете по 1 меге лучше ставьте, будет надежнее чем писать общение между кучами ардуин.


да переживу, если пинов хватит для комнаты))) Тогда остается вопрос только с тем как связать меги в каждой из комнат в сеть)

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

Sl1ng3R пишет:

Конечные ардуины будут в большенстве своем подключаться по wi-fi.

уже решили по беспроводному каналу управлять?

по RS485 не думали? в этом случае нужна продяжка проводов

вот почитайте http://arduino.ru/forum/proekty/ocherednoi-umnyi-dom-na-etot-raz-modulnaya-sistema?page=1#comment-184977

в принципи тоже планирую ставить в каждую комнату по ардуинке всю инфу буду соберать на сервере на малинке 

 

axill
Offline
Зарегистрирован: 05.09.2011

Alexdesinger пишет:

Оо... Честно говоря я мало что понял, что вы имеете ввиду, но все-таки попробую сформулировать. Я правильно понимаю, что мне нужно "мастер устройство" с wi-fi модулем и ethernet модулем(для связи с роутером) на котором будет крутиться один из "контроллеров" с данного сайта под linux(?), например openhub + еще что-то(mqtt broker), который по wi-fi общается с wi-fi модулем, прикрепленный к ардуино или вообще без ардуино, к которому привязаны реле или датчики(т.е. это исполнительное устройство) которое использует прошивку для этого и общается с "мастером" по wi-fi. Вся логика крутиться исключительно на "мастере", к которому можно подключиться через любое устройство хоть смартфон и получить данные или поуправлять чем хочется?
Мастер устройство видимо может быть тот же SynologyDS или малинка, т.к. она намного навороченнее любой ардуинки?

почти

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

контроллеры разные есть. Про все не расскажу. На mysensors много описано если читаете по английски. 

Сам смотрю в сторону именно openhab и mosquitto. Esp8266 может напрямую связываться с mosquitto (это один из опенсорсных mqtt брокеров) ибо имеет wifi udp tcp/ip

А ардуино можно связать или напрямую с ethernet шилдом или сделать общий gateway и связываться через него. В проекте mysensors датчики связываются по радио с gateway

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

axill пишет:

почти

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

контроллеры разные есть. Про все не расскажу. На mysensors много описано если читаете по английски. 

Сам смотрю в сторону именно openhab и mosquitto. Esp8266 может напрямую связываться с mosquitto (это один из опенсорсных mqtt брокеров) ибо имеет wifi udp tcp/ip

А ардуино можно связать или напрямую с ethernet шилдом или сделать общий gateway и связываться через него. В проекте mysensors датчики связываются по радио с gateway

Хм...интересный вариант. Надо будет подумать. Сейчас мне все же импонирует вариант, когда самописный сервер крутииться на SynologyDS + там же вэб интерфейс, синолоджи связан с роутером напрямую, роутер связан со свичем и через него уже подключены ардуино комнаты по tcp ip. Мне честно не очень хочется устанавливать ПО сторонних разработчиков для таких систем, хочется самому написать вэб интерфейс.

Вообще наткнулся вот на такую штуку - 
http://s.click.aliexpress.com/e/MZVFuFEIy

Я бы ее использовал там, где нельзя проложить провод utp. 

Я был бы признателен, если кто-нибудь скинет на урок или хорошую статью ссылку, где есть организация управления ардуино по tcp ip через вэб сервер на php + вэб интерфейс с примерами хорошей реализации. Сам гуглил - нашел множество статей - сижу читаю, их слишком много, но пока не могу найти подходящий пример или если он есть, то там описано все поверхностно без конкретной реализации.

Вообще как я вижу реализацию:
На сервере крутиться вэбинтерфейс, который формирует POST запросы по http, которые отправляются нужной ардуине по ее локальному адресу IP. Та принимает сигнал и по внешнему прерыванию выполняет действие. До этого момента она просто исполняет заложенный в ней цикл, время от времени информируя сервер о показаниях датчиков.

Скажите такая идея работоспособна или я плохо представляю себе схему взаимодействия?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Зачем на ардуине поднимать HTTP? Если достаточно просто по TCP принимать запросы и отправлять ответы, юзая какой-нибудь MODBUS или самописный протокол? И ресурсы дуины сэкономите, и в разработке легче.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Alexdesinger пишет:
Вообще как я вижу реализацию:
На сервере крутиться вэбинтерфейс, который формирует POST запросы по http, которые отправляются нужной ардуине по ее локальному адресу IP. Та принимает сигнал и по внешнему прерыванию выполняет действие. До этого момента она просто исполняет заложенный в ней цикл, время от времени информируя сервер о показаниях датчиков.Скажите такая идея работоспособна или я плохо представляю себе схему взаимодействия?
Походу плохо представляешь. Web-интерфейс крутится на клиенте, и POST-запросы генерит клиент.

axill
Offline
Зарегистрирован: 05.09.2011

вы как и многие из нас по началу в голове городите какого то монстра )

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

Если готовы все ардуины соединить проводами, то ethernet не лучший вариант, избыточен для ардуин. Здесь выше уже об этом написали. Вам лучше смотреть в сторону чего-то типа RS485/CAN. Т.е. таже витая пара только не ethernet а куда проще быстрее и лучше для ардуины. К synology можете прикрутить USB свисток через который подключиться к нужной сети (к тому же RS485)

Т.е. {synology один}<->{usb один}<->{rs485 один}<->{модуль rs485 uart много}<->{arduino много}

Либо synology<->ethernet<->{ethernet shield}<->{arduino gateway}<->{uart-rs485 один}<->{rs485-uart много}<->{arduino много}

 

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Я еще немного погуглил и наткнулся вот на такую статью - http://robocraft.ru/blog/3088.html
Мне больше хочется вот такой реализации или похожей. Во всяком случае мне эта реализация более-менее понятна. К сжалению промышленные реализации типа RS485 или CAN для меня сложны и требуют по всей видимости доп. оборудования, а со связкой arduino+ethernet модуль или arduino + wifi модуль более-менее все понятно.

DIYMan пишет:

Зачем на ардуине поднимать HTTP? Если достаточно просто по TCP принимать запросы и отправлять ответы, юзая какой-нибудь MODBUS или самописный протокол? И ресурсы дуины сэкономите, и в разработке легче.


Не могли бы вы поподробнее рассказать про метод отсылки и приема запроса по TCP не поднимая сервер HTTP?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Alexdesinger пишет:

Не могли бы вы поподробнее рассказать про метод отсылки и приема запроса по TCP не поднимая сервер HTTP?

А в чём, собственно, ключевое отличие-то? HTTP - это протокол, реализованный поверх TCP/IP, не более того. Для того, чтобы обмениваться с ардуиной данными по TCP/IP, необязательно реализовывать протокол HTTP - можно выбрать любой другой, хоть самописный. Например, отправляете по TCP строку "tell me your status$", ардуина принимает её, видит, что пакет принят полностью (есть знак $ в конце строки), понимает, что её запросили о статусе и - отдаёт обратно строку "i'm ok, sir!". Можно и не строками, можно байтами, можно - структурами, описывающими какое-нибудь состояние. Да по-всякому можно, на HTTP свет клином не сошёлся.

 

 

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

А скажите, а можно ли соединить ардуинки вот по такой схеме?
Мастер - arduino mega, которая связана с роутером по обычной локалке, к ней по шине подключены arduino uno по tx-rx(uart на сколько я понял), которые являются мастерами комнат, к uno в каждой комнате так же по шине подключены nano? Да и главное можно ли в этом случае использовать обычный utp кабель чтобы их связать?

axill
Offline
Зарегистрирован: 05.09.2011

Alexdesinger пишет:

А скажите, а можно ли соединить ардуинки вот по такой схеме?
Мастер - arduino mega, которая связана с роутером по обычной локалке, к ней по шине подключены arduino uno по tx-rx(uart на сколько я понял), которые являются мастерами комнат, к uno в каждой комнате так же по шине подключены nano? Да и главное можно ли в этом случае использовать обычный utp кабель чтобы их связать?

Вам не чистый uart нужен, а uart через rs485

Есть такие модули

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

axill пишет:

Вам не чистый uart нужен, а uart через rs485

Есть такие модули


А какое преимущество у него будет по сравнению с обычным uart? Насколько я понял из примеров обычный uart может быть с обратной связью и достаточно быстрым. Если все контроллеры просто шиной объединить, то с ними довольно просто(опять же судя по примерам) общаться используя библиотеку Serial. 

axill
Offline
Зарегистрирован: 05.09.2011

Обычный uart не расчитан на работу на длинных проводах иплохо защищен от помех

так же обычный uart не предполагает соединение более двух МК

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Ок, ясно, спасибо. 
Скажите, вот тут тоже есть соединение наподобии - несколько МК соединены по шине. Я честно пока не разобрал этот пример досконально, но он как думаете сможет работать на больших расстояниях? 
http://bigbarrel.ru/arduino_serial_uart_net/

axill
Offline
Зарегистрирован: 05.09.2011

Хотите повторить технически неграмотный вариант по вашей ссылке так ктож вам запретит?

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

axill пишет:

Хотите повторить технически неграмотный вариант по вашей ссылке так ктож вам запретит?

А в чем собственно "неграмотность" варианта. Ну он кажется очень привлекательным в меру своей видимой простоты. Но попробовать его повторить очень хочется и понять как он работает.

axill
Offline
Зарегистрирован: 05.09.2011

я вижу две глупости которые делает автор

- соединяет паралельно выводы uart нескольких ардуин. еще ладно соединить RX, но TX.. хоть бы буферные элементы предусмотрел

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

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

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

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

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

axill
Offline
Зарегистрирован: 05.09.2011

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

по сути там используется тот же Serial только во первых соединяются ардуины паралельно не напрямую, а через специальный чип так называемый драйвер шины rs485. Есть шилды с этим чипом

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

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

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Ок, спасибо большое, буду изучать потихоньку.

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

Скажите, а что вы думаете о таком способе соединения и использования библиотеки Wire.h?
http://wikihandbk.com/wiki/Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%...

axill
Offline
Зарегистрирован: 05.09.2011

Alexdesinger пишет:

Скажите, а что вы думаете о таком способе соединения и использования библиотеки Wire.h?
http://wikihandbk.com/wiki/Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%...

я не использую и не рекомендую те решения которые основаны на недокументированных возможностях

в данном случае две платы ардуино связываются по протоколу I2C

https://ru.wikipedia.org/wiki/I%C2%B2C

Цитата:
I²C (рус. ай-ту-си/и-два-цэ/и-два-си) — последовательная шина данных для связи интегральных схем, использующая две двунаправленные линии связи (SDA и SCL). Используется для соединения низкоскоростных периферийных компонентов с материнской платой, встраиваемыми системами и мобильными телефонами. Название представляет собой аббревиатуру слов Inter-Integrated Circuit.

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

хотите экспериментировать так ктож вам запретит

Alexdesinger
Offline
Зарегистрирован: 08.02.2016

axill пишет:

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

хотите экспериментировать так ктож вам запретит


Спасибо, думаю тоже как-то немного странный подход. Да, попробовать хочу, тем более что есть Uno и pro mini. Я просто действительно хочу попробовать разные варианты подключения. Для чего мне это надо? Ну во-первых чтобы хотя бы иметь представление о достоинствах и недостатках той или иной системы. Во-вторых чтобы в "случае чего" применить в разных частях дома разные протоколы имея в арсенале различные подходы. Как-то так)))
Про RS485 помню - нашел на ali даже все платки для него. Примеров реализации пока не нашел, но думаю скоро доберусь)))

Не знаю кому как, а мне пока вариант 1 комната - 1 ethernet shield с http сервером не кажется таким уж неудачным и излишним. Во первых ардуинка при любом запросе может отобразить всю  информацию, во вторых - кто ж его знает, вдруг понадобиться в каждой комнате по тачскрину этой комнаты с отображением инфы и управлением. Технологии то сейчас...огого, только успевай вникать)))

axill
Offline
Зарегистрирован: 05.09.2011

на mysensors.org есть все примеры и библиотеки для ваших задач, там тоже есть вариант одна ардуино с ethernet, а все остальные с радио

rs485 это так называемый физический уровень. Для программного уровня это все тот же Serial с одной особенностью - half duplex

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

releyshic
Offline
Зарегистрирован: 20.11.2015

Alexdesinger пишет:

Ну я не сильно силен пока в архитктуре ардуино, но по  подсчетам не хватает цифровых пинов arduino uno для всех задач. В теории в одной комнате есть выключатель(arduino), rgb led подсветка, несколько датчиков, управляемая римская штора, вентиляция, модуль управления техникой по ИК каналу и т.д. Складывается ощущение, что одна уно со всем этим не справится, да и пинов просто не хватит.

Выводов не хватает - а что Сдвиговые регистры ктото отменял?

Только вот недавно делал семисенментное светодиодное Табло на 6 цифр итого 6*7 = 42 управляемых кусков светодиодной ленты на каскаде регистров 765м, правда пришлось соображать как Цифры из перемнных Преобразовавать в Команды на регистры ))

Но с кнопками /реле и прочем всё просто как грабли и есть куча примеров

http://robotclass.ru/tutorials/arduino-shift-register/

http://mysku.ru/blog/aliexpress/43226.html

По поводу связи: тут надо решить чем вы будете питать Ардуины если проводами, то связь по проводам надо делать

Если по воздуху, то Wifi? возожно Blutooth (дешевле) http://arduinolab.pw/index.php/2015/12/02/radiomoduli-nrf24l01-i-arduino/