Помогите с релейным модулем
- Войдите на сайт для отправки комментариев
Ср, 11/10/2017 - 16:46
Здравствуйте. Имеется модуль ардуино, интернет шилд и релейный модуль.
В общем принцып работы такой: Я перехожу по нужному адресу в ардуино, с помощью Enthernet шилда и зажигается реле, перехожу еще раз, реле выключается. Все работает, все прекрасно.
Но вот в чем дело, может ли ардуино, ответить, включил ли он реле, то есть отправить мне, 1 или 0? И если может, как примерно такое организовать?
Сам скетч:
#include <Ethernet.h> #include <SPI.h> #define PIN5 5 #define PIN6 6 #define PIN7 7 #define PIN8 8 #define PIN9 9 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(10, 10, 1, 55); EthernetServer arduino(81); String readString; void setup() { pinMode(PIN5, OUTPUT); digitalWrite(PIN5, LOW); pinMode(PIN6, OUTPUT); digitalWrite(PIN6, LOW); pinMode(PIN7, OUTPUT); digitalWrite(PIN7, LOW); pinMode(PIN8, OUTPUT); digitalWrite(PIN8, LOW); pinMode(PIN9, OUTPUT); digitalWrite(PIN9, LOW); Ethernet.begin(mac, ip); arduino.begin(); Serial.begin(9600); } void loop() { EthernetClient client = arduino.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); if (readString.length() < 100) { readString += c; Serial.print(c); } if (c == '\n') { Serial.println(readString); if(readString.indexOf('?') >=0) { client.println("HTTP/1.1 204"); client.println(); client.println(); } else { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("<html>"); client.println("<head>"); client.println("<title>Arduino</title>"); client.println("</head>"); client.println("<body>"); client.println("<h1>Hi, I'm an Arduino server.</h1>"); client.println("<a href=\"/?Relay_1\">Relay #1</a>"); client.println("<a href=\"/?Relay_2\">Relay #2</a>"); client.println("<a href=\"/?Relay_3\">Relay #3</a>"); client.println("<a href=\"/?Relay_4\">Relay #4</a>"); client.println("<a href=\"/?Relay_5\">Relay #5</a>"); client.println("</body>"); client.println("</html>"); } delay(1); client.stop(); if(readString.indexOf("Relay_1") >0) { digitalWrite(PIN5, ! digitalRead(PIN5)); } if(readString.indexOf("Relay_2") >0) { digitalWrite(PIN6, ! digitalRead(PIN6)); } if(readString.indexOf("Relay_3") >0) { digitalWrite(PIN7, ! digitalRead(PIN7)); } if(readString.indexOf("Relay_4") >0) { digitalWrite(PIN8, ! digitalRead(PIN8)); } if(readString.indexOf("Relay_5") >0) { digitalWrite(PIN9, ! digitalRead(PIN9)); } readString=""; } } } } }
Седня все сговорились. Один резисторы зажигает, другой - реле.
Седня все сговорились. Один резисторы зажигает, другой - реле.
Вы бы знали что в конечном итоге будет запускаться:)
Здравствуйте. Имеется модуль ардуино, интернет шилд и релейный модуль.
В общем принцып работы такой: Я перехожу по нужному адресу в ардуино, с помощью Enthernet шилда и зажигается реле, перехожу еще раз, реле выключается. Все работает, все прекрасно.
Но вот в чем дело, может ли ардуино, ответить, включил ли он реле, то есть отправить мне, 1 или 0? И если может, как примерно такое организовать?
А как ардуина узнает, включилось ли реле? Ну то есть уровень на реле подан. а вот сработало ли оно? И даже если сработало - то это еще не гарантия, что реле включило то, что нужно. Может контакты замкнулись. а на нагрузке просто тока нет.
Это я к тому. что задачка-то не простая. Надо знать, о чем речь. Контролировать лучше не включение реле, а целевой парметр, например если это освещение - ставить фотодатчик. если реле включает компрессор, то контролировать не напряжение компрессора, а давление в системе...
Здравствуйте. Имеется модуль ардуино, интернет шилд и релейный модуль.
В общем принцып работы такой: Я перехожу по нужному адресу в ардуино, с помощью Enthernet шилда и зажигается реле, перехожу еще раз, реле выключается. Все работает, все прекрасно.
Но вот в чем дело, может ли ардуино, ответить, включил ли он реле, то есть отправить мне, 1 или 0? И если может, как примерно такое организовать?
А как ардуина узнает, включилось ли реле? Ну то есть уровень на реле подан. а вот сработало ли оно? И даже если сработало - то это еще не гарантия, что реле включило то, что нужно. Может контакты замкнулись. а на нагрузке просто тока нет.
Это я к тому. что задачка-то не простая. Надо знать, о чем речь. Контролировать лучше не включение реле, а целевой парметр, например если это освещение - ставить фотодатчик. если реле включает компрессор, то контролировать не напряжение компрессора, а давление в системе...
Моё дело включить только реле, чтобы оно сработало и дало ответ. Больше мне не нужно. Всё остальное будет сделано на PHP + MySQLi.
[
Вы бы знали что в конечном итоге будет запускаться:)
Не надо интриги, меня и так всегда пугает мысль о том. кому мы тут помогаем и для каких целей будет использовано радиуправление или реле, включаемое по мобильнику...
Моё дело включить только реле, чтобы оно сработало и дало ответ. Больше мне не нужно. Всё остальное будет сделано на PHP + MySQLi.
если вас не интересует обратная связь, просто считайте. что ваша команда выполнена. Послали сигнал на реле - смело пишите в Маускуэль. что реле включено.
[
Вы бы знали что в конечном итоге будет запускаться:)
Не надо интриги, меня и так всегда пугает мысль о том. кому мы тут помогаем и для каких целей будет использовано радиуправление или реле, включаемое по мобильнику...
Включить я могу реле.
Как мне узнать, включилось ли оно? Как организовать обратную связь?
Моё дело включить только реле, чтобы оно сработало и дало ответ. Больше мне не нужно. Всё остальное будет сделано на PHP + MySQLi.
если вас не интересует обратная связь, просто считайте. что ваша команда выполнена. Послали сигнал на реле - смело пишите в Маускуэль. что реле включено.
Наоборот, обратная связь нужна. Нужно после включения реле, сказать мне, 1 или 0. А включилось ли что то там дальше, меня не интересует.
Наоборот, обратная связь нужна. Нужно после включения реле, сказать мне, 1 или 0. А включилось ли что то там дальше, меня не интересует.
ну блин, у вас же скетч сервера. Там где у вас ссылки на включение реле (строки 60-66) - добавьте отображение ON или OFF в зависмости от текущего состояния
Наоборот, обратная связь нужна. Нужно после включения реле, сказать мне, 1 или 0. А включилось ли что то там дальше, меня не интересует.
ну блин, у вас же скетч сервера. Там где у вас ссылки на включение реле (строки 60-66) - добавьте отображение ON или OFF в зависмости от текущего состояния
Это понятно.
Как записать на сервер, текущее состояние реле (1 или 0).
У меня имеется база MySQL, в неё и нужно передать это значение, в зависимости от состояния реле.
Это я к тому. что задачка-то не простая. Надо знать, о чем речь. Контролировать лучше не включение реле, а целевой парметр, например если это освещение - ставить фотодатчик. если реле включает компрессор, то контролировать не напряжение компрессора, а давление в системе...
Если по-простому - можно поставить сдвоенное и смотреть на дублирующую группу контактов. Или на перекидном - доп.контакт.
Это понятно.
Как записать на сервер, текущее состояние реле (1 или 0).
У меня имеется база MySQL, в неё и нужно передать это значение, в зависимости от состояния реле.
ну если понятно, так сделайте. Как вывести в сериал значение переменной - знаете? Ну так точно так же выведите ее в строчку,, например, 62, которую выдает HTML-сервер.
А чтобы это значение попало в MySQl, вам надо будет написать простенький клиент на десктопе, который опрашивал бы ваш ардуино-сервер раз в 3-5 минут и парсил из HTML переменные реле.
Если по-простому - можно поставить сдвоенное и смотреть на дублирующую группу контактов. Или на перекидном - доп.контакт.
да ему это, как оказалось - нафик не надо, ему надо данные с сервера в MySQl парсить. Непонятно, почему он с этим вопросом в форум Ардуино пришел.
да ему это, как оказалось - нафик не надо, ему надо данные с сервера в MySQl парсить. Непонятно, почему он с этим вопросом в форум Ардуино пришел.
Тут люди добрые.
да ему это, как оказалось - нафик не надо, ему надо данные с сервера в MySQl парсить. Непонятно, почему он с этим вопросом в форум Ардуино пришел.
Тут люди добрые.
ИМХО, тех умных слов, которые ему уже назвали в этой ветке, должно быть достаточно, чтоб теперь идти и разбираться самому :) Пинок в нужном направлении дан :)
Это понятно.
Как записать на сервер, текущее состояние реле (1 или 0).
У меня имеется база MySQL, в неё и нужно передать это значение, в зависимости от состояния реле.
Подгружайте скрытый FRAME и передавайте через GET состояние пинов своему PHP скрипту.
да ему это, как оказалось - нафик не надо, ему надо данные с сервера в MySQl парсить. Непонятно, почему он с этим вопросом в форум Ардуино пришел.
Тут люди добрые.
Люди добрые! Мне нужно организовать алгоритм..
Смотрите, как работает моя система:
Имеется файлик (обработчик) на сервере, раз в несколько минут, его запускает cron.
Что делает мой файлик (обработчик):
1) Проверяет состояние Arduino с помощью CURL, если Arduino доступна, он записывает (1) в таблицу MySQL, если не доступна, записывает 0.
Далее идет проверка, прошло ли 10 минут, с последнего 0, то есть с последнего отключения ардуино, если не прошло, останавливает выполнение и после следующего перезапуска cron, повторяет процесс еще раз.
Если при следующем запуске cron, проверка пройдена, то есть прошло 10 минут с последнего 0, скрипт идет в MySQL, в таблицу с датами и временем запуска, смотрит время запуска и сравнивает с текущим, если оно подходит, он зажигает реле, если нет, повторяет процесс еще раз.
Вот сам обработчик:
Что я хочу?
Мне нужно, узнать текущее состояние реле, то есть 0 или 1, записать временно его в переменную и отдать на сервер GET запросом, все.
Что для этого нужно?
Все же сами написали, что нужно: "узнать текущее состояние реле, записать временно его в переменную и отдать на сервер GET запросом".
Вы что, каждый шаг, расписанный в деталях ждете или готовый скетч ? Тогда вам в раздел "Ищу исполнителя".
Все же сами написали, что нужно: "узнать текущее состояние реле, записать временно его в переменную и отдать на сервер GET запросом".
Вы что, каждый шаг, расписанный в деталях ждете или готовый скетч ? Тогда вам в раздел "Ищу исполнителя".
Я не знаю как в ардуино передать байт, со стороннего сервера, то есть мой сайт говорит ардуине, установить значение 5 пина на LOW, вот что мне нужно.
Я не знаю как в ардуино передать байт, со стороннего сервера, то есть мой сайт говорит ардуине, установить значение 5 пина на LOW, вот что мне нужно.
Это же примитивно, если вы веб программист. Вам нужна помощь в составлении GET запроса?
Я не знаю как в ардуино передать байт, со стороннего сервера, то есть мой сайт говорит ардуине, установить значение 5 пина на LOW, вот что мне нужно.
Это же примитивно, если вы веб программист. Вам нужна помощь в составлении GET запроса?
Я знаю как составить GET запрос в PHP, обьясните, как заставить ардуино его принять и дать ответ обратно?
Я не знаю как в ардуино передать байт, со стороннего сервера, то есть мой сайт говорит ардуине, установить значение 5 пина на LOW, вот что мне нужно.
Это же примитивно, если вы веб программист. Вам нужна помощь в составлении GET запроса?
Я знаю как составить GET запрос в PHP, обьясните, как заставить ардуино его принять и дать ответ обратно?
Так ардуина у вас уже обрабатывает GET запросы в 71-90 строчках. И печатает HTML в котором вы можете выводить что надо и который можно парсить PHP скриптом.