kimstoroy Skrevet 19. februar 2019 Skrevet 19. februar 2019 (endret) Hei Tenkte jeg skulle lese ut status på vaskemaskin og tørketrommel ved hjelp av en ESP-01 Er ikke godt kjent med Arduino kode, så om det finnes noen som er flinke på dette vennligst gi meg noen tips. Vaskemaskin og Tørketrommel har en indikator LED med følgende status: AV - Vaskemaskin av (ønsker å sende en 0 via MQTT) På - Vasker (ønsker å sende en 1 via MQTT) Blinker - Vask ferdig (blinker og når man skal velge program)(ønsker å sende en 2 via MQTT) Jeg tenker å benytte en kode jeg har funnet fra The Hookup på Youtube, der jeg sletter Temp avlesning og switch fra koden. https://github.com/thehookup/MQTT_Computer_Power/blob/master/ComputerControl_CONFIGURE.ino Den delen av koden som er av interesse er limt inn under, kunne trenge litt hjelp til å forstå hvordan kode er satt opp. Dette er kode for å sjekke om led blinker, mitt ønske er at denne kun sender status endring dersom den skifter fra konstant lys til blinkende lys.(ikke fra LED av til LED Blinkende) Ønsker og å sende en verdi "2" for denne funksjonen { if (pulseIn(powerSensePin, HIGH, 3000000) > 100) { client.publish("state/PC","ON", true); } Dette er kode for å sjekke om LED lyser Konstant Ønsker å sende verdi "1" for denne status else if(digitalRead(powerSensePin) == HIGH) { client.publish("state/PC","ON", true); Dette er kode for å sjekke om LED ikke lyser Ønsker å sende verdi "0" for denne status else { client.publish("state/PC","OFF", true); } Mer av koden om man trenger hele sammenhengen: void powerSense() { if (pulseIn(powerSensePin, HIGH, 3000000) > 100) { currentStatus = "ON"; if(currentStatus != oldStatus) { client.publish("state/PC","ON", true); oldStatus = currentStatus; } } else if(digitalRead(powerSensePin) == HIGH) { currentStatus = "ON"; if(currentStatus != oldStatus) { client.publish("state/PC","ON", true); oldStatus = currentStatus; } } else { currentStatus = "OFF"; if(currentStatus != oldStatus) { client.publish("state/PC","OFF", true); oldStatus = currentStatus; } } } void powerSenseCheckIn() { if (pulseIn(powerSensePin, HIGH, 3000000) > 100) { client.publish("state/PC","ON", true); } else if(digitalRead(powerSensePin) == HIGH) { client.publish("state/PC","ON", true); } else { client.publish("state/PC","OFF", true); } } Endret 19. februar 2019 av kimstoroy Siter
Rune pedersen Skrevet 22. februar 2019 Skrevet 22. februar 2019 Holder på med akkurat det samme og har kode som fungerer. Jeg bruker nodemcu, homeassistant med mqtt og nodered. Sender kun om den blinker eller ikke via mqtt hvis jeg husker rett.. Hvilket system bruker du? Siter
kimstoroy Skrevet 22. februar 2019 Forfatter Skrevet 22. februar 2019 Hei, bruker Homeseer så Mqtt er nok beste løsning for meg. Status på blinking får jeg og ut av denne, men hadde vært best å få ut en beskjed dersom den endrer seg fra konstant lys til blinking. Siden den blinker når man skru den på før man velger program.Sent from my iPhone using Tapatalk Siter
Rune pedersen Skrevet 22. februar 2019 Skrevet 22. februar 2019 Har en Miele maskin... den blinker med annen takt når den slåes på en når den et ferdig.. Sett ikke ut som vi har samme framgangsmåte siden jeg tenkte å ta all logikken på server siden. Men lykke til. Kult prosjekt 1 Siter
Hårek Skrevet 22. februar 2019 Skrevet 22. februar 2019 3 hours ago, kimstoroy said: ... få ut en beskjed dersom den endrer seg fra konstant lys til blinking. Bruk interrupt for å detektere at noe endrer seg. Se eksempel her: https://www.allaboutcircuits.com/technical-articles/using-interrupts-on-arduino/ Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.