Страница 3 из 4

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Чт янв 17, 2019 9:19 pm
saf47
fandaymon писал(а): Чт янв 17, 2019 9:11 pm
saf47 писал(а): Чт янв 17, 2019 8:28 pm как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Так надо посмотреть какие устройства в /dev есть. И если всё-таки действительно обмен идёт через ttyUSB0 или ttyUSB1, то просто в код цикла на PHP этот порт захардкодить (убрать с 34 по 48 строчки и вписать в 54 свой порт)
fandaymon писал(а): Чт янв 17, 2019 9:11 pm
saf47 писал(а): Чт янв 17, 2019 8:28 pm как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Так надо посмотреть какие устройства в /dev есть. И если всё-таки действительно обмен идёт через ttyUSB0 или ttyUSB1, то просто в код цикла на PHP этот порт захардкодить (убрать с 34 по 48 строчки и вписать в 54 свой порт)
Я смотрел, точно через ttyISB, вот только включаю в один и тот же разъем,а он иногда меняет порт ttyISB 1 то ttyISB 0, наверно нужно проверку в скрипте поставить?

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Чт янв 17, 2019 9:35 pm
fandaymon
saf47 писал(а): Чт янв 17, 2019 9:19 pm
fandaymon писал(а): Чт янв 17, 2019 9:11 pm
saf47 писал(а): Чт янв 17, 2019 8:28 pm как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Так надо посмотреть какие устройства в /dev есть. И если всё-таки действительно обмен идёт через ttyUSB0 или ttyUSB1, то просто в код цикла на PHP этот порт захардкодить (убрать с 34 по 48 строчки и вписать в 54 свой порт)
fandaymon писал(а): Чт янв 17, 2019 9:11 pm
saf47 писал(а): Чт янв 17, 2019 8:28 pm как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Так надо посмотреть какие устройства в /dev есть. И если всё-таки действительно обмен идёт через ttyUSB0 или ttyUSB1, то просто в код цикла на PHP этот порт захардкодить (убрать с 34 по 48 строчки и вписать в 54 свой порт)
Я смотрел, точно через ttyISB, вот только включаю в один и тот же разъем,а он иногда меняет порт ttyISB 1 то ttyISB 0, наверно нужно проверку в скрипте поставить?
Тут я не подскажу... Есть опыт реализации датчики подключенные к пинам малины - питон - МДМ и ардуина - USB - рутер под OpenWRT - баш - wifi - МДМ, а вот чтобы ардуино-USB-малина опыта не было. Может быть где в настройках дебиана можно зафиксировать чтобы одно и тоже устройство всегда подключалась к одному и тому же порту

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Чт янв 17, 2019 10:09 pm
ИванДрон
Здравствуйте!

Можно подключить Ардуино к Малине по шине OneWire, по одному I/O выводу.
Причем этот протокол или технология дуплексная и позволяет общаться устройствам по одному проводу, ну и GND конечно не забываем :D

Библиотека под Ардуино есть, а вот под Малину не видел, может тоже есть.

У кого нибудь есть подобный опыт?

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 10:57 am
m_andrey
Имею опыт подключения электросчетчика с RS485 к МД по MQTT. Реализация следующая. ESP8266 c переходником Serial->RS485. ESP читает топик input и все пришедшие отправляет в RS485 и наоборот все что пришло с порта отправляется в топик output. Если проще MQTT<->RS485 мост.

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 2:14 pm
saf47
saf47 писал(а): Чт янв 17, 2019 8:28 pm
saf47 писал(а): Чт янв 17, 2019 8:24 pm
fandaymon писал(а): Чт янв 17, 2019 8:20 pm
saf47 писал(а): Чт янв 17, 2019 8:06 pm
fandaymon писал(а): Чт янв 17, 2019 7:59 pm
saf47 писал(а): Чт янв 17, 2019 7:41 pm у меня ардуина на порту в raspberry определяется как /dev/ttyUSB0 или ttyUSB1, скрипт сам определит порт подключения? И еще в Status я могу записать как один параметр так и строку параметров, например через запятую?
Ммм... Порт должен быть ttyAСM, тогда скрипт сам подхватит. И скорость обмена там стоит 9600
В приведенном примере status это название свойства, в которое записывается значение, передающееся параметром v
Несколько свойств присваивать я не пробовал, не уверен что получится. У меня сделано так, что несколько свойств передаются несколькими строчками. Если это зачем-то нужно, тогда надо вызывать метод с несколькими параметрами, чтобы потом этот метод разнёс параметры по свойствам объекта
с портом сейчас разберусь, а такой еще вопросик, в запросе

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

sprintf(buf, "GET /objects/?/objects/?op=set&object=uno&p=status&v=%1 HTTP/1.0", (int)current_garage);
, чтобы изменить только свойство, переменная которую необходимо записать помещаем в (int)current_garage, или я не прав?
так правильней

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

sprintf(buf, "GET /objects/?op=set&object=uno&p=status&v=%1 HTTP/1.0", (int)current_garage);
этот sprintf подставляет вместо %1, то что находится во втором аргументе, т.е. в данном случае (int)current_garage, целую часть от того что хранится в переменной current_garage
Если где-нибудь в ардуиновском скрипте мы вычислили температуру и занесли её в переменную temp_room, а потом хотим записать её в свойство temp, то строчка будет выглядеть так

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

sprintf(buf, "GET /objects/?op=set&object=uno&p=temp&v=%1 HTTP/1.0", (int)temp_room);
спасибо, с этим теперь все ясно. теперь ищу как порт на ttyAMA0 настроить
как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Здравствуйте! опять я по вашу душу. Запустил скрипт: sample_cycle_arduino_direct.php, просто из командной строки, и он у меня ругается на библиотеки в начале скрипта, то есть он их не может открыть. Что ни будь на это можете мне подсказать?

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 2:36 pm
saf47
saf47 писал(а): Пт янв 18, 2019 2:14 pm
saf47 писал(а): Чт янв 17, 2019 8:28 pm
saf47 писал(а): Чт янв 17, 2019 8:24 pm
fandaymon писал(а): Чт янв 17, 2019 8:20 pm
saf47 писал(а): Чт янв 17, 2019 8:06 pm
fandaymon писал(а): Чт янв 17, 2019 7:59 pm
saf47 писал(а): Чт янв 17, 2019 7:41 pm у меня ардуина на порту в raspberry определяется как /dev/ttyUSB0 или ttyUSB1, скрипт сам определит порт подключения? И еще в Status я могу записать как один параметр так и строку параметров, например через запятую?
Ммм... Порт должен быть ttyAСM, тогда скрипт сам подхватит. И скорость обмена там стоит 9600
В приведенном примере status это название свойства, в которое записывается значение, передающееся параметром v
Несколько свойств присваивать я не пробовал, не уверен что получится. У меня сделано так, что несколько свойств передаются несколькими строчками. Если это зачем-то нужно, тогда надо вызывать метод с несколькими параметрами, чтобы потом этот метод разнёс параметры по свойствам объекта
с портом сейчас разберусь, а такой еще вопросик, в запросе

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

sprintf(buf, "GET /objects/?/objects/?op=set&object=uno&p=status&v=%1 HTTP/1.0", (int)current_garage);
, чтобы изменить только свойство, переменная которую необходимо записать помещаем в (int)current_garage, или я не прав?
так правильней

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

sprintf(buf, "GET /objects/?op=set&object=uno&p=status&v=%1 HTTP/1.0", (int)current_garage);
этот sprintf подставляет вместо %1, то что находится во втором аргументе, т.е. в данном случае (int)current_garage, целую часть от того что хранится в переменной current_garage
Если где-нибудь в ардуиновском скрипте мы вычислили температуру и занесли её в переменную temp_room, а потом хотим записать её в свойство temp, то строчка будет выглядеть так

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

sprintf(buf, "GET /objects/?op=set&object=uno&p=temp&v=%1 HTTP/1.0", (int)temp_room);
спасибо, с этим теперь все ясно. теперь ищу как порт на ttyAMA0 настроить
как вы думаете может какая то программа настраивает порт не правильно, у меня Arduino ID , Processing установлены, не могут случайно он порт переназначать?
Здравствуйте! опять я по вашу душу. Запустил скрипт: sample_cycle_arduino_direct.php, просто из командной строки, и он у меня ругается на библиотеки в начале скрипта, то есть он их не может открыть. Что ни будь на это можете мне подсказать?
Ну тут сам понял,скрипт для пробы положил в другую директорию. А когда запускаю из правильной , то есть из папки scrits, то выдает ошибки.[imghttps://cloud.mail.ru/public/6mpm/hTZ3XAzHB][/img]

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 3:06 pm
skysilver
Блин, хватить оверквотить!!! Если себя не жалко, то о других подумайте.

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 7:33 pm
saf47
кто ни будь знает почему скрипт sample_cycle_arduino_direct.php, после запуска дает ошибку на строку: chdir(dirname(__FILE__) . '/../');
пишет синтаксическая ошибка- рядом неожиданный знак ' dirname'

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Пт янв 18, 2019 8:55 pm
skysilver
saf47 писал(а): Пт янв 18, 2019 7:33 pm кто ни будь знает почему скрипт sample_cycle_arduino_direct.php, после запуска дает ошибку на строку: chdir(dirname(__FILE__) . '/../');
пишет синтаксическая ошибка- рядом неожиданный знак ' dirname'
Как запускаешь? Скриншот. А то на том, что выше, запуск скрипта неверный - не указан интерпретатор php в начале.

Re: подключение к ардуино к raspberry Pi по RS485

Добавлено: Сб янв 19, 2019 8:27 am
saf47
skysilver писал(а): Пт янв 18, 2019 8:55 pm
saf47 писал(а): Пт янв 18, 2019 7:33 pm кто ни будь знает почему скрипт sample_cycle_arduino_direct.php, после запуска дает ошибку на строку: chdir(dirname(__FILE__) . '/../');
пишет синтаксическая ошибка- рядом неожиданный знак ' dirname'
Как запускаешь? Скриншот. А то на том, что выше, запуск скрипта неверный - не указан интерпретатор php в начале.
спасибо, вы правы, не правильно запускал скрипт.