ПОМОГИТЕ кому не сложно ARDUINO датчики
Модератор: immortal
-
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Распберри я хочу убрать вообще он тогда не нужен будет. Общение простое запрос на данные http//192.168.1.xx/?cmd= команда , а ответ от ардуины идет так HTTP/1.1 200 OK, Content-Type: text/html ,Access-Control-Allow-Origin: * далее идут данные P1=xx, P2=xx итд. Когда делаю запрос по на ардуину с пустой страницы ардуинка выводит на страницу тупо P1=xx, P2=xx итд. как этот ответ разобрать на отдельные переменные. Сейчас у меня вот так
[img] [/img]
А хотелось бы разбирать в одном запросе, что бы не плодить кучу запросов. В ajax тоже не гуру писал по книгам и форумам.
[img] [/img]
А хотелось бы разбирать в одном запросе, что бы не плодить кучу запросов. В ajax тоже не гуру писал по книгам и форумам.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Примерно понял...че-то было у меня подобное в коде...дома буду - посмотрю, если не забуду)) Веб-переменными конечно не вариант. Одним запросом как-то правильнее.
Пока могу предложить попробовать такой эксперимент - в адресе веб-переменной вписать http//192.168.1.xx (без команд всяких), а в шаблоне поиска указать че-то типа T1=(\d+), T2=(\d+), T3=(\d+) и т.д. со всеми значениями. То есть одной веб-переменной забрать все данные. В итоге должен получится массив со всеми данными, но не уверен, на сколько правильно это сработает в оболочке вэб-переменных.
Пока могу предложить попробовать такой эксперимент - в адресе веб-переменной вписать http//192.168.1.xx (без команд всяких), а в шаблоне поиска указать че-то типа T1=(\d+), T2=(\d+), T3=(\d+) и т.д. со всеми значениями. То есть одной веб-переменной забрать все данные. В итоге должен получится массив со всеми данными, но не уверен, на сколько правильно это сработает в оболочке вэб-переменных.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
nick7zmail спасибо за ответ. запрос без команды ни как. В зависимости от того что идет в запросе сервер на дуине и отвечает. Либо это расценивается как команда к действию с конкретным датчиком или устройством либо выдать в сеть запрашиваемому все данные накопленные со всех датчиков в каком он состоянии, температура итд. можно конечно это все поделить в дуине на конкретные запросы и ответы но не вижу смысла дополнительно ее нагружать если это все можно выдать на один запрос. А вот команды уже да поделить на конкретные......
-
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Честно - забыл дома посмотреть код))Sergey2055 писал(а):Ауууу. есть кто живой помогите плииииз.
Вы проверили - если в запросе указывать страничку, где все параметры разом отображаются, а в шаблоне поиска - несколько (/d+), то на выходе получается массив?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Как вариант показания датчиков можно записать в объект.
В MajorDomo создаём объект, например TERMOMETER в нем создаем свойства tenm1, temp2, temp3.
Для того чтобы записать показания датчиков температуры в этот объект, отправляем строку вот такого вида из ардуины или esp.
Для проверки работоспособности строки, ее можно отправить через браузер.
Еще можно вызвать метод для совершения каких либо действий при изменения свойства объекта.
Тут есть примеры кода http://majordomo.smartliving.ru/forum/v ... f=3&t=2793
В MajorDomo создаём объект, например TERMOMETER в нем создаем свойства tenm1, temp2, temp3.
Для того чтобы записать показания датчиков температуры в этот объект, отправляем строку вот такого вида из ардуины или esp.
Код: Выделить всё
http://192.168.1.14/objects/object=TERMOMETER&op=set&p=temp1&v=23&p=temp2&v=31&p=temp3&v=18
Еще можно вызвать метод для совершения каких либо действий при изменения свойства объекта.
Код: Выделить всё
http://192.168.1.14/objects/object=TERMOMETER&op=m&m=mymetod&temp1=22
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
В общем, чтобы "в слепую" не гадать, в каком формате у вас всё выдаётся, предложу свой, вполне работоспособный, но далеко не единственный вариант.
Делаете новую команду в ардуине, которая выдаёт данные в формате json. Выглядеть итог должен примерно так:И так далее для всех свойств.
Потом запрашиваете таким кодом:
В итоге в объекте "arduino" должны появится свойства T1, P1 и т.д. со всеми значениями.
Естественно перед этим нужно создать сам объект arduino.
PS: Не факт что код рабочий =D, проверить негде, если что - пишите.
Делаете новую команду в ардуине, которая выдаёт данные в формате json. Выглядеть итог должен примерно так:
Код: Выделить всё
[{"name":"T1","val":<тут значение Т1>}, {"name":"P1","val":<тут значение P1>},...]
Потом запрашиваете таким кодом:
Код: Выделить всё
$content=getURL('http://<ваш адрес ардуины/команда на запрос json>', 0);
$data=json_decode($content);
foreach ($data as $key => $value) {
setGlobal('arduino.'.$value->name, $value->val);
}
Естественно перед этим нужно создать сам объект arduino.
PS: Не факт что код рабочий =D, проверить негде, если что - пишите.
Как вариант - да...можно прямо из ардуины данные заносить, но вопрос был - как из МД запросить данные с ардуины)). Отвечал, исходя из этого.VladPTZ писал(а):Как вариант показания датчиков можно записать в объект.
В MajorDomo создаём объект, например TERMOMETER в нем создаем свойства tenm1, temp2, temp3.
Для того чтобы записать показания датчиков температуры в этот объект, отправляем строку вот такого вида из ардуины или esp.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 395
- Зарегистрирован: Вт май 31, 2016 6:56 pm
- Откуда: Россия Карелия Петрозаводск
- Благодарил (а): 95 раз
- Поблагодарили: 57 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Тогда как вариант MajorDomo отправляет по http строку которой содержится команда на запрос данных, ардуина собирает показания датчиков и отправляет выше указанную стоку с данными в MD.nick7zmail писал(а):Как вариант - да...можно прямо из ардуины данные заносить, но вопрос был - как из МД запросить данные с ардуины)). Отвечал, исходя из этого.
Сервер МД на x86 micro pc ssd + HDD, OC Debian, терминал Xiaomi Redmi note 7
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
Мои исходники для мд управляемых устройств https://github.com/vgamaev/ESPMDDEVICE
-
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
Всем привет. VladPTZ ваш предложенный вариант по записи значений в объект немного не пойдет. Смысл вот в чем я хочу что бы если вдруг по каким причинам запрос или ответ не пройдет то через некоторое время при запросе от MD ардуина ответит сбросив все параметры если опять не прошел то через некоторое время опять все повториться и я буду знать включился например свет или нет а при работе о объектом может быть следующее я команду отправил свет включился а ответ что включился не дошел и у меня будет в MD значиться что свет выключен. А как я хочу даже если что и не прошло то через некоторое время система обновиться.
nick7zmail вам тоже спасибо за ответ. Ваш код обязательно попробую, как только найду пустую ардуину. Серверную трогать и ломать пока не буду, она находится в работе.
nick7zmail вам тоже спасибо за ответ. Ваш код обязательно попробую, как только найду пустую ардуину. Серверную трогать и ломать пока не буду, она находится в работе.
Последний раз редактировалось Sergey2055 Вт сен 13, 2016 9:17 am, всего редактировалось 1 раз.
-
- Сообщения: 73
- Зарегистрирован: Ср авг 31, 2016 7:54 am
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
Re: ПОМОГИТЕ кому не сложно ARDUINO датчики
да и по поводу ответа ардуины, чтобы вам не гадать как отвечает ардуина а там уже все я сформировал вот выкладываю копию с читой страницы при запросе к ардуине : Us=203:Is=1:Ps=160:Fs=50:Tout=21:Bout=808:T1=28:H1=35:T2=27:H2=31:T3=0:H3=0:T4=25:H4=18:T5=0:H5=0:T6=17:H6=46:V1=3.69:V2=5.76:OUT1=0:OUT2=0:OUT3=0:OUT4=0:OUT5=0:OUT6=0:OUT7=0:OUT8=0:OUT9=0:OUT10=1:OUT11=0:OUT12=0:OUT13=0:OUT14=0:OUT15=0:OUT16=0:
Это чисто такой ответ при запросе на выдачу всех данных. Вот их и надо в MD забрать одним запросом в массив скажем а потом разобрать и распихать по объектам в чем у меня и загвоздка. Я сейчас делаю запрос и из него выделяю конкретную переменную и пихаю в объект из-за чего у меня получилось куча веб переменных. А это немного не правильно я считаю, надо как то это все уложить в один запрос. Можно конечно немного подправить ответ если нельзя разобрать такую строку.
Это чисто такой ответ при запросе на выдачу всех данных. Вот их и надо в MD забрать одним запросом в массив скажем а потом разобрать и распихать по объектам в чем у меня и загвоздка. Я сейчас делаю запрос и из него выделяю конкретную переменную и пихаю в объект из-за чего у меня получилось куча веб переменных. А это немного не правильно я считаю, надо как то это все уложить в один запрос. Можно конечно немного подправить ответ если нельзя разобрать такую строку.
Последний раз редактировалось Sergey2055 Вт сен 13, 2016 9:13 am, всего редактировалось 1 раз.