ESP8266 WiFi kontrollerade aircon remote (13 / 15 steg)
Steg 13: Programvaran för modulen ESP8266 - del 4 "olika aircon kommunikation"
De flesta aircon tillverkare använder olika typer av kommandon. För mig jag undersökt hur kommandona IR överförs till två tillverkare, FujiDenzo och bärare.
FujiDenzo aircon:
- Varje kommando består av 67 värden av rubriker, märken och utrymmen.
- Samma kod skickas även om en knapp trycks upprepade gånger.
- Varje kod skickas först när en knapp trycks
Bärare:
- Varje kommando består av 51 värden av rubriker, märken och utrymmen.
- Varje kommando har tre olika uppsättningar av IR-pulser.
- Om en knapp trycks ner upprepade gånger, loopar koden igenom de tre olika uppsättningarna av IR-pulser.
- Varje kod skickas tre gånger när en knapp trycks.
Dessa skillnader måste återspeglas i de olika versionerna av programvaran.
De olika IR-pulserna lagras i filer IR-FujDenzo_0_Codes.ino och IR-Carrier_0_Codes.ino
Programvaran för transportören aircon har en räknare som används för att veta vilken av de tre uppsättningarna av IR-pulser måste användas och en variabel för att kontrollera om ett kommando upprepas.
/ ** Senast körde kommandot (från lan eller seriell anslutning) * /
int lastCmd = 99.
/ ** Counter att kontrollera om kommandot upprepas * /
byte cmdCnt = -1;
Den rutinmässiga chkCmdCnt() kontrollerar om ett kommando upprepas och vid behov ändra counter cndCnt
void chkCmdCnt() {< br > om (irCmd == lastCmd) {
cmdCnt ++;
om (cmdCnt == 3) {
cmdCnt = 0;
}
} annat {
cmdCnt = 0;
lastCmd = irCmd;
}
}
Funktionen sendCmd() är olika för FujiDenzo och transportören.
FujiDenzo | Carrier |
fall CMD_ON_OFF: / / On-Off | fall CMD_ON_OFF: / / On-Off chkCmdCnt(); |
Som ni kan se i transportprogrammet funktion chkCmdCnt() kallas innan är sendBuffer bygga medan i programvaran Denzo samma IR pulserna används alltid att bygga sendBuffer.