Kara 发表于 2022-11-23 12:23:21

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

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模块在开发板上的位置如下:



注意,为了使用485接口,必须将P7和P8跳线帽短接才能让TX1引脚、RX1引脚和485转换芯片连接。
四、完整源代码LIB_GpioOutputConfig("D8","STANDARD") --初始化GPIO D8控制黄色LED1
LIB_GpioOutputConfig("D9","STANDARD") --初始化GPIO D9控制绿色LED2
LIB_GpioOutputConfig("D2","STANDARD") --初始化GPIO控制Max485 RE DE 收发控制
--配置Uart1串口波特率为19200,用作485通讯
LIB_Uart1Config("BAUDRATE_19200")
--WiFi工作相关参数配置
server_addr = "192.168.43.27" --这里也可以写服务器域名,比如"abc.com"等
server_port = 8888
ap_ssid = "mywifi" --路由器账号
ap_passwd = "abc123" --路由器密码
--初始化WiFi TCP模式
LIB_IntWifiTcpConfig(ap_ssid,ap_passwd,server_addr,server_port,0)
--定义使能MAX485发送函数
function SendEn()
    LIB_GpioWrite("D2",1)
end
--定义使能MAX485接收函数
function RecvEn()
    LIB_GpioWrite("D2",0)
end
--开始大循环
while(GC(1) == true)
do
    --查询是否收到服务端tcp下发的数据
    recv_flag,recv_tab = LIB_IntWifiTcpRecv()
    if recv_flag == 1 then
      LIB_GpioToggle("D8")--黄色LED闪烁
      --将服务器TCP下发的数据通过485总线透传出去
      SendEn()
      LIB_Uart1BlockSend(recv_tab)
      RecvEn()
    end
    --查询是否收到485总线发来的数据
    recv_flag,recv_data = LIB_Uart1Recv()
    if recv_flag == 1 then
      LIB_GpioToggle("D8")--黄色LED闪烁
      --将485总线发来的数据通过TCP透传给服务器
      LIB_IntWifiTcpSend(recv_data)
    end
    --WiFi状态判断
    --每隔一秒读取一次系统信息,其中包含WiFi是否连上路由器或Ap的信息
    Rst,Crash,HeapSpace,ApCon=LIB_GetC2KeyDbgInfo()
    if ApCon == 1 then
      LIB_GpioWrite("D9", 0) --WiFi已连上AP,绿灯亮
    else
      LIB_GpioWrite("D9", 1) --WiFi未连上AP,绿灯灭
    end
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注意:我们的开发板和电脑需要连在同一个路由器之下。






六、常见问题


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


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





页: [1]
查看完整版本: ShineBlink C2 DevKit开发板WIFI转485透传(DTU)