4,C# 物联网温度采集系统开发,ESP8266 配置与IOT网关开发(四)

前面咱们实现使用51采集温度传感器数据,并且通过串口将数据传输到PC,并通过C#将其解析完成显示到界面(采用winform开发)上。这个一般不是我们想要的效果,这样太耗费资源与成本了(每个需要具备一个Pc),到底有没有解决方案呢,答案肯定是有的。这里就是使用了咱们题目和开头准备的ESP8266Wifi 模块,具体这个模块的资料

乐鑫的IC

https://www.espressif.com/zh-hans/products/hardware/esp8266ex/overview

我这里使用的是Wifi模块。(安信可)在某宝上搜索便可以找到。

https://wiki.ai-thinker.com/esp8266

 在链接ESP8266之前一定要进行配置,配置有两种方法,一种是使用手机APP配置与串口AT配置,下面主要讲AT串口配置,可以下载,串调试助手理行配置。

4,C# 物联网温度采集系统开发,ESP8266 配置与IOT网关开发(四)_第1张图片

需要准备,一个配置的模块的小板子,某宝只需要1.5RMB,下面上照片,左边就是配置ESP8266的板子,右边是ESP8266的模块

4,C# 物联网温度采集系统开发,ESP8266 配置与IOT网关开发(四)_第2张图片

下面是配置的AT指令

AT+GMR查看固件版本。

v1.0以上固件命令如下

 //恢复到初始状态

AT+RESTORE

 //设置WiFi应用模式为Station和Server共存模式                          

AT+CWMODE=3        

 //连接路由器  SSID为路由器用户名,Password为密码  

AT+CWJAP="SSID","Password" 

//查看是否获得IP

AT+CIFSR 

//设置连接模式,0代表单一连接,1代表多连接

AT+CIPMUX=0

//设置为透传模式

AT+CIPMODE=1

//建立远程TCP连接

AT+SAVETRANSLINK=1,"116.255.xxx.xxx",8181,"TCP"

重启 ESP8266,然后开始通讯,传输数据。

注:

ESP8266连接 TCP

AT+SAVETRANSLINK=0取消透传模式

v1.0以下固件(例如v0.9.5.2版)命令如下

//设置WiFi应用模式为Station

AT+CWMODE=1

//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码

AT+CWJAP="SSID","Password"

//建立远程TCP连接远程

AT+CIPSTART="TCP","116.255.xxx,xxx",8181

//设置为透传模式

AT+CIPMODE=1

//进入透传模式

AT+CIPSEND

注意:AT+CIPSTART="TCP","116.255.xxx,xxx",8181

这个是服务器的网关的IP地址与端口号,

4,C# 物联网温度采集系统开发,ESP8266 配置与IOT网关开发(四)_第3张图片

配置好测试后可以看到数据已传输到云服务器了,接下来将ESP8266链接到单片机使用单片采集后传输到平台看看效果,网关服务器代码已传到交流群里面大家可以前去下载参考。

 var byteBuffer = message as IByteBuffer;
            var temp = byteBuffer.GetShort(0);
            var temph = temp >> 4;
            var templ = temp & 0x0f;
            templ = templ * 6 / 10;
            var info = (temph % 100) / 10 + "" + (temph % 100) % 10 + "." + templ + "℃";
            var buffer = DotNetty.Buffers.Unpooled.WrappedBuffer(byteBuffer); 
           
            var rmtPoint = context.Channel.RemoteAddress as IPEndPoint;
            //packet.RemoteIp = rmtPoint.Address.ToString();
            //packet.RemotePort = rmtPoint.Port;

            _logger.LogInformation($"reviced Datetime={DateTime.Now},远程地址:{rmtPoint.Address.ToString()},端口:{rmtPoint.Port},TSC89C52,DS18B20 Value={info}");
            _logger.LogInformation($"reviced wendu data={ByteBufferUtil.PrettyHexDump(byteBuffer)}");

以上为Net core的代码,主要用于接收单片机上传的数据,这就实现的单片机转wifi到云的硬件链接配置,与云端的网关开发。剩下的就是怎么实现把数据事实展示到Web页面了,并且可以交互控制。

 

你可能感兴趣的:(IOt,C#,Core)