当前位置:首页 > 物联网卡 > 正文

物联网控制入门-串口及干接点控制arduino源码分享

一、【准备】

1、arduino IDE 最新版 1.8.13

2、ESP8266-12S/12F模块

3、本示例是基于久爱物联网远程控制模块讲解(4路输出1路输入+RS485)

4、其他有关知识分享链接


二、【代码分析】

/***************************** * 久爱物联网模块测试程序 * 1、串口控制四路输出 * 2、干接点 取反电路开关状态 * 3、继电器高电平有效 HIGH开(NO-COM接线) * 感谢您的关注,交流学习 ******************************/ #define relay1 12 //1路 宏定义,四个继电器对应的针脚GPIO #define relay2 13 //2路 #define relay3 14 //3路 #define relay4 15 //4路 #define in_pin 5 //干接点,定义为外部输入模式(或干接点或触摸按键等) //交流电状态检测,温湿度DHT22等省略 char c; unsigned int pinin_old_status=0; //干接点初始化 unsigned int pinIN_cur_status=0; //当前干接点输入状态 unsigned int pinIN_relayPinName=relay1; //默认第一路(通过修改参数达到灵活配置的目的) unsigned int pinIN_relayGroup[4]={relay1,relay2,relay3,relay4}; //继电器针脚组合体(实际中不能为0要判断) int inenabledmode=-1;//干接点控制模式(0 使能关,1使能开,-1使能翻转,2与干接点一致)

先定义针脚及一些全局变量

/***************** * 初始化都在这 *****************/ void setup() { Serial.begin(115200); //设为继电器为输出模式 pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); pinMode(in_pin,INPUT_PULLUP); pinin_old_status=digitalRead(in_PIN1); //干接点电平 }

针脚模式输出初始化,当然可以设置初始状态使用

digitalWrite(relay1, LOW);//针脚,电平:LOW/HIGH

/***************** * 循环体 *****************/ void loop() { if (Serial.available()) { c=Serial.read();//接收串口输入 //直接一次性读取字符串,可以使用更长的字符串命令进行设置 //本人指令较多,这里用最简单的方法实现讲解 //_read=Serial.readString(); //_read.replace("\r\n",""); check_in_status(); //干接点的处理方法供参考 //以下根据输入的值1,2,3,4 对应取反当前线路的输出状态! if(c=='1') { int state1 = digitalRead(relay1); //读继电器IO口的状态 if(state1==0) { digitalWrite(relay1, HIGH); //打开1路 delay(200);//延时200毫秒 Serial.println("1on");//输出打印 } else if (state1==1) { digitalWrite(relay1, LOW);//关闭1路 delay(200); Serial.println("1off"); } } else if(c=='2') { int state2 = digitalRead(relay2); if(state2==0) { digitalWrite(relay2, HIGH); Serial.println("2on"); } else if (state2==1) { digitalWrite(relay2, LOW); Serial.println("2off"); } } else if(c=='3') { int state3 = digitalRead(relay3); if(state3==0) { digitalWrite(relay3, HIGH); Serial.println("3on"); } else if (state3==1) { digitalWrite(relay3, LOW); Serial.println("3off"); } } else if(c=='4') { int state4 = digitalRead(relay4); if(state4==0) { digitalWrite(relay4, HIGH); Serial.println("4on"); } else if (state4==1) { digitalWrite(relay4, LOW); Serial.println("4off"); } } } }

本案例重点在于干接点(或触摸按键、自复、自锁开关)的处理方法

可以发挥自己的想象:可以实现1:1控制,1:2控制,1:3控制,1:4控制;

动作:开/关/取反/与干接点的输入一致等

这就是本物联网模块的一大特点

物联网控制入门-串口及干接点控制arduino源码分享

干接点控制核心代码示例讲解


物联网控制入门-串口及干接点控制arduino源码分享

久爱物联网模块 JIUAI-WIFI-ACDC-485-1I4O功能图解


物联网控制入门-串口及干接点控制arduino源码分享

AC220接线方法


物联网控制入门-串口及干接点控制arduino源码分享

策略回读及断电记忆一键保存等功能

【其他知识分享导航 关注看全部内容】

物联网控制入门-串口及干接点控制arduino源码分享

相关知识 部分截图

更多关注看其他分享,高手请路过,志同道合的朋友喜欢收藏+关注

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

在线客服