【物联网】esp8266+云服务器搭建物联网通道

一 概要

接触过一些物联网云平台,如阿里云、华为云、腾讯云、机智云等,要想使一个嵌入式设备接入物联网平台,一般需要一下几个步骤:
1.通过2G、4G、NB-IOT、WIFI等手段让你的嵌入式设备能接入公网;
2.将物联网云平台生成的设备密钥写入嵌入式设备,其中,这个密钥相当于设备唯一ID;
3.在云平台创建“数据节点”、“控制节点”等。
4.移植云平台的SDK程序到你的嵌入式设备。
以上2、3、4步确实能通过云平台现有的功能来极大的提高设备接入物联网的效率。但想真正理解物联网、云平台,还需要自己研究、或者说猜测一下其运作原理,从而从一定程度上搭建一个自己的物联网云平台。
以我的理解,物联网云平台的运作大概是这样的:平台其实是一个公网ip,平台商家在这个公网ip上建立tcp服务器(server),我们的设备即是一个个的tcp client,通过公网来连接平台服务器,实现数据交互,从而实现各种数据通讯、控制。当然,在这个服务器上加入数据库,就实现了多个设备的绑定,即通过平台生成的密钥来绑定;加入数据库,也实现了历史数据的保存,以及查询;在这个服务器上加入一些IT技术,就生成了可方便配置的“数据节点”,以及可方便配置的web页面。同时,有些云平台还支持手机绑定嵌入式设备,从而实现在手机上远程与设备进行交互,其实分析一下,手机也是作为一个client连接到了云平台服务器,只是在与设备交互时,中间隔了一个服务器,服务器只要知道手机绑定的是那个ID的设备就可以实现手机、设备之间的数据转发了。
总而言之,只要我们搭建好了这个tcp server,保证嵌入式设备可以连接上,之后就可以做更伟大的事了,比如各大云平台做的物联网云平台。

二 我们要做什么

一顿理论分析之后,我们就开始试着打通这个物联网通道吧。通过阅读这篇文章,我们可以搭建一个物联网平台的最最基础的地基,之后更伟大的工作便可由大家任意发挥。
通过此文,我们将了解:
1.云服务器的申请、设置;
2.掌握FileZilla的远程文件传输;
3.esp8266 wifi模块的上网;
4.云服务器的基本程序编写。

2.1 获得一个可用云主机

这里再次白嫖腾讯云的30天免费试用的轻量应用服务器,从这里get【腾讯云-轻量应用服务器试用】,申请的时候要选择云主机内安装的操作系统,我这里选择是linux系统的ubuntu,因为对它比较熟了。等待云主机建立并开机后,我们就可以在控制台中看到我们的公网IP了。在window下按win+r,输入cmd进入命令行,ping一下这个IP,是可以ping得通的,那么我们就可以在这个ip上建立tcp服务器,从而实现tcp通讯了。
在这里插入图片描述
尝试登陆一下,就通过web端的SSH远程登入了我们的云主机,又是熟悉的命令行。
在这里插入图片描述

2.2 在云主机上建立tcp server

这里还是使用我之前写的tcp server例程,扛住了5000个clinet的并发测试。【tcp server传送门】。一共包含三个文件——server.c server.h Makefile。其主要内容是为每个client建立一个线程用于业务交互,从client收到什么就返回什么到client。当我开开心心的将源码复制、粘贴到云主机时,问题出现了,通过腾讯云的这个命令行粘贴时,总是出现一些莫名奇妙的符号,导致编译不通过。因此需要通过其他方法来实现了。这里我们用到大名鼎鼎的FileZilla来将windows下的三个文件远程扔到云主机里。
打开FileZilla后建立新站点,协议选择SFTP,主机填入你云主机的公网IP,然后输入linux的用户名、密码,即可连接到云主机。
在这里插入图片描述
其中,ubuntu系统下的用户名就是ubuntu,这个腾讯云里有介绍,密码可以通过下图进行重置。
在这里插入图片描述
连接成功后,FileZilla将列出本地文件和远程主机的文件列表。
在这里插入图片描述
我们通过FileZilla将server.c server.h Makefile传到远程云主机后,因为我们是用ubuntu这个用户登陆的,而腾讯云的远程登陆默认使用的是Lighthouse用户,因此我们还需要在linux下切换用户:

su ubuntu
输入密码即可

之后我们来到存放服务器源码的目录,make一下,就生成了可执行的tcp_server.
在这里插入图片描述
如果在make时提示错误,是因为腾讯云的linux默认没有安装完整的gcc编译库,输入一下命令安装后重试即可:

sudo apt-get install build-enssential

另外,由于程序里打开的时8888端口,这个端口在腾讯云的防火墙里默认没有打开,还需要我们手动开启一下,否则无法监听套接字。
在这里插入图片描述
至此,我们运行一下tcp_server,服务器就建立了,程序开始监听有无客户端接入。
在这里插入图片描述

2.3 操作esp8266连接到服务器

使用AT指令操作esp8266,具体指令详见官方AT指令集。这里我们直接开启透传模式。

1. 配置 WiFi 模式
AT+CWMODE=3	
2.连接路由器
AT+CWJAP="SSID","password"	   SSID是你的wifi热点名称,后边是密码
这个wifi热点既可以是你家里的wifi路由器,也可以是手机创建的热点。
3.连接云主机服务器
AT+CIPSTART="TCP","xx.xx.xx.xx",8888
4.开启透传模式
AT+CIPMODE=1
5.发送数据
 AT+CIPSEND
 之后就开启透传了,通过串口向esp8266发送任意数据都会直接扔给服务器,同时服务器发给esp8266的数据也会直接通过串口接收。

我用的串口助手操作的esp8266,实验现象如下,发送this is a test后,收到了服务器原封返回的this is a test:
在这里插入图片描述
服务器端实验现象如下:
在这里插入图片描述

三 总结

由此,物联网平台最基础的部分算是打通了。设备端不仅限于使用esp8266 wifi模块的上网方式,4G、2G等模块,只要是能建立tcp连接的都可以。
只要打好了这个基础,即我们的服务器可以成功与客户端进行通讯,那我们就可以在服务器上施展拳脚了,主要是程序的编写。我们可以在服务器上编写数据库、编写业务逻辑,甚至编写web端,甚至可以利用Qt、c#等写服务器上位机,可视化的运行在云主机上,从而做任何你想做的事。这样,一个物联网云平台就随着你的想法而建立了。
比如,当你有一个这样的需求:你有一个温湿度采集模块,通过上述方法已经可以和云服务器通讯了,但是你还想在手机上方便的查看模块采集的温湿度。
你完全可以这样做:编写手机APP,同样的,手机APP也是一个client。连接至云服务器,通过通讯得知模块是否在线(模块上线后应该要通过协议告诉服务器“我上线了”),或者查看模块的历史温湿度。而当你有很多个模块时,每个模块就要配备一个唯一的ID,云服务器维护这个ID的模块的上线信息、数据通讯、数据存储等,而你的手机只需要通过ID绑定某个模块,便可以轻松地实现所谓的物联网。这个流程像极了阿里云、机智云等云平台的操作流程,但可以肯定的是,人家的协议更加规范、稳定,数据库更加健壮,开发更加方便。但又有什么能比得上自己搭建一个物联网平台而学到更多呢。

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: ESP8266是一款集成了Wi-Fi模块的51单片机,可以实现物联网应用。温湿度传感器是一种用于测量环境中温度和湿度的设备。 在使用ESP8266和51单片机搭建温湿度传感器时,首先需要连接温湿度传感器到单片机的引脚。传感器通常有三个引脚,分别是VCC、GND和DATA。通过将VCC引脚连接到单片机的电源引脚,GND引脚连接到单片机的地引脚,然后将DATA引脚连接到单片机的一个可用IO引脚上。 在软件方面,我们可以使用Arduino IDE编写代码来读取传感器数据并将其发送到端或通过串口输出。通过使用适当的库,我们可以简化与传感器的通信过程。 编写代码时,我们可以首先初始化串口进行输出,并初始化温湿度传感器。然后,我们可以设置一个定时器来定期读取传感器数据。读取数据后,我们可以将数据发送到预定的目的地,例如通过Wi-Fi发送到服务器或通过串口发送到电脑。 在实际应用中,我们可以将ESP8266和51单片机与温湿度传感器一起使用,以监测室内或室外的温度和湿度变化。这可以用于自动化系统,例如自动调节空调或通风系统,以保持适宜的温湿度。 总而言之,使用ESP8266和51单片机搭建温湿度传感器可以实现温湿度数据的实时监测和远程传输,为物联网应用提供了可靠的基础。 ### 回答2: ESP8266是一款高性能、低功耗的Wi-Fi模块,适用于物联网项目。而51单片机是常用的微控制器,具有广泛的应用领域。温湿度传感器用于测量环境的温度和湿度,并将数据传输到控制器进行处理。 在使用ESP8266和51单片机进行温湿度传感器的编程时,需先连接温湿度传感器到单片机的GPIO引脚上。然后,通过相应的电路和代码,可以读取温湿度传感器的数据。 首先,在代码中需引入相应的库文件,例如DHT库以支持温湿度传感器的读取。然后,定义所需的引脚和变量,配置单片机的GPIO引脚,以便与传感器通信。 接下来,通过相应的函数,读取温湿度传感器的数值。将传感器返回的数值进行解析,得到温度和湿度的数值。 最后,可以将得到的温湿度数据通过ESP8266模块通过Wi-Fi连接发送到服务器或其他设备上。这样,可以实现远程监控温湿度数据的功能。 总之,使用ESP8266和51单片机结合温湿度传感器可以实现温湿度数据的监测和传输。这对于需要对环境进行实时监测的物联网项目非常实用。 ### 回答3: ESP8266是一款功能强大的Wi-Fi模块,而51单片机是一种常用的嵌入式控制器。温湿度传感器是一种用于测量环境温度和湿度的设备。 ESP8266和51单片机可以配合使用温湿度传感器,实现对环境温湿度的监测和数据传输功能。具体的实现方式可以是,通过51单片机来读取温湿度传感器的数据,然后利用ESP8266模块的Wi-Fi功能,将数据发送到端或其他设备。 在实际应用中,可以通过编程来配置ESP8266和51单片机之间的通信协议,使它们能够互相连接和传递数据。同时,还可以利用ESP8266模块的强大功能,如TCP/IP协议栈和Web服务器功能,使温湿度数据可以通过互联网远程访问和监测。这样,用户可以通过手机、电脑等设备随时随地获取温湿度数据,而无需实时接触传感器。 此外,为了保证温湿度传感器的准确性和稳定性,在设计和制作过程中需要注意一些细节。例如,选择合适的传感器,注意传感器的精度和响应时间;同时,需合理布置电路和引脚连接,以及合理选择电源和信号线的布线方式,以避免干扰和故障。 总的来说,通过ESP8266和51单片机配合使用温湿度传感器,可以实现对环境温湿度的远程监测和数据传输,为用户提供更便利和智能化的环境管理解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜老越

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值