Универсальный узел автоматики

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Универсальный узел автоматики

Сообщение artko » Вт янв 07, 2014 6:40 pm

ignat99 писал(а):Ну, я слышал, можно делать программы на LUA и Python на нём.
(вздрогнул). можно еще и на яваскрипте. (проект espruino, от STM32F100 и выше).

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

у меня сейчас развешаны по дому датчики на базе STM8S003F3 (по 40 центов за штуку). Паяется на коленке. Минимальный доступный STM32F4 почти 10 баксов, на порядок дороже.

Термодатчик с барометром и гигрометром как повешен год назад, так и висит на улице. Накой мне в нем питон? :)

Сейчас еще попробую запихнуть в этот контроллер ноду для mqtt-sn, если выйдет - датчики можно будет вполне универсальные и опять же копеечные клепать.

А, кстати :) Вот перед НГ склепал себе датчик энергопотребления на вводе в дом, по времени между импульсами счетчика. Интересно, как на скриптовом языке делать такие вещи, где нужны измерения точных интервалов и вовремя?
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Вт янв 07, 2014 6:57 pm

artko писал(а):
А, кстати :) Вот перед НГ склепал себе датчик энергопотребления на вводе в дом, по времени между импульсами счетчика. Интересно, как на скриптовом языке делать такие вещи, где нужны измерения точных интервалов и вовремя?
Могу ответить только про Python в критических местах там используются быстрые библиотеки написанные на Си или Asm. Полагаю, что во многих проектах в микроконтроллерах используется возможность преобразования LUA в Си с последующей компиляцией.
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Чт янв 16, 2014 4:29 pm

TP Link всё-таки "жидковат" для MJD :(
Места там "кот наплакал" и штатной памяти не хватит даже на установку необходимых пакетов (php/mysql). Если использовать внешнюю флэшку, то в принципе завести можно, но при интенсивном использовании базы данных (много устройств, графики и т.п.) лучше иметь жёсткий диск. Поэтому даже для Raspberry я подумываю о какой-то глубокой оптимизации по базе данных.

TP Link просто отличное "промежуточное" устройство, которое может помочь с децентрализацией управления, за счёт того, что на такие узлы можно перенести часть логики. Как раз сейчас экспериментирую с созданием таких модулей, которые будут использовать Arduino (ну или любой другой перифирийный модуль, подключенный к роутеру по USB) в качестве интерфейса к датчикам/исполнительным механизмам и bash-скрипты для обработки приходящих событий и подачи команды. Сами скрипты создаются с помощью внешнего веб-сервиса и автоматически обновляются на устройстве при включении и перезагрузке (если интернет доступен). Так же у этих модулей есть простенькое HTTP API и минимальный веб-интерфейс. Чуть позже я это опишу подробнее, пока несколько скриншотов сервиса удалённой настройки модулей:

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Пример веб-интерфейса на устройстве (что б уж совсем автономно можно было управлять)
Изображение

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

HTTP протокол MJD для TP-Link
А отправить любую строчку в Arduino можно через http:
http://адрес_устройства/cgi-bin/master?op=send&line=SomeData -- т.е. если цикл работает нормально и на ардуинке есть скетч, который понимает команду SomeData, то она будет отправлена и обработана.
Galakart
Сообщения: 66
Зарегистрирован: Вт авг 06, 2013 3:49 pm
Откуда: Новокузнецк
Благодарил (а): 0
Поблагодарили: 7 раз

Re: Универсальный узел автоматики

Сообщение Galakart » Пн фев 10, 2014 12:25 pm

Уже несколько дней пробую связку TP-Link MR3020 + Arduino nano. Работает замечательно, но по Lan. При работе роутера по Wifi ардуина хоть и принимает команды, но сволочь виснет уже через минуту. Пробовал ставить патч из соседней ветки - с ним Wifi напрочь отказывается включаться, вываливая ошибку "PHY for wifi device radio0 not found"
sergejey писал(а): Загрузил сюда плюс добавил ссылку на страницу установки компонентов.
подойдёт ли эта прошивка для mr3020? Или может без прошивки как то можно исправить?

Ещё кстати заметил - если ардуина не подключена к роутеру (т.е. порт /dev/ttyUSB0 недоступен), то главный цикл выполняется до команды "stty -F $ARDUINO_PORT.......", соответственно выдаёт ошибку, и начинает свою работу заново - то есть каждую секунду скачивает с connect правила и меню, создавая лишний трафик.
Linux, Raspberry pi
Мой профиль в CONNECT
MajorDroid
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Универсальный узел автоматики

Сообщение sergejey » Пн фев 10, 2014 1:05 pm

По прошивкам я не специалист, к сожалению, поэтому мне было проще поставить прошивку с нуля и проверить работу...

mr3020 это точно такой же роутер. на сколько я знаю, один в один. так что прошивка должна подойти.

За баг с недоступной Ардуиной спасибо, попробую как-то сделать обработку.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: Универсальный узел автоматики

Сообщение LutsenkoDenis » Пн фев 10, 2014 1:13 pm

Galakart писал(а):Ещё кстати заметил - если ардуина не подключена к роутеру (т.е. порт /dev/ttyUSB0 недоступен), то главный цикл выполняется до команды "stty -F $ARDUINO_PORT.......", соответственно выдаёт ошибку, и начинает свою работу заново - то есть каждую секунду скачивает с connect правила и меню, создавая лишний трафик.
Это с учетом того что вывод обёрнут командой проверяющий доступность компорта?

Код: Выделить всё

if (Serial.available()) 
{
   some code
}
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Galakart
Сообщения: 66
Зарегистрирован: Вт авг 06, 2013 3:49 pm
Откуда: Новокузнецк
Благодарил (а): 0
Поблагодарили: 7 раз

Re: Универсальный узел автоматики

Сообщение Galakart » Пн фев 10, 2014 1:29 pm

LutsenkoDenis писал(а):
Это с учетом того что вывод обёрнут командой проверяющий доступность компорта?

Код: Выделить всё

if (Serial.available()) 
{
   some code
} 
Цикл, имеется в виду в роутере - /etc/master/cycle.sh
Linux, Raspberry pi
Мой профиль в CONNECT
MajorDroid
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Пн фев 10, 2014 1:52 pm

Galakart писал(а):Уже несколько дней пробую связку TP-Link MR3020 + Arduino nano. Работает замечательно, но по Lan. При работе роутера по Wifi ардуина хоть и принимает команды, но сволочь виснет уже через минуту. Пробовал ставить патч из соседней ветки - с ним Wifi напрочь отказывается включаться, вываливая ошибку "PHY for wifi device radio0 not found"
sergejey писал(а): Загрузил сюда плюс добавил ссылку на страницу установки компонентов.
подойдёт ли эта прошивка для mr3020? Или может без прошивки как то можно исправить?

Ещё кстати заметил - если ардуина не подключена к роутеру (т.е. порт /dev/ttyUSB0 недоступен), то главный цикл выполняется до команды "stty -F $ARDUINO_PORT.......", соответственно выдаёт ошибку, и начинает свою работу заново - то есть каждую секунду скачивает с connect правила и меню, создавая лишний трафик.
На моём роутере TP-Link стоит пропатченная прошивка и другие конфиги. Arduino подключал по USB.
Устройство для подключне называется по другому /dev/ttyA*, сетевые конфигурационные файлы так же исправлены. Кажеться там использован wlan0 интерфейс, а не radio0

В любом случае надо поднимать интерфейс командой
ifup wlan0
или
ifup radio0

Эту команду я прописал в скрипт запуска демона, который выполняется при старте.
Galakart
Сообщения: 66
Зарегистрирован: Вт авг 06, 2013 3:49 pm
Откуда: Новокузнецк
Благодарил (а): 0
Поблагодарили: 7 раз

Re: Универсальный узел автоматики

Сообщение Galakart » Пн фев 10, 2014 6:40 pm

Не удержался, попробовал перепрошить. И.....
В общем не прошивайте MR-3020 вышеприведённой прошивкой, она даже по названию только для wr703n. Хорошо что под рукой есть ttl-переходник и заранее распаянный uart-порт на роутере, откатился :)
Linux, Raspberry pi
Мой профиль в CONNECT
MajorDroid
binladin
Сообщения: 143
Зарегистрирован: Чт фев 06, 2014 9:32 pm
Благодарил (а): 0
Поблагодарили: 5 раз

Re: Универсальный узел автоматики

Сообщение binladin » Пн фев 10, 2014 10:42 pm

Galakart писал(а):Не удержался, попробовал перепрошить. И.....
В общем не прошивайте MR-3020 вышеприведённой прошивкой, она даже по названию только для wr703n. Хорошо что под рукой есть ttl-переходник и заранее распаянный uart-порт на роутере, откатился :)
Спасибо, намотал на ус. Мне где-то попадалось сегодня, что у 3020 есть проблемы с ЮСБ, в том смысле, что USB-hidов он не опознаёт, хотя при работе через хаб (причём 2.0) - всё хватает нормально. Хотя если по езернету всё ок.... странно.
Ответить