物联网全栈教程-从云端到设备(十二)
一
经过前面的铺垫,你已经学会了在LinkDevelop上新建一个项目,然后通过使用MQTT电脑客户端模拟设备的方法来开发云端项目的代码。这波操作可以助你开发各类网页,手机APP等,但是脱离了硬件设备的支撑还能叫物联网吗?今天零妖就开始说设备端的开发,包括硬件电路的简单介绍和单片机代码的简单介绍。
重磅消息:零妖老哥的项目中用到的所有硬件电路已经全部开源,地址在这里:
https://lceda.cn/jixin N多开源硬件方案在这里
https://lceda.cn/jixin002/stm32f103c8t6_cmsis-dap 单片机程序代码下载器,开源硬件
https://lceda.cn/jixin/CH9121-4c2c4f99e2494eee8421dd23768820a1 以太网转串口模块
https://lceda.cn/jixin002/1-5-oled_jx 1.5英寸彩色OLED模块
https://lceda.cn/jixin001/wu-lian-wang-tan-mu-qi 物联网弹幕器核心板
通过这个硬件开源平台,你可以直接把零妖的图纸复制走,然后再稍作加工修改为你自己的。
二
首先要解决的头等大事就是如何连接到互联网。上网方法千千万万,零妖就选择了一个最传统但是又是最可靠的联网方式,以太网,俗称网线上网。对应的硬件就是CH9121以太网转串口模块,它的一端接上以太网,通过简单配置后就可以在另一端输出串口信号了,而且是透传。比方说你经过设置让你的模块通过TCP连接的方式连上了阿里云的服务器,那么你就可以通过操作串口来向服务器发送数据,以及接收来自服务器的数据了。
今天零妖来做个小实验,通过串口操作来和阿里云服务器交换数据。首先要保证手里的CH9121模块已经通电,而且它的TXD1和RXD1接口和一个USB转串口模块已经连在一起了。这样你就可以在电脑上打开一个串口助手(比如技小新串口助手),来收发CH9121的数据了。要注意,串口通信的连线方法是交叉连接,比如两个串口设备要通信,那么A的TXD要和B的RXD连接,A的RXD和B的TXD连接。
三
接下来要设置一下我们的CH9121模块,把它配置为一个TCP客户端,然后告诉它阿里云的服务器IP地址和端口号,再设置一下它的串口波特率,这样就OK了。插上网线后它就和我们的电脑同处一个局域网了,你需要打开一个电脑上位机来设置,这个电脑软件是生产CH9121的公司提供的,零妖会把它作为附件上传的。
你先打开MQTT单片机编程小工具,输入测试设备的激活凭证后,再修改一下发送payload区域的标识符即可。如果你想单片机编程时直接使用,那就再点击一下,生成头文件吧。
这里有一个步骤必须有,就是通过域名来获取IP地址,有一个简单办法就是PING这个域名。
然后打开以太网透传模块CH9121的电脑配置软件,填写刚才得到的IP地址和端口号,如下图:
OK,点击那个 配置设备参数 后,就会配置好CH9121模块,等它重启后就可以用了。
CH9121上面有个蓝色TCPCS的LED灯,如果它亮了就表示和服务器建立了良好的TCP连接了,这个是判断你设置是否OK的最直接办法。
四
好了,现在CH9121模块已经通过TCP的方式连接到了服务器了,你打开一个串口助手,准备发送一些数据来和服务器交流一下。发的数据还是通过MQTT单片机编程小工具生成的,你抓紧试一下。
先发送一个叫做Connect的报文到服务器,它的作用是连接到服务器,看看你的设备是不是会上线。
就是这么简单!设备已经成功连接到了服务器,接下来咱来试一下发送一个温度数据到云端。老办法,直接把属性上报的内容直接发出去,看一下服务器那边会不会有反应。
你再试一下云端下发数据:
五
经过上述实验,你是不是很惊喜?成功把和云端交互变成了一个串口的操作!单片机的上云之路从未这么简单!
如果你是一个有经验的单片机工程师,那么你就可以不用往后看了,直接用这种办法去上云吧,你可以选择有AT指令的WIFI模组,或者GPRS模组等等方式上网,方法和零妖介绍的是一样的。
下一篇文章零妖要开始介绍单片机STM32F103C8T6的使用方法了,从编译环境的搭建开始做起,一步一步的实现物联网弹幕器的功能!