/** WEMOS-MULTI-RELAYS - v1.000 - 2018-12-06 * (C) 2018 by Jeff Manross - (jeffmanross@gmail.com) * Released under the GPL * This program is a collaberation from searching the internet. * The examples from many sites and many people made this possible. * I combined the talents of many into one working program. * Thank you EVERYONE! */ /** This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details visit gnu.org */ String readString; /* String captured from serial port */ int relayPin1 = D1; /* GPIO-5 */ int relayPin2 = D0; /* GPIO-16 */ int relayPin3 = D5; /* GPIO-14 */ int relayPin1Status = 0; int relayPin2Status = 0; int relayPin3Status = 0; void setup() { Serial.begin(19200); Serial.println("Welcome to Multi Relay Wemos Example"); Serial.println(); pinMode(relayPin1, OUTPUT); digitalWrite(relayPin1, relayPin1Status); pinMode(relayPin2, OUTPUT); digitalWrite(relayPin2, relayPin2Status); pinMode(relayPin3, OUTPUT); digitalWrite(relayPin3, relayPin3Status); } void loop() { while (Serial.available()) { char c = Serial.read(); /* gets one byte from serial buffer */ readString += c; /* makes the string readString */ delay(2); /* slow looping to allow buffer to fill with next character */ } if (readString.length() >0) { Serial.println(readString); /* so you can see the captured string */ if (readString == "1") { if (relayPin1Status == 0) { relayPin1Status = 1; } else { relayPin1Status = 0; } digitalWrite(relayPin1, relayPin1Status); Serial.print("Relay1=");Serial.println(relayPin1Status); Serial.print("Relay2=");Serial.println(relayPin2Status); Serial.print("Relay3=");Serial.println(relayPin3Status); } if (readString == "2") { if (relayPin2Status == 0) { relayPin2Status = 1; } else { relayPin2Status = 0; } digitalWrite(relayPin2, relayPin2Status); Serial.print("Relay1=");Serial.println(relayPin1Status); Serial.print("Relay2=");Serial.println(relayPin2Status); Serial.print("Relay3=");Serial.println(relayPin3Status); } if (readString == "3") { if (relayPin3Status == 0) { relayPin3Status = 1; } else { relayPin3Status = 0; } digitalWrite(relayPin3, relayPin3Status); Serial.print("Relay1=");Serial.println(relayPin1Status); Serial.print("Relay2=");Serial.println(relayPin2Status); Serial.print("Relay3=");Serial.println(relayPin3Status); } if (readString == "A") { relayPin1Status = 1;relayPin2Status = 1;relayPin3Status = 1; digitalWrite(relayPin1, relayPin1Status); digitalWrite(relayPin2, relayPin2Status); digitalWrite(relayPin3, relayPin3Status); Serial.print("Relay1=");Serial.println(relayPin1Status); Serial.print("Relay2=");Serial.println(relayPin2Status); Serial.print("Relay3=");Serial.println(relayPin3Status); } if (readString == "a") { relayPin1Status = 0;relayPin2Status = 0;relayPin3Status = 0; digitalWrite(relayPin1, relayPin1Status); digitalWrite(relayPin2, relayPin2Status); digitalWrite(relayPin3, relayPin3Status); Serial.print("Relay1=");Serial.println(relayPin1Status); Serial.print("Relay2=");Serial.println(relayPin2Status); Serial.print("Relay3=");Serial.println(relayPin3Status); } readString=""; } }