概述
一,最初想法:
近年来,随着人们生活水平的提高,人们对家居环境和空气质量的要求也越来越高。人们往往会通过种植一些绿色植物来改善家居环境和空气质量,同时也可以缓解自己的工作压力,放松心情。然而人们往往因为工作繁忙而无暇照顾盆栽,等到回过神来,可能盆栽已经奄奄一息;或因为错误的种植方式,缺乏相应的种植经验而导致盆栽死亡。由此可见,市场上急需一款能在用户出差时或在主人缺乏种植经验时帮助用户打理好自己盆栽的产品。这也是“智能浇花系统”这个项目的出发点。
二,实现功能
1、控制器会自动检测植物土壤湿度信息,并在土壤湿度较低的情况自动给其浇水。
2、可以随时随地通过安卓app或微信小程序查看土壤湿度信息。
3、可以通过安卓app或微信小程序实现远程浇灌,不必担心不在时无法给植物浇水的问题;
三,总体方案设计
由于本次项目涉及到硬件设计、服务器构建、客户端等开发,其范围比较广,所以把系统方案根据物联网的体系结构分为感知层、网络层、应用层做说明。
1,感知层这一层解决的是外界环境数据获取问题,包括温湿度,土壤湿度。
2,网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括
寻址和路由选择、连接的建立、保持和终止等。本项目主要是利用MQTT协议进行网络通讯。
3,应用层位于物联网三层结构中的最顶层,它的功能是通过APP进行数据的显示以及命令下发。
下图为整个方案的架构:
四,具体实现方案设计
本系统硬件主要部件由STM32单片机,WiFi模块,传感器,电机驱动四部分组成。
1,其中STM32是整套系统的主控制器,负责整个系统的工作。
2,WiFi模块内部烧录好能够连接云端的SDK,这样能够保证系统正常的连接到云端,顺利的将数据上传到云,并且WiFi模块能够接受远程设备推送来的消息,然后将其传给STM32,从而使整套系统可以与云端对话。
3,传感器是本套系统的触觉系统,能够感知花盆土壤表面的温湿度信息。
4,电机驱动是本套系统的执行部分,负责完成远程的控制命令。
将这几部分结合到一起就实现了一个简单的底层智能系统。
本系统利用的云平台是阿里云。
系统主要架构:
其中,M2M是机器对机器(Machine-To-Machine)通信简称。目前,M2M重点在于机器对机器的无线通信,存在以下三种方式:机器对机器,机器对移动电话(如用户远程监视),移动电话对机器(如用户远程控制)。
五,方案落地
主要包含了几个部分,
一个是底层的stm32搭建起一个自动浇花系统;
二是底层ESP8266与阿里云利用MQTT协议进行通讯;
三是阿里云对上传和下发数据进行云流转,更像一个中转站;
四是上层的APP与与阿里云利用MQTT协议进行通讯;
五是设计APP端,进行数据的处理;
下面我会根据自己做的流程说一下方案落地,而不是按照上面的顺序,因为上面是做完后的总结,不能体现感受做的过程。
5.1 利用阿里云对上传和下发数据进行云流转
说明1
首先说一下阿里云,当初选择是阿里云平台自身继承了很好的移动开发效果,但是最近由于更新不能进行APP移动端的开发,所以我们选择了用Andorid studio进行APP端开发。
说明2
小规模的数据传输下免费开发,也就是说只要我们注册一个账号便拥有自己的云平台。
主要实现步骤:
5.1.1 注册,熟悉
找到阿里云,进行注册,然后登陆,登陆后点击控制台,然后找到物联网平台,这样,我们便进入到了主界面。
进入后,我们可以找到产品文档,然后点击物联网设备接入和管理
然后把每个栏目都看一下,重点关注一下最佳实践。
5.1.2 创建产品和设备
说明:
以下过程只是提供n种方式中的一种创建方式,其实好多时候我们可以自定义,没必要用系统已经有的。
以下过程出现备注的地方只是作为我们了解产品功能,可任意填写,让自己明白所定义的功能,也可以不填
1、 新建产品
点击产品,创建产品,产品名称任意,我选择了创建自定义产品
进入产品的功能定义选项,选择“编辑草稿”
添加标准功能,添加温湿度,作为示范,确定
发布更新,版本号可以填1.0.0(自定义)
到这里我们已经为我们的产品配备了功能,其实这些更像是之前学过的函数变量的定义。这里的标识符Temperature,EnvHumidity是我们以后设备间通讯的关键。
这里有个服务端订阅介绍,大家可以了解下。
选择”创建订阅”,产品选择test(消息类型根据需要选择)
选择消费组,创建消费组,确定
创建成功
2、新建设备
选择物联网平台的“设备“ ,选择我们的产品test,选择添加设备,
这里我添加两个设备,一个是底层的stm32,一个是上层的app-1,显示未激活,设备名“Device Name”可以自己随意填,填完确认就可以了。
5.1.3 调试
1、获取产品下设备的三元组
单击刚刚新建的“test”产品下设备,点击查看,再点击ProductSecret查看
2、利用MQTT.fx 登陆
安装软件:
这里采用的一种方式是
选择“产品文档“->“物联网接入与管理”
选择“入门教程“的->使用MQTT.fx 接入物联网平台
下载安装MQTT.fx,这里有个Password生成工具需要用到.
另一种方式
下载1,这里我用的是技小新_MQTT单片机编程小工具,
链接:https://pan.baidu.com/s/1GT0n0tMRd64xUstciK5YQQ
提取码:3wri
下载2,MQTT客户端:
链接:https://pan.baidu.com/s/1EELn-CHm_14Oz6gg8ZgW7w
提取码:gf4d
安装完成后,将三元数复制到技小新软件,生成基本信息
然后把信息填入到MQTT.fx中,点击齿轮将下面五项填入
这一块除端口填入 Broker Address
填入后,点击OK
点击connect,出现绿色圆圈
阿里云刷新可以看到设备在线,同样的方式可以让 stm32设备在线
3、通信
下行通信
负责自定义主题的订阅主题“/a1JxOUTX7DV/app-1/user/get”
在MQTT.fx选“subscribe”在方框中粘贴刚刚复制的topic,然后单击subscribe按钮
切换到阿里云端,单击刚刚负责主题的订阅“发布消息”.输入需要发布的信息,单击确定
此时可以收到消息
至此下行传输数据完成,
接下来就是上行传输数据
到阿里云查看发布设备状态的主题,复制下来
点击publish,复制进去
接下来是上报设备属性,写入json指令格式,
{
"method" : "thing.event.property.post",
"params" : {
"Temperature" : 25,
"EnvHumidity":26,
},
"version" : "1.0.0"
}
注意版本号可加可不加
注意上述标识符和功能定义一致
填入json消息,点击发布
可以在运行状态看到已经收到消息
到这里我们基本完成了第一部分,其实还有云流转产品,但是必须两个设备同时在线,才能演示,后续会说明.
总结一下,等到我们连接实际设备后我们会发现,我们用的MQTT.fx是可以作为调试底层stm32和上层app端的模拟设备,可以看到我们整个系统有没有搭建对.这里多提一下,其实云端的app-1对应的以后开发的APP.云端stm32对应实际的stm32底层硬件,它是通过ESP8266与云端进行通讯的.
最后
以上就是傲娇戒指为你收集整理的IOT(阿里云)-智慧花卉 - 1,利用阿里云对上传和下发数据进行云流转的全部内容,希望文章能够帮你解决IOT(阿里云)-智慧花卉 - 1,利用阿里云对上传和下发数据进行云流转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复