Arduino Polska Forum
Arduino, OpenHab, MQTT - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Arduino, OpenHab, MQTT (/watek-arduino-openhab-mqtt)



Arduino, OpenHab, MQTT - thepowerofra - 18-10-2015

Cześć, potrzebuję pomocy więc postanowiłem napisać.

Mam kilka przekaźników podłączonych do łączników chwilowych. mają za zadanie włączać i wyłączać światło oraz załączać prąd w gniazdkach. do tego dojdzie kilka czujek ruchu oraz temperatury. wszystko będzie działać na OpenHAB'ie oraz brokerze MQTT

mój problem jest taki:
Światło ma być załączane poleceniem z OpenHaba lub przyciskiem w ścianie.
Nie wiem jak to zaimplementować w arduino głównie część gdzie arduino odczytuje, który łącznik został wciśnięty. czy switch statement załatwi sprawe?


RE: Arduino, OpenHab, MQTT - JasQ - 18-10-2015

Cześć.

Nie do końca bo masz zależność pomiędzy 2 informacjami wejściowymi a 1 wyjściem . Musisz mieś status wyjścia powiązany z danym stanem logicznym wejść bo inaczej będzie w przypadku rozbieżnych informacji wyjście się zapętlało i przełączało w nieskończoność .

np.

Kod:
byte x = 0;
byte y = 0;
byte xy = 0;

sertup{

xy = x+y;

}

loop{

x = przycisk ;
y = openhab;

if ( xy != x+y ){
if ( swiatlo == LOW ){swiatlo = HIGH ; xy = x+y;}
else if ( swiatlo == HIGH ){swiatlo = LOW ; xy = x+y;}
}


ta linijka  "xy = x+y;" po wykonaniu zadania ustawi stan taki jak ma na portach więc nie będzie przełączała aż do ponownej zmiany stanu wejść


RE: Arduino, OpenHab, MQTT - thepowerofra - 18-10-2015

https://raw.githubusercontent.com/michal-wiacek/arduinohy/master/arduinohy.ino mam narazie coś takiego napewno gdzieś jest błąd...


RE: Arduino, OpenHab, MQTT - JasQ - 19-10-2015

Generalnie to stworzyłeś molocha Wink oj chwilę zanim doszedłem co i jak

tu masz błąd :

pinMode(38, OUTPUT);
pinMode(29, INPUT);
digitalWrite(38, LOW);

tu masz taki mały programik pokazujący jak można odczytać piny aktywne i jak je zainicjować 2 linijkami a nie 100 tką Wink Pobaw się tym kodem , niestety na razie nie mam sieciówki więc za bardzo nie pomogę jak nie mam na czym kodu sprawdzić .

Kod:
int x;

int pino[]={2,3,4,5,6,7,8,9,10,11};

void setup() {
  
Serial.begin(9600);

for ( int x = 0 ; x < 9 ; x++)pinMode( pino[x] , OUTPUT);

}

void loop() {

x = random(0,9);

digitalWrite( pino[x] , HIGH);

for ( int x = 0; x < 9; x++){

if ( digitalRead(pino[x]) == true ){
Serial.print((pino[x]), DEC);
Serial.print(" - on ");}
if ( digitalRead(pino[x]) == false ){
Serial.print((pino[x]), DEC);
Serial.print(" - off ");}
}

delay(250);

Serial.println(" ");
digitalWrite( pino[x] , LOW);

}



RE: Arduino, OpenHab, MQTT - sliver001 - 02-09-2019

(18-10-2015, 16:24)thepowerofra napisał(a): Mam kilka przekaźników podłączonych do łączników chwilowych. mają za zadanie włączać i wyłączać światło oraz załączać prąd w gniazdkach. do tego dojdzie kilka czujek ruchu oraz temperatury. wszystko będzie działać na OpenHAB'ie oraz brokerze MQTT

Hej.
Czy udało Ci się stworzyć program spełniający Twoje oczekiwania? Ja od tygodnia próbuję stworzyć program, który by sterował przekaźnikami i działał z Openhabem poprzez MQTT ale niestety bez rezultatów. Niestety jestem początkującym userem i głównie bazuje na przeróbkach udostępnionych programów...