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

article/2025/8/14 19:12:30

一、【准备】

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
digitalWrite(relay2, LOW);//针脚,电平:LOW/HIGH
digitalWrite(relay3, LOW);//针脚,电平:LOW/HIGH
digitalWrite(relay4, 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("relay1 open");//输出打印}else if (state1==1){digitalWrite(relay1, LOW);//关闭1路delay(200);Serial.println("relay1 close");}}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源码分享

这一块可以发挥下想想,根据网络或串口传入的指令来修改变量的值,从而实现对干接点对各路控制的目的。

这里用到4种状态 inenabledmode-1/0/1/2

-1:默认方式,对设置的针脚进行取反操作(开变关,关变开)

0:对设置的针脚全关操作

1:对设置的针脚全开操作

2:对设置的针脚的开关状态同干接点的开关状态一致!!

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

本模块已实现的功能

物联网控制入门-串口及干接点控制arduino源码分享 DC接线方法同AC,第1组:AC220V  第2组:DC7~24V(默认12V) 

当然也可以用TYPE-C 供电(三功能合一:烧录,调试,供电

针脚供电:5V,GND,TX,RX即可调试和供电。继电器高电平有效哦!

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

一键保存继电器状态(断电记忆),内置网页实现模拟本地指令控制,也可以配置新的WIFI密码账号

均保存到EEPROM中,开机自动启用新参数!! 

其他连接加关注或关注我的头 条 搜【久爱物联网】

 资源一般同步到这2个平台


http://chatgpt.dhexx.cn/article/dxmLuLQS.shtml

相关文章

如何实现一个干接点(湿节点)控制四路继电器60种状态输出

一般情况下:一路输入对应一路输出,数字信号电平来控制输出继电器高低电平来实现开关 本博介绍如何实现一个干接点15*460种组合的控制方式;以四路输出为例。实现万能控制! 实现思路: 通过网络指令来设置继电器的组合方…

干接点,湿接点

(1)干接点的定义 无源开关;具有闭合和断开的2种状态;2个接点之间没有极性,可以互换。 常见的干接点信号有: 1)各种开关如:限位开关、行程开关、脚踏开关、旋转开关、温度开关、液…

什么是干接点、湿接点、源型、漏型、NPN、PNP

什么是干接点、湿接点、源型、漏型、NPN、PNP 干接点、湿接点 简单说,无源干接点就是信号发出方只需要提供一对无源触点即可,信号接收方内部自己形成电流回路,信号发出方的干接点只需要起到“断开”、“接通”这个回路的作用即可&#xff0c…

干接点(干节点)和湿接点(湿节点)的定义、使用场合和调理方法

干接点好像是俗称,但是,实际上,在工业控制领域中,已经是一个标准的名词了。 干接点的定义: 无源开关;具有闭合和断开的2种状态;2个接点之间没有极性,可以互换; 常见的干…

了解下继电器干节点,干接点,有源与无源

什么是干节点 继电器干节点指的是继电器触点中的一种类型,也叫做"干接点"或"干节点开关"。它是指在没有外部控制信号作用时,继电器触点处于断开状态,两个接点之间没有电气连接。只有在继电器接收到外部控制信号后&#…

【基础系列教程】项目八:震动传感器

震动传感器,我们从名字中应该就可以判断,传感器能够检测震动中的物体。我们用什么来做震动传感器呢?那就是滚珠开关。滚珠开关,其内部含有导电珠子,器件一旦震动,珠子随之滚动,就能使两端的导针…

Mixly16:震动报警器

震动报警器是以侦测物体振动来报警的传感器;适合用于柜员机、墙壁、玻璃、保险柜等,防止任何敲击和破坏性行为发生。生活中常常见到一种情况,电动助力车因为不小心的碰撞而发出刺耳的报警声,它就是采用了一种震动报警的装置&#…

Arduino 各种模块篇 震动模块 常开 震动传感器模块

以下是店家提供的一部分资料 一共就需要3根线 ——————————————————分割线———————————————————————— 用途:用于各种震动触发作用,报盗报警,智能小车,电子积木等。请注意这个模块在感应到小的震动时触发时间会很短,不够驱动继电器…

android 控制震动强度

转载文章请注明出处:http://blog.csdn.net/dangxw_/article/details/17957175 android 控制手机震动的类为Vibrator 他所提供的方法只有四个 想要控制手机的震动强度,无疑就只能使用vibrate(long[] parttern,int repeat)方法了,查看这个方法…

Sensor感应器介绍

本文实例讲述了Android基于Sensor感应器获取重力感应加速度的方法。分享给大家供大家参考,具体如下: FETC项目指导老师提出了新的需求,想要在游戏地图中表现出用户用户当期移动的方向,再用GPS的话显然很不靠谱,所以想…

单片机之振动传感器

那我们现在就开始来学习我们的振动传感器 振动传感器 电路原理图如下: 原理: 管内有一跟固定的导线,在这根导线的周围有另一根较细的导线以螺旋状环绕它。可以想象为一个弹簧旁边有一跟导线。在不振动时,两根导线不会相碰&#…

stm32的简易小项目之震动感应灯

文章目录 一、原理二、硬件三、接口说明四、源代码五、中断配置六、完整代码 一、原理 需要一个震动感应器来感应是否产生震动,然后把这个震动感应器作为GPIO输入,单片机来读取这个输入是否产生震动。如果产生震动,我们就可以把一个GPIO作为…

【传感器大赏】压电薄膜震动传感器

Grove-Piezo Vibration Sensor Grove - Piezo Vibration传感器适用于弹性,振动,冲击和触感的测量。该模块基于PZT薄膜传感器LDT0-028。当传感器来回移动时,其中的电压比较器将产生一定的电压。宽动态范围(0.1Hz~180Hz)…

振动传感器应用电路

传感器采用“801S振动传感器”,该传感器性能比较好。极宽的震动侦测范围.无方向限制。可以用用于汽车/摩托车防盜报警器/器, 電子鎖.安防系列产品等。 原理图如下:(Multisim 10.1仿真通过,实际焊接测试也通过) 经过测试…

震动传感器使用

震动传感器上有四个引脚,一个VCC,一个GND,一个DO,一个AO。我们使用到的是VCC,GND,DO。 VCC与GND不用多说,接电源和接地用的。使用杜邦线连接 VCC-5v,GND-GND,DO-P3.3。这时已经将c51单片机和传感器连接好了。下面可以输入代码了: 使用单片机上…

Arduino压电震动传感器

Arduino压电震动传感器 读取震动传感器的模拟值,串口输出;按压震动传感器控制LED灯亮灭。 外观 接线 Arduino震动传感器5V5VGNDGNDA0A02D0 读取模拟值时,D0不用接。A0模拟信号输出,D0TTL电平输出。 串口读取模拟值 void set…

振动传感器介绍

1. 工作电压 &#xff1a;3.3V或5V2. 工作电流 &#xff1a;<1mA3. 工作温度范围&#xff1a;&#xff0d;10℃&#xff5e;&#xff0b;70℃4. 接口类型&#xff1a;模拟信号输出5. 尺寸大小&#xff1a;30mm x 23mm6. 重量大小&#xff1a;5g7.引脚定义&#xff1a;S信号输…

震动传感器应用

1.震动传感器模块外部照片 2.新建shake工程 ①在USER中新建shake文件夹&#xff0c;并且在其中新建shake.c、shake.h文件 ②在Keil5中添加shake.c&#xff08;直接添加&#xff09;&#xff0c;shake.h&#xff08;现在shake.c中#include “shake.h”然后编译后自动添加了sha…