1.1:产品型号
1.1.1:单片机:STC89C51RC
1.1.2:4G模块:塔石的E36V-S
1.2:实现功能
可以在没有WiFi的户外实现远程控制设备的开关等功能。
2.1:所需硬件
单片机、4G模块、双路5V控制220V继电器 、杜邦线若干、水阀(我这里远程控制水阀)
2.2:硬件连线
通过USB用电脑给单片机供电。
4G模块的VCC与GND连单片机的VCC与GND。
4G模块的RXD与TXD连单片机的TXD与RXD(发送连接收、接收连发送)。
单片机的P1.0连继电器的IN1,P1.1连继电器的IN2,继电器的VCC与GND连单片机的VCC与GND。
3.1:需要用到的软件
keil 4(编程)、stc-isp(烧录软件)、网络调试助手、花生壳(做内网穿透)
3.2:keil 4程序
打开keil 4,新建工程等。具体代码如下:
//单片机通过4g模块连接网络 #include "reg52.h" #include <intrins.h> #include <string.h> #define SIZE 12 #define uint unsigned int sbit D1 = P1^0; sbit D2 = P1^1; sfr AUXR = 0X8E; char cmd[12]; void delay(uint z) { uint x,y; for(x = z; x > 0; x--) for(y = 114; y > 0; y--); } void UartInit() //[email protected] { AUXR = 0x01; SCON = 0x50;//配置串口工作方式1,REN使能接收 TMOD &= 0x0F; TMOD |= 0x20;//配置定时器1工作方式为8位自动重装 TL1 = 0xFD; TH1 = 0xFD;//9600波特率初值 TR1 = 1; //启动定时器1 EA = 1;//开启总中断 ES = 1;//开启串口中断 } void sendByte(char data_msg) { SBUF = data_msg; while(!TI); TI = 0; } void sendString(char *str) { while(*str != '\0'){ sendByte(*str); str++; } } void main() { D1 = 0;//关继电器1 D2 = 0;//关继电器2 //配置C51串口通信方式 UartInit(); while(1){ delay(1000); } } void Uart_Handler() interrupt 4 { static int i = 0;//静态变量,只被初始化一次 char tmp; if(RI){//中断处理函数中,对于接收中断的响应 RI = 0;//清除接收中断标志位 tmp = SBUF; if(tmp == ':'){ i = 0; } cmd[i++] = tmp; if(cmd[0] == ':' && cmd[1] == 'o' &cmd[2] == 'p'){ D2 = 0; D1 = 1; sendString("opening\r\n"); i = 0; delay(25000); D1 = 0; D2 = 0; memset(cmd,'\0',SIZE); sendString("opened\r\n"); } if(cmd[0] == ':' && cmd[1] == 'c' &cmd[2] == 'l'){ D1 = 0; D2 = 1; sendString("closing\r\n"); i = 0; delay(25000); D2 = 0; D1 = 0; memset(cmd,'\0',SIZE); sendString("closed\r\n"); } if(i == 12) i = 0; } if(TI); }
设置生成hex文件
编译,无报错
打开stc-isp,搜索串口-->选择对应的hex文件-->下载到单片机中。
选择串口助手-->打开串口-->在发送区发送“:op”-->接收区收到“open”。同时继电器一工作(水阀开)。
图片
到此,程序部分就完成了。
3.3:用电脑模拟服务器发送指令
打开网络调试助手。
本地主机地址从命令提示符中,发送ipcofig获取
打开花生壳,做内网穿透。
再打开一个网络调试助手,连接上面的服务器地址与端口号
然后测试服务器
到此,服务器就搭建好了。
3.4:配置4G模块
3.4.1:打开塔石云平台:塔石物联网
1、选择自动配置平台;进入自动配置平台后有账号直接登录,还未注册过需要先自己注册一下账号然后登录平台。
2、登录进平台后先添加项目;编辑项目,名称自己编辑,项目类型需要选择 dtu 系列;项
目描述自己可以随意编辑。
3、在设备管理,输入IMEI,搜索设备,显示在线。
4、在指令管理,编辑,添加指令,配置服务器地址等信息,保存。
5、然后回到设备管理,点击配置参数,等待大概一分钟,配置完成。
点击配置记录,选择时间段,显示成功。
到此,4G模块配置完成。
标签:--,void,cmd,51,单片机,串口,4G From: https://blog.csdn.net/weixin_67435657/article/details/137017000