Протокол обмена для тепличного оборудования

terminal
Offline
Зарегистрирован: 02.09.2015

Всем привет ! Сейчас разрабатываю свой протокол для тепличного оборудования. Если кто желает присоединиться то пишите или сюда или в личку. Проект для себя, оплаты не ждите.

Radjah
Offline
Зарегистрирован: 06.08.2014

Бесплатно тут только послать могут. ;)

terminal
Offline
Зарегистрирован: 02.09.2015

Протокол это когда заинтересованные люди сели и доноворились.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Только тепличного? Я вот думаю как бы у меня курятник, теплица, сигнализация и модуль управления обменивальсь данными.

Но пока не придумал, а в чем фишка именно тепличного протокола? У вас несколько теплиц? 

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

terminal пишет:
Протокол это когда заинтересованные люди сели и доноворились.
Когда заинтересованные люди не могут договориться, они обращаются в суд, и становятся истцом и ответчиком, а протокол ведет помощник судьи.
Видимо речь о протоколе передачи данных. Сначала надо бы определить среду передачи данных и интерфейс.

terminal
Offline
Зарегистрирован: 02.09.2015

Andy пишет:

terminal пишет:
Протокол это когда заинтересованные люди сели и доноворились.
Когда заинтересованные люди не могут договориться, они обращаются в суд, и становятся истцом и ответчиком, а протокол ведет помощник судьи.
Видимо речь о протоколе передачи данных. Сначала надо бы определить среду передачи данных и интерфейс.

Согласен. Хотел бы все построить на 485 из-за дешевизны, скорость 250К  как в DMX512ом. Многие пишут что делать на модбасе. Но там много фишек которые не подходят для меня. В частности нет шифрования данных, устройств всего 255 на линии.

terminal
Offline
Зарегистрирован: 02.09.2015

Andrey12 пишет:

Только тепличного? Я вот думаю как бы у меня курятник, теплица, сигнализация и модуль управления обменивальсь данными.

Но пока не придумал, а в чем фишка именно тепличного протокола? У вас несколько теплиц? 

Точнее протокол обмена данными между датчиками и исполнительными устройствами. Может и есть что-то готовое но я пока не натыкался.

dim
Offline
Зарегистрирован: 09.01.2012

Modbus чем не устраивает?

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

Наверно тем, что его разрабатывать не надо.

terminal
Offline
Зарегистрирован: 02.09.2015

dim пишет:

Modbus чем не устраивает?

Как контроллер узнает что за датчик стоит в сети ? Получается что всеровно что-то лепить прийдется. Кто ему будет назначать адрес. 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

я у себя передаю по 2.4Ггц, nrfl01 полно на али которые работают на растоянии около 1 км, просто посылаете массив чисел из которых одно идентификатор вашего устройства, остальное данные, и не надо придумывать велосипед:)

terminal
Offline
Зарегистрирован: 02.09.2015

Valera19701 пишет:

я у себя передаю по 2.4Ггц, nrfl01 полно на али которые работают на растоянии около 1 км, просто посылаете массив чисел из которых одно идентификатор вашего устройства, остальное данные, и не надо придумывать велосипед:)

Допустим для себя да, а если это колективно. Контроль данных, какие устройства сидят на линии ? Как определить ? Что за датчики ? Что за исполнительные устройства ?

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

вы все равно будете начинать сначала, придумайте разные id например из 2 букв в начале- что за сосед. 2 цифры - что за устройство и.т д

terminal
Offline
Зарегистрирован: 02.09.2015

Valera19701 пишет:

вы все равно будете начинать сначала, придумайте разные id например из 2 букв в начале- что за сосед. 2 цифры - что за устройство и.т д

Хотелось колективного участия, а то людям нужна всякая автоматизация и все это пытаются в один МК засунуть. Я уже дошел до уровня разделения. Пришел к тому что прийдется писать свой протокол. Вот и пытаюсь народ подвигнуть чтоб он не только для меня был удобен.

switch
Offline
Зарегистрирован: 07.12.2015

А народу это зачем? Что такого уникального в  "тепличном" протоколе? В теплице три объекта: градусник, форточка, нагреватель. И один субъект - контроллер. Что протоколировать-то? Зачем шифровать? 

MacSim
Offline
Зарегистрирован: 28.11.2012

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

человека надо поддержать, может напишет и модбас с криптошифрованием данных.

только не надотак, как у некоторых: 1 меседж: нужна тарелка борща, научите борщь готовить. 2 меседж: да мне то тарелка борща нужна, налейте готового.

terminal
Offline
Зарегистрирован: 02.09.2015

MacSim пишет:

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

человека надо поддержать, может напишет и модбас с криптошифрованием данных.

только не надотак, как у некоторых: 1 меседж: нужна тарелка борща, научите борщь готовить. 2 меседж: да мне то тарелка борща нужна, налейте готового.

У меня сложилось впечатление что кроме модбаса и протоколов больше нет. Ни куда не деться от части этого протокола. Таких как контрольная сумма и.т.д. Почему новый, да потому что так удобно ! Мне удобно заложить в протокол определенное место для данных, определенное место для адреса, для команды и.т.д. Зачем заниматься извращением и крутить модбас, когда уже много протоколов которые специально заточены под конкретные цели. Часть протокола можно взять и от модбаса.Вот начал накидывать: 

0xA5 -  маркер начала старт байт
0x00 - длинна пакета 34-255   (221 для данных)
ID - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 кому
ID - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 кто
0x00,0x00 - номер пакета в пачке пакетов
0x01 - версия пакета
0x00 - тип данных,команда,
0x00,0x00 - расширение данных, подтип данных
0x00 - статус
0x00 - тип кодирования 0 значит без кодирования
0x00 - тип устройства, номер порта
0x00,0x00 -подтип устройства
0x00 - адрес старший байт
0x00 - адрес средний байт
0x00 - адрес младший байт
0-222 данные
0x00,0x00 - контрольная сумма паета
 
 
Команда Получить ID 
A5 22 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 00 01 C0 00 01 00 00 00 00 00 00 00 00 09 BE
0xC0   - тип данных комманда
 
посмотреть номер паекта в пачке пакета, если нулевой то начинаем считать, в случае пропуска пакета 
просьбу повторить пакет с утеренным номером,выставляем в ответе статус потеря пакета
смотрим версию пакета если первый то продолжить если другой то ошибка не извесный номер пакета,
просьба обновить програмное обеспечение
смотрим тип кодирования, если есть такой тип в базе то продолжить,
если нет то просим обновить програмное обеспечение 
смотрим статус, если ноль то продолжаем
 
 
 
0x00,0x01   - получить UID
 
 
(60) 0x00,0x3C - загрузка буфера от 1 до 222 байт данных и указатель на адрес в буфере в протоколе
 
(61) 0x00,0x3D - записать страницы буфера в 24С1024, адрес в 24с1024 указан в протоколе
 
(62) 0x00,0x3E - перезапуск программы
 
Критика принимается !!!!
ESV
Offline
Зарегистрирован: 16.12.2015

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

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

Квитинг после каждого пакета?

Или я так понимаю это у вас одногранговая  сеть с маршрутизацией? Пакеты разделяются таймслотами?  Как с коллизиями бороться собрались?

опишите хоть логику работы сети, скорее всего  за 50 лет арпанета есть готовое решение.

А так сложилость впечтление что это не RS485 и не теплица.

Кто в тёмную играть соберётся, не знаю.

switch
Offline
Зарегистрирован: 07.12.2015

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

terminal
Offline
Зарегистрирован: 02.09.2015

ESV пишет:

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

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

Квитинг после каждого пакета?

Или я так понимаю это у вас одногранговая  сеть с маршрутизацией? Пакеты разделяются таймслотами?  Как с коллизиями бороться собрались?

опишите хоть логику работы сети, скорее всего  за 50 лет арпанета есть готовое решение.

А так сложилость впечтление что это не RS485 и не теплица.

Кто в тёмную играть соберётся, не знаю.

Часть взял от RDM и DMX512, на счет тип кодирования поднять выше согласен, тогда и сама команда будет зашифрована. Но это даст тем кто знает протокол часть зашифрованых данных. К примеру посылаем команду на обновление ПО, протокол открытый и тот кто пролучит эти данные будет знать что значат первые три байта хотя они под шифром.

вот пример работы

Еще планируется такая ситуация когда исполнительное устройство слушает шину и реагирует на события от датчика, также в сети будет сидеть комп, но не в качестве мастера а в качестве монитора сети. То есть мастер общается с датчиками а комп выводит данные в сети. (инет или сайт)

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

Из датчиков : термометры, датчики влажности, давления, уровня жидкостей, освещенности и.т.д.

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

 

terminal
Offline
Зарегистрирован: 02.09.2015

Запись даннах в AT24C1024 пример 5-и транзакций, ответа от слейва пока нет.

Òðàíçàêöèÿ =0
A5 A2 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 00 01 C0 00 3C 00 00 00 00 00 00 00 00 11 00 00 01 01 10 01 16 02 5C 09 00 00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 0D E5 
Òðàíçàêöèÿ =1
A5 A2 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 01 01 C0 00 3C 00 00 00 00 00 00 00 80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 8A 7A 
Òðàíçàêöèÿ =2
A5 22 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 02 01 C0 00 3D 00 00 00 00 00 00 00 00 09 FC 
Òðàíçàêöèÿ =3
A5 A2 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 03 01 C0 00 3C 00 00 00 00 00 00 01 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 89 FD 
Òðàíçàêöèÿ =4
A5 A2 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 04 01 C0 00 3C 00 00 00 00 00 00 01 80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 8A 7E 
Òðàíçàêöèÿ =5
A5 22 FF FF FF FF FF FF FF FF 05 37 00 00 00 00 00 01 00 05 01 C0 00 3D 00 00 00 00 00 00 01 00 0A 00