一、单片机电路图 电路由STC11F04E单片机、max232TTL转串口集成电路,编解码集成电路PT2272、T2262和相应的无线收发模块组成。MAX232的作用是把单片机的串口数据TTL电平转换成232电平送到串口转wifi模块。单片机的作用是收发数据,并通过无线接收模块检测报警数据,通过无线发送模块控制家用电器。 二、 HLK-RM04串口转WIFI模块 有关HLK-RM04的资料请到http://www.hlktech.com/网站下载。我用的是如下图所示的带底板的模块。 如果是自己设计电路板也可购买如下图所示模块。 使用的时候可下载HLK-RM04_CONFIG_V1.2.exe软件,来配置该模块。连接好串口线,打开该软件,进行配置如下图: 1、 选择串口号 2、 点击搜索模块,如果连接成功左侧待发送命令框和命令执行与恢复框有显示 3、 选择工作模式,串口以太网模式是网线连接,无线网卡模式是无线wifi连接 4、 网络协议选TCP客户端 5、 无线参数就是要连接的无线AP参数(你家的wifi名称、密码) 6、 远端IP填写183.230.40.39,远端端口填写876 7、 串口参数填写波特率应与单片机的串口波特率一致9600 8、 不启用DHCP 9、 点击提交配置 10、 可以点击查询配置来查看是否配置成功 三、 HLK-RM04模块连接oneNET 给HLK-RM04模块上电后如果能连上oneNET的ip地址183.230.40.39,说明配置正确,如果配置正确,但还连接不上,这需要检查你家的路由器是否进行了端口映射,是否打开了防火墙,有关端口映射的方法请参考有关资料,也可在我的博文中找。 在确认HLK-RM04已能连上oneNET后,打开串口工具,把HLK-RM04的串口连接到微机串口上,就可以发送数据到oneNET上了。 四、接收程序 接收oneNET设备发送来的数据采用中断方式,程序代码如下:注意接收数据的格式是16进制数,而不是ASII码,开始我用ASII码格式接收调试不成功,改成16进制接收就好了。 S: PUSH ACC
复制代码 JS0: CLR ES
复制代码 S1: MOV A,B
复制代码 JS: MOV A,B
复制代码 JS1: MOV R2,#16 ;接收16个字节数据 JS2: MOV R0,#2CH ;2CH接收缓冲区首址
复制代码 S2: LCALL PDRI;等待下一个串口数据
复制代码 SEND1: SETB FLAG_0 ;置接收到数据标志 SEND: POP DPL
复制代码 SD: RETI 五、发送数据程序 向oneNET设备发送数据的程序如下: FSZJ: MOV R2,#14 FSZJ1: MOV DPTR,#SJA ;WIFI FS: CLR EA ;ONENET
复制代码 FSZJ2: MOV A,#0H
复制代码 PDRI: SETB REN ;占用R4/R5/R1
复制代码 PBZ: MOV R4,#75 ;50;100;67 DY2: MOV R5,#6 ;4;8 DY1: JB RI,KKQ ;检测到RI变1就退出
复制代码 KKQ: RET 3、 连接0neNET程序 GN01: JB FLAG, GNF ;当接收到连接断开信号后,FLAG=0,重新连接
复制代码 GNF: LCALL FSZJ ;发送心跳标志4个1 ;连接到设备xxxxxxx上的数据,49个字节,需要换成自己的设备连接数据 SJA B 30H,0CH,00H,06H,37H,3xH,3xH,32H,3xH,37H,31H,31H,31H,31H ;发4个1 SJB B 30H,0CH,00H,06H,37H,37H,37H,32H,3xH,37H,32H,32H,32H,32H ;发送4个2 SJC B 30H,0CH,00H,06H,37H,3xH,37H,3xH,3xH,37H,31H,32H,33H,34H ;14个 |
| 欢迎光临 野火电子论坛 (https://www.firebbs.cn/) | Powered by Discuz! X3.4 |