выключатель с обратной связью на Arduino
Добавлено: Вс мар 20, 2016 11:42 pm
Задача очень простая, сделать выключатель лампочки чтобы можно было включать/выключать с кнопки и в MJM обновлялся статус этой кнопки и в то же время можно было выключить/включить через MJM
Вот чего добился:
в сценариях MJM на кнопку включить:
выключить:
все работает но через Ж... :
1. кнопки приходится нажимать включить/выключить через разные выводы
2. если выключать через arduino отправляет запрос на MJM и только тогда переключается что не есть хорошо.
(сори если туплю где то только вникаю в программирование и MJM)
скетч на arduino
Вот чего добился:
в сценариях MJM на кнопку включить:
Код: Выделить всё
$cmdUrl = "http://127.0.0.3:8080/command?500"; getURL($cmdUrl,0);
$this->setProperty("status",1);
Код: Выделить всё
$cmdUrl = "http://127.0.0.3:8080/command?499"; getURL($cmdUrl,0);
$this->setProperty("status",0);
все работает но через Ж... :
1. кнопки приходится нажимать включить/выключить через разные выводы
2. если выключать через arduino отправляет запрос на MJM и только тогда переключается что не есть хорошо.
(сори если туплю где то только вникаю в программирование и MJM)
скетч на arduino
Код: Выделить всё
int incomingInt = 0;
char buf[80];
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}
// задаем константы
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int buttonPin10 = 10; // номер входа, подключенный к кнопке
int Relay = 4; // реле 4
// переменные
int buttonState = 0; // переменная для хранения состояния кнопки
int buttonState10 = 0; // переменная для хранения состояния кнопки
void setup()
{
Serial.begin(115200);
// инициализируем пин, подключенный к реле 4, как выход
pinMode(Relay, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT);
pinMode(buttonPin10, INPUT);
}
void loop()
// считываем значения с входа кнопки
{
if (Serial.available() > 0)
incomingInt = Serial.parseInt();
if (incomingInt == 500) {
digitalWrite(Relay, LOW);
}
if (incomingInt == 499) {
digitalWrite(Relay, HIGH);
}
buttonState = digitalRead(buttonPin);
buttonState10 = digitalRead(buttonPin10);
if (buttonState10 == HIGH) {
digitalWrite(Relay, HIGH);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnOff&", 1) ;
sendHTTPRequest();
delay(1000);
}
if (buttonState == HIGH) {
digitalWrite(Relay, LOW);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnOn&", 1) ;
sendHTTPRequest();
delay(1000);
}