收藏官网首页
查看: 56|回复: 0

ShineBlink C2 DevKit开发板WIFI转485透传(DTU)

476

主题

508

帖子

2万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
25289
 楼主| 发表于 2022-11-23 12:23:21 | 显示全部楼层 |阅读模式
免费使用STM32、APP自动代码生成工具
ShineBlink C2 DevKit开发板WIFI转485透传(DTU)

WIFI转485透传(DTU)

一、实现的功能描述
实现WiFi TCP通信和RS485总线通信数据的透传。并且每次透传数据时开发板上的黄色LED会闪烁一次,绿色LED灯用来指示开发板是否连上WiFi网络。


本例程的通信是基于TCP方式,如果希望改成UDP、MQTT方式,或者更多详细细节,可以参考前面的
《WiFi通信(TCP/UDP/MQTT)》教程。

二、本实验教学目的
掌握基于ShineBlink的:
如何连上机智云物联网平台
WiFi TCP通信
RS485通信(占用UART1的RX1,TX1引脚)
GPIO控制LED灯(黄灯占用D8引脚,绿灯占用D9引脚)


三、本实验涉及的模块
WiFi模块,RS485模块在开发板上的位置如下:
1.png


注意,为了使用485接口,必须将P7和P8跳线帽短接才能让TX1引脚、RX1引脚和485转换芯片连接。
四、完整源代码
  1. LIB_GpioOutputConfig("D8","STANDARD") --初始化GPIO D8控制黄色LED1
  2. LIB_GpioOutputConfig("D9","STANDARD") --初始化GPIO D9控制绿色LED2
  3. LIB_GpioOutputConfig("D2","STANDARD") --初始化GPIO控制Max485 RE DE 收发控制
  4. --配置Uart1串口波特率为19200,用作485通讯
  5. LIB_Uart1Config("BAUDRATE_19200")
  6. --WiFi工作相关参数配置
  7. server_addr = "192.168.43.27" --这里也可以写服务器域名,比如"abc.com"等
  8. server_port = 8888
  9. ap_ssid = "mywifi" --路由器账号
  10. ap_passwd = "abc123" --路由器密码
  11. --初始化WiFi TCP模式
  12. LIB_IntWifiTcpConfig(ap_ssid,ap_passwd,server_addr,server_port,0)
  13. --定义使能MAX485发送函数
  14. function SendEn()
  15.     LIB_GpioWrite("D2",1)
  16. end
  17. --定义使能MAX485接收函数
  18. function RecvEn()
  19.     LIB_GpioWrite("D2",0)
  20. end
  21. --开始大循环
  22. while(GC(1) == true)
  23. do
  24.     --查询是否收到服务端tcp下发的数据
  25.     recv_flag,recv_tab = LIB_IntWifiTcpRecv()
  26.     if recv_flag == 1 then
  27.         LIB_GpioToggle("D8")--黄色LED闪烁
  28.         --将服务器TCP下发的数据通过485总线透传出去
  29.         SendEn()
  30.         LIB_Uart1BlockSend(recv_tab)
  31.         RecvEn()
  32.     end
  33.     --查询是否收到485总线发来的数据
  34.     recv_flag,recv_data = LIB_Uart1Recv()
  35.     if recv_flag == 1 then
  36.         LIB_GpioToggle("D8")--黄色LED闪烁
  37.         --将485总线发来的数据通过TCP透传给服务器
  38.         LIB_IntWifiTcpSend(recv_data)
  39.     end
  40.     --WiFi状态判断
  41.     --每隔一秒读取一次系统信息,其中包含WiFi是否连上路由器或Ap的信息
  42.     Rst,Crash,HeapSpace,ApCon=LIB_GetC2KeyDbgInfo()
  43.     if ApCon == 1 then
  44.         LIB_GpioWrite("D9", 0) --WiFi已连上AP,绿灯亮
  45.     else
  46.         LIB_GpioWrite("D9", 1) --WiFi未连上AP,绿灯灭
  47.     end
  48. end
复制代码


五、实验现象
(1)将上面代码中的WiFi路由器账号和密码设置成您的。(2)用485转USB工具将电脑和开发板上的RS485接口连接。(3)将代码复制到开发板的虚拟TF卡中开始运行。(4)在电脑端打开《网络调试助手》工具,并开启IP地址为“192.168.43.27”端口为8888的TCP Server,其他设置如下图。(5)在电脑端打开《串口调试助手》工具,波特率设置为19200,其他设置如下图。我们可以看到在《串口调试助手》中发送 01 02 03 04 05 五个字节数据后,在《网络调试助手》中可以收到01 02 03 04 05我们可以看到在《网络调试助手》中发送 06 07 08 09 0A 五个字节数据后,在《串口调试助手》中可以收到 06 07 08 09 0A注意:我们的开发板和电脑需要连在同一个路由器之下。


2.png

3.png

六、常见问题


如果当您运行代码后发现无法正常通信,别着急,从以下几个方面找问题:
ap_ssid 和 ap_passwd 是否设置对了?


服务器地址server_addr和端口号server_port是否设置对了?服务器是否正常工作?
您用的AP,是否正确设置成2.4G网络了?因为目前很多手机和路由器支持5G WiFi网络,但5G网络不适用于物联网设备。





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2022 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表