MySensors
MySensors
В этой теме можно скачать блоки для передачи данных по протоколу MySensors, а также библиотеку последнего релиза в zip или с официальной странички на GitHub
Удалил привязку библиотеки к блокам, т.к. программа жутко тормозит и вылетает, а также проекты весят очень много поэтому невозможно добавить на форум. После установки блоков необходимо в Arduino IDE подключить библиотеку скачанную по ссылкам.
[spoiler title=Как подключить библиотеку] Создаёте проект в FLProg, нажимаете скомпилировать проект, откроется Arduino IDE, в верхнем меню нажимаете Скетч -> Подключить библиотеку -> Добавить .Zip библиотеку и указываете скаченный ранее архив с библиотекой, компилируете и загружаете проект в вашу ардуино.[/spoiler]
В теме просьба сообщать об ошибках работы блоков, вести обсуждение и задавать вопросы по их работе.
Подробная информация по проекту:
mysensors.org (Eng)
mysensors.ru (Rus)
Группа в Skype. В ней обсуждаются общие вопросы по MySensors и программирование на Си
Для обсуждения по вопросам программирования на FBD создал вторую группу.
Если я долго не отвечаю, найти меня можно в группах Skype
Удалил привязку библиотеки к блокам, т.к. программа жутко тормозит и вылетает, а также проекты весят очень много поэтому невозможно добавить на форум. После установки блоков необходимо в Arduino IDE подключить библиотеку скачанную по ссылкам.
[spoiler title=Как подключить библиотеку] Создаёте проект в FLProg, нажимаете скомпилировать проект, откроется Arduino IDE, в верхнем меню нажимаете Скетч -> Подключить библиотеку -> Добавить .Zip библиотеку и указываете скаченный ранее архив с библиотекой, компилируете и загружаете проект в вашу ардуино.[/spoiler]
В теме просьба сообщать об ошибках работы блоков, вести обсуждение и задавать вопросы по их работе.
Подробная информация по проекту:
mysensors.org (Eng)
mysensors.ru (Rus)
Группа в Skype. В ней обсуждаются общие вопросы по MySensors и программирование на Си
Для обсуждения по вопросам программирования на FBD создал вторую группу.
Если я долго не отвечаю, найти меня можно в группах Skype
Последний раз редактировалось Mikhail72 10 фев 2018, 14:51, всего редактировалось 4 раза.
MySensors
MySensors используется в создании интернет вещей и систем умного дома. Поэтому при использовании этого протокола подразумевается что у вас есть сервер(контроллер) и шлюз, который соединяет радио сеть с контроллером, а также выступает маршрутизатором радиообмена. У MySensors есть много плюсов, из ключевых: Обновление прошивки ардуино по воздуху и подтверждение доставки сообщения.
Если вы будете писать конкретные задачи, что интересует, я постараюсь ответить созданием проекта.
Самый простой пример два устройства:
Кнопка и Реле При нажатии на кнопку будет происходить включение и выключение реле. В данном примере предполагается передача данных с кнопки на реле. В случае пропадания питания узла-реле и при его за/перезагрузке, узел-реле будет запрашивать статус у кнопки и если статус включено, то реле включится. Если реле включено, то при следующем нажатии кнопки оно выключится, если данные до реле по каким то причинам не дошли, то статус не измениться на противоположный, т.е. следующей командой при нажатии на кнопку будет выключение.
Проект кнопки, Проект реле
Если немного изменить проект кнопки и данные слать на сервер и соответственно привязать сенсор реле к данным сервера, то при использовании одного проекта кнопки на нескольких узлах, можно получить проходной выключатель.
P.S. Читайте описание блоков, т.к. пока без вмешательства в скетч ArduinoIDE не обойтись, необходимо соблюдать порядок в декларации констант и переменных, подключение библиотек , а также объединять данные с одноимённых функций в одну.
Если вы будете писать конкретные задачи, что интересует, я постараюсь ответить созданием проекта.
Самый простой пример два устройства:
Кнопка и Реле При нажатии на кнопку будет происходить включение и выключение реле. В данном примере предполагается передача данных с кнопки на реле. В случае пропадания питания узла-реле и при его за/перезагрузке, узел-реле будет запрашивать статус у кнопки и если статус включено, то реле включится. Если реле включено, то при следующем нажатии кнопки оно выключится, если данные до реле по каким то причинам не дошли, то статус не измениться на противоположный, т.е. следующей командой при нажатии на кнопку будет выключение.
Проект кнопки, Проект реле
Если немного изменить проект кнопки и данные слать на сервер и соответственно привязать сенсор реле к данным сервера, то при использовании одного проекта кнопки на нескольких узлах, можно получить проходной выключатель.
P.S. Читайте описание блоков, т.к. пока без вмешательства в скетч ArduinoIDE не обойтись, необходимо соблюдать порядок в декларации констант и переменных, подключение библиотек , а также объединять данные с одноимённых функций в одну.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:01, всего редактировалось 3 раза.
MySensors
То что подразумевается под вмешательством, после компиляции мы имеем следующее:
начало скетча
конец скетча
После правки должно выглядеть так:
начало скетча
Конец скетча
Т.е. в скетче должна быть одна функция void presentation() и одна void receive(const MyMessage &message)
P.S. Блоки создавал для себя, чтобы можно было быстро и просто создавать мульти ноды(узлы) с несколькими(более 2-х) сенсорами на борту и решил поделиться с сообществом flprog, т.к. простые ноды есть в примерах приведённых на сайтах в первом сообщении, т.е. берёте ардуино, подключаете нрф24 получается нода(узел), подключаете к нему dht22, заливаете скетч примера и у вас сенсор температуры и влажности, который с указанным интервалом отсылает данные на ваш контроллер.
Добавлено (31.10.2017, 23:27)
---------------------------------------------
Обязательно для прочтения начало, а также тут и тут на родном языке.
начало скетча
конец скетча
После правки должно выглядеть так:
начало скетча
Конец скетча
Т.е. в скетче должна быть одна функция void presentation() и одна void receive(const MyMessage &message)
P.S. Блоки создавал для себя, чтобы можно было быстро и просто создавать мульти ноды(узлы) с несколькими(более 2-х) сенсорами на борту и решил поделиться с сообществом flprog, т.к. простые ноды есть в примерах приведённых на сайтах в первом сообщении, т.е. берёте ардуино, подключаете нрф24 получается нода(узел), подключаете к нему dht22, заливаете скетч примера и у вас сенсор температуры и влажности, который с указанным интервалом отсылает данные на ваш контроллер.
Добавлено (31.10.2017, 23:27)
---------------------------------------------
Обязательно для прочтения начало, а также тут и тут на родном языке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 14:57, всего редактировалось 2 раза.
MySensors
К сообществу MySensors обратится человек за помощью в создании ноды, измеряющей ток в цепи электропитания, для осуществления обратной связи при включении медиа системы с системы умного дома. В качестве датчика выступает GY712.
Выглядит это так Проект
Выглядит это так Проект
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:02, всего редактировалось 3 раза.
MySensors
Решил поделится проектом созданным мной и для своих нужд, ну и так сказать для понимания других.
Это датчик температуры и влажности почвы, который у меня стоял всё лето на огороде примерно в метрах 50 от дома и отсылал данные каждые 15 мин.
Выглядит это так, только графитовые стержни поломались, снял его сегодня с замёрзшей земли.
[spoiler=Спойлер] [/spoiler]
А вот так он отображается на сервере MajorDoMo
[spoiler=Спойлер] [/spoiler]А это для тех кто говорит, что nRF24 фигня, а с усилителем которые так вообще долго не живут.
[spoiler=Спойлер] В этой таблице видно, что дата последней перезагрузки этого узла 3 июня, а последние данные она прислала сегодня, 5 ноября, т.е. она проработала 5 месяцев и её оставшийся заряд батареи в 71%, отображён на предыдущей картинке.[/spoiler]
Проект И еще для ознакомления, как можно использовать MySensors, тоже мой проект.
Это датчик температуры и влажности почвы, который у меня стоял всё лето на огороде примерно в метрах 50 от дома и отсылал данные каждые 15 мин.
Выглядит это так, только графитовые стержни поломались, снял его сегодня с замёрзшей земли.
[spoiler=Спойлер] [/spoiler]
А вот так он отображается на сервере MajorDoMo
[spoiler=Спойлер] [/spoiler]А это для тех кто говорит, что nRF24 фигня, а с усилителем которые так вообще долго не живут.
[spoiler=Спойлер] В этой таблице видно, что дата последней перезагрузки этого узла 3 июня, а последние данные она прислала сегодня, 5 ноября, т.е. она проработала 5 месяцев и её оставшийся заряд батареи в 71%, отображён на предыдущей картинке.[/spoiler]
Проект И еще для ознакомления, как можно использовать MySensors, тоже мой проект.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:08, всего редактировалось 2 раза.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
MySensors
извените за мою тупость .спрошу еще раз если я использую ваши блоки то блоки для нрф 2401 не нужны в проекте ? на ссылки куда посылаете ничего не понял.Mikhail72 писал(а):протокола подразумевается что у вас есть сервер(контроллер)
MySensors
Нет, я старался сделать блоки, по принципу блоков MQTT от Слимпера.vovka1973 писал(а):блоки для нрф 2401 не нужны
Т.е. вы данные которые хотите отправить указываете на вход data_send и по переднему фронту на send они отправляются, туда чей ID указан в параметре destination в параметрах блока, по умолчанию 0 - это шлюз(гейт).
я вносил изменения в блоки позавчера, нашёл некоторые баги + добавил лайтовое сохранение и загрузку в/из EEPROM, рекомендую обновить блоки.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
MySensors
тоесть как в схеме привязка к пинам и менять нельзя я правильно понялMikhail72 писал(а):по схеме остальное сделает
буду разбираться .вопрос такой приемущество есть какое нибуль в отличии блоков от нрф ,я иммею ввиду занимаемую память в микроконтроллере, быстродействие, извените за назойливость
Последний раз редактировалось vovka1973 05 ноя 2017, 16:58, всего редактировалось 1 раз.
MySensors
На этот вопрос не могу точно ответить, но например на гейте, подключаются 2 устройства с SPI к разным пинам и nRF в данном случае к софтовым, у меня не возникало такой необходимости, поэтому не вникал.
MySensors
Если честно я их не смотрел, т.к. меня не интересует передача данных среди несколько устройств, меня интересует целая эко система, в соседней теме я уже писал, что все (далеко не любители) кто пытался на Си и nRF изобрести велосипед пришли в сообщество MySensors, преимуществ у него много, но не в занимаемой памяти.vovka1973 писал(а):в отличии блоков от нрф
Я для этого и создал тему чтобы все желающие могли разобраться в этом протоколе, т.к. не все, даже умеющие программировать на Си, понимают как правильно использовать все плюшки MySensors.vovka1973 писал(а):извените за назойливость
Вот такие данные я собираю со своих сенсоров
[spoiler=Спойлер]Это данные с одного из трёх датчиков влажности и датчик температуры, одной ноды.
Это данные с моего освежителя воздуха Это данные проекта ЛОС при отладке на макетной плате для этого проекта который будет всё-таки на MySensors. [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:13, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 355
- Зарегистрирован: 12 окт 2016, 19:03
- Откуда: Краснодар
MySensors
Ума не приложу как оно должно работать...
Пробовал по разному и всё равно не получается, что то я недопонимаю...
Добавлено (25.11.2017, 00:58)
---------------------------------------------
Проекты что то не цепляются... Прикрепляю файлы ino, flp попробую позже прикрепить.
Пробовал по разному и всё равно не получается, что то я недопонимаю...
Добавлено (25.11.2017, 00:58)
---------------------------------------------
Проекты что то не цепляются... Прикрепляю файлы ino, flp попробую позже прикрепить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Александр_Светлый 25 ноя 2017, 01:22, всего редактировалось 1 раз.
Я не флудер , просто мне есть что сказать =)
MySensors
Приветствую, если Вы опишите что хотите сделать я постараюсь помочь. По предоставленным скетчам могу сказать следующее, что касаемо MySensors:
В первом Вы поправили шапку,то что до void setup() правильно, т.е. подключение библиотек перенесли после объявления констант (#define), но в конце у кода две функции презентации и неисправленная функция void receive(const MyMessage &message)
Первая картинка начало скетча до правки, вторая после.
Удалил закомментированные строки для лучшей наглядности
[spoiler=Спойлер] [/spoiler]
В конце скетча необходимо тоже сделать правки
[spoiler=Спойлер]До После [/spoiler]
Во втором скетче у вас просто скомпилированный проект из Flprog без правок.
Посмотрев скетчи я так понял, Вы хотите на одном устройстве получать данные и передавать их на другое устройство для вывода на дисплей. Если так то вам необходимо ещё третье устройство, которое обеспечивает маршрутизацию, называемое гейт(шлюз), т.к. в данной версии библиотеки MySensors нет прямого взаимодействия между 2-мя устройствами, в ближайшее время выйдет обновление библиотеки (версия 2.2) с данным функционалом. Также в секции define на обоих устройствах необходимо раскомментировать строку #define MY_NODE_ID и указать номера устройств в диапазоне от (1-254), а в пользовательских настройках устройства, которое должно отправлять данные, указать в параметре destination, id принимающего устройства.
P.S. протокол MySensors разработан для создания "Интернета вещей"(IoT), где подразумевается создание целой эко-системы, в которой более 2-х устройств способны получать данные с различных датчиков, обмениваться ими в своей сети, управлять исполнительными устройствами, на основе полученных данных, а также собирать и хранить их на контроллере(сервере) для последующей обработки.
Добавлено (25.11.2017, 14:18)
---------------------------------------------
Рекомендую также постоянно обновлять блоки, т.к. я постоянно их обновляю при нахождении и/или исправлении каких-то неточностей или ошибок.
В первом Вы поправили шапку,то что до void setup() правильно, т.е. подключение библиотек перенесли после объявления констант (#define), но в конце у кода две функции презентации и неисправленная функция void receive(const MyMessage &message)
Первая картинка начало скетча до правки, вторая после.
Удалил закомментированные строки для лучшей наглядности
[spoiler=Спойлер] [/spoiler]
В конце скетча необходимо тоже сделать правки
[spoiler=Спойлер]До После [/spoiler]
Во втором скетче у вас просто скомпилированный проект из Flprog без правок.
Посмотрев скетчи я так понял, Вы хотите на одном устройстве получать данные и передавать их на другое устройство для вывода на дисплей. Если так то вам необходимо ещё третье устройство, которое обеспечивает маршрутизацию, называемое гейт(шлюз), т.к. в данной версии библиотеки MySensors нет прямого взаимодействия между 2-мя устройствами, в ближайшее время выйдет обновление библиотеки (версия 2.2) с данным функционалом. Также в секции define на обоих устройствах необходимо раскомментировать строку #define MY_NODE_ID и указать номера устройств в диапазоне от (1-254), а в пользовательских настройках устройства, которое должно отправлять данные, указать в параметре destination, id принимающего устройства.
P.S. протокол MySensors разработан для создания "Интернета вещей"(IoT), где подразумевается создание целой эко-системы, в которой более 2-х устройств способны получать данные с различных датчиков, обмениваться ими в своей сети, управлять исполнительными устройствами, на основе полученных данных, а также собирать и хранить их на контроллере(сервере) для последующей обработки.
Добавлено (25.11.2017, 14:18)
---------------------------------------------
Рекомендую также постоянно обновлять блоки, т.к. я постоянно их обновляю при нахождении и/или исправлении каких-то неточностей или ошибок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:26, всего редактировалось 2 раза.
-
- Лейтенант
- Сообщения: 355
- Зарегистрирован: 12 окт 2016, 19:03
- Откуда: Краснодар
MySensors
Добрый вечер. Со скетчами теперь понял, приложил их для того, чтобы хоть что то понятно было т.к. проекты ни в какую не прикрепились ночью. Да и сейчас пришлось в архив пихнуть чтоб загрузить.
По сути дела у меня к одной Ардуине подсоединён эл. компас HMC5883L и NRF24 а ко второй NRF24 и дисплей на ТМ1637 (можно и Oled маленький 128Х64, есть один).
Одна будет стоять на мачте УКВ антенны и вращаться вместе с ней вычисляя на какой азимут повёрнута антенна а вторая в радиорубке принимать данные и выводить на дисплей. Возможно доработаю для управления приводом, но пока и это не могу заставить работать.
Добавлено (25.11.2017, 17:34)
---------------------------------------------
Два устройства потому что больше пока не нужно, просто нечего считывать. Можно конечно и метеостанцию запихнуть вместе с компасом, портов хватает (может не хватить памяти) но опять же нет смысла в шлюзе, мне просто нужно передать с одного устройства на другое. Неизвестно как ещё оно поведёт себя неподалёку от УКВ антенны, пока что там будет 50Вт но в будущем планируется стек из 4-х девяти метровых антенн и 1-1,5КВт мощности для EME связей, тут то думаю оно как раз и завершит своё существование...
По сути дела у меня к одной Ардуине подсоединён эл. компас HMC5883L и NRF24 а ко второй NRF24 и дисплей на ТМ1637 (можно и Oled маленький 128Х64, есть один).
Одна будет стоять на мачте УКВ антенны и вращаться вместе с ней вычисляя на какой азимут повёрнута антенна а вторая в радиорубке принимать данные и выводить на дисплей. Возможно доработаю для управления приводом, но пока и это не могу заставить работать.
Добавлено (25.11.2017, 17:34)
---------------------------------------------
Два устройства потому что больше пока не нужно, просто нечего считывать. Можно конечно и метеостанцию запихнуть вместе с компасом, портов хватает (может не хватить памяти) но опять же нет смысла в шлюзе, мне просто нужно передать с одного устройства на другое. Неизвестно как ещё оно поведёт себя неподалёку от УКВ антенны, пока что там будет 50Вт но в будущем планируется стек из 4-х девяти метровых антенн и 1-1,5КВт мощности для EME связей, тут то думаю оно как раз и завершит своё существование...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Александр_Светлый 25 ноя 2017, 17:36, всего редактировалось 1 раз.
Я не флудер , просто мне есть что сказать =)
MySensors
Немного поправил параметры пользователя и удалил генератор в проекте дисплея, т.к. высокий уровень на входе Send нужен только для отправки данных, при получении новых данных должен быть импульс на выходе New и данные на Incoming_data.
[spoiler=Спойлер]Компас Дисплей [/spoiler]
Проект прилагаю, а также скетчи для библиотеки 2.2 которую можете скачать по ссылке и установить в Arduino IDE нажав меню Скетч>Подключить библиотеку>Добавить .ZIP библиотеку... и указать на скаченный архив. После подключения скомпилировать данные скетчи и прошить Ваши устройства. Если всё сделано правильно теоретически должно заработать.
[spoiler=Спойлер]Компас Дисплей [/spoiler]
Проект прилагаю, а также скетчи для библиотеки 2.2 которую можете скачать по ссылке и установить в Arduino IDE нажав меню Скетч>Подключить библиотеку>Добавить .ZIP библиотеку... и указать на скаченный архив. После подключения скомпилировать данные скетчи и прошить Ваши устройства. Если всё сделано правильно теоретически должно заработать.
Смысл в шлюзе может быть например для обновления прошивки по воздуху. Вот установите данный девайс на мачту и решите, что время отправки слишком частое или наоборот редкое, скомпилировали прошивку с новыми параметрами в IDE и полученный hex-файл отправили для установки по воздуху не прибегая к снятию устройства, удобно?Александр_Светлый писал(а):но опять же нет смысла в шлюзе
Время покажет, но думаю точно придётся экранировать устройство и возможно использовать nRF24 с выносной антенной.Александр_Светлый писал(а):тут то думаю оно как раз и завершит своё существование...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mikhail72 10 фев 2018, 15:29, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 355
- Зарегистрирован: 12 окт 2016, 19:03
- Откуда: Краснодар
MySensors
Обновил библиотеку и опробовал исправленный Вами скетч, не работает
На Arduino Nano к которой подключен компас моргает светодиод но при этом на Uno с дисплеем тишина.
Думал купить и поставить "радиоудлинитель" порта, но побоялся что ему будет плохо когда я буду работать на 430 мГц, антенна у меня на два диапазона, 145 и 430мГц.
Добавлено (26.11.2017, 02:38)
---------------------------------------------
Есть у меня один Ethernet шилд, можно было бы и с ним, но неохота лепить то, в чём нет никакой необходимости (в данном случае), это устройство должно работать автономно и возможно даже в полевых условиях. Поэтому основные критерии это мобильность, минимум компонентов, возможность работать автономно (от АКБ). В поле я не повезу привод для антенны, не нужен он там, всё руками крутится а вот такой компас займёт минимум места и будет полезен.
Добавлено (26.11.2017, 02:46)
---------------------------------------------
Было бы не плохо ещё и на телефон по WI-FI передавать в полевых условиях, в 99% случаев он с собой, но это уже так, скорее приятные "плюшки" чем необходимость.
На Arduino Nano к которой подключен компас моргает светодиод но при этом на Uno с дисплеем тишина.
Думал купить и поставить "радиоудлинитель" порта, но побоялся что ему будет плохо когда я буду работать на 430 мГц, антенна у меня на два диапазона, 145 и 430мГц.
Добавлено (26.11.2017, 02:38)
---------------------------------------------
Есть у меня один Ethernet шилд, можно было бы и с ним, но неохота лепить то, в чём нет никакой необходимости (в данном случае), это устройство должно работать автономно и возможно даже в полевых условиях. Поэтому основные критерии это мобильность, минимум компонентов, возможность работать автономно (от АКБ). В поле я не повезу привод для антенны, не нужен он там, всё руками крутится а вот такой компас займёт минимум места и будет полезен.
Добавлено (26.11.2017, 02:46)
---------------------------------------------
Было бы не плохо ещё и на телефон по WI-FI передавать в полевых условиях, в 99% случаев он с собой, но это уже так, скорее приятные "плюшки" чем необходимость.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Александр_Светлый 26 ноя 2017, 02:49, всего редактировалось 1 раз.
Я не флудер , просто мне есть что сказать =)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость