Podłączenie:
Wykorzystałem moduł dwóch przekaźników, bo akurat taki miałem, ale w ten sam sposób można obsłużyć dużo więcej urządzeń. Wystarczy dodawać kolejne definicje do programu.
- GND - GND
- IN1 - pin 7
- IN2 - pin 8
- VCC - 5V
Program:
Kod programu jest dosyć łatwy w zrozumieniu jak i w implementacji.
- /*
- * Relay control test program
- * Communication from UART to open or close
- * two relays
- * control HIGH state - turn off relay
- * control LOW state - turn on relay
- */
- #define RELAY1 7 /* Relay 1 connect to pin 7 */
- #define RELAY2 8 /* Relay 2 connect to pin 8 */
- String receiveData = "";
- bool relayState1 = true; /* */
- bool relayState2 = true;
- void comPortInit(void);
- void initPins(void);
- void relayControl(String msg);
- void setup() {
- /* Set comPort */
- comPortInit();
- initPins();
- }
- void loop() {
- if(Serial.available() > 0){
- receiveData = Serial.readStringUntil('\n'); /* if data receive by uart */
- relayControl(receiveData);
- /* Clear data buffer */
- receiveData = "";
- }
- }
- void comPortInit(void){
- Serial.begin(115200, SERIAL_8N1);
- Serial.println("Com Port ON");
- }
- void initPins(void){
- /* Set relay pins as output */
- pinMode(RELAY1, OUTPUT);
- pinMode(RELAY2, OUTPUT);
- /* Set default state */
- digitalWrite(RELAY1, HIGH);
- digitalWrite(RELAY2, HIGH);
- Serial.println("Set pins finish! You can enter data now");
- }
- void relayControl(String msg){
- if(msg == "relay1")
- {
- /* Turn on/off relay 1*/
- relayState1=!relayState1;
- digitalWrite(RELAY1, relayState1);
- if(relayState1 == true){
- Serial.println("Realy 1 OFF");
- }
- else{
- Serial.println("Realy 1 ON");
- }
- }
- else if(msg == "relay2")
- {
- /* Turn on/off relay 2*/
- relayState2=!relayState2;
- digitalWrite(RELAY2, relayState2);
- if(relayState2 == true){
- Serial.println("Realy 2 OFF");
- }
- else{
- Serial.println("Realy 2 ON");
- }
- }
- else
- {
- Serial.println("Wrong message to Arduino!");
- }
- }
Wykorzystałem tutaj tylko sterowanie poprzez UART, natomiast w dosyć łatwy sposób można np dołożyć czujniki odległości bądź temperaturowe i uruchamiać dany przekaźnik w przypadku wystąpienia odpowiednich stanów.
W dosyć łatwy sposób można także podłączyć ze sobą Ethernet bądź Bluetooth i wykonać sterowanie z poziomu strony internetowej bądź aplikacji na smartphonie (dosyć łatwo taką wykonać korzystając z App Inventor).