基于STM32+4G模块设计的智能灌溉系统

lxf2023-12-15 05:20:01

一、前言

农业灌溉会直接影响作物的生长,合理的灌溉能够提升作物的质量和产量,更有助于水资源的持续利用。过度的灌溉不仅降低水资源利用率,还可能造成作物养分流失、病虫害、内涝等众多问题。因此随着农业智能化发展,我国农业需要提升农业灌溉合理性,因此为智能灌溉行业提供发展机遇。

传统的灌溉方式灌溉时长久,且费时费力,还容易造成水资源浪费的问题,随着现代农业的迅速发展,传统灌溉方式逐渐被淘汰。智能灌溉方式具有规模化、智能化、集约化的优点,是现代农业现代化发展的必然趋势,因此未来智能灌溉一行业将得到快速发展。

根据新思界产业研究中心发布的《2021-2025年中国智能灌溉行业市场深度调研及发展前景预测报告》显示,农业灌溉是世界上最大的淡水消耗之一,世界上几乎60%取自河流、湖泊、水库和水井的水用于灌溉。我国作为用水大户,70%以上的用水用于农业灌溉。随着农业智能化,农业灌溉的降本要求提升,水资源的有效利用成为重要问题。当前在发达国家,农业水资源利用率已经达到82%左右,但我国目前农业水资源利用率不到55%。智能灌溉作为一种高效利用水资源的农业灌溉的方式,在我国农业现代化中应用需求较高,行业发展前景较好。

二、设计需求

当前智能灌溉系统分为三个部分:温湿度采集部分、灌溉系统部分、OneNet云平台。

(1)温湿度采集部分

硬件组合:STM32F103+4G模块+DHT11

功能: 采集环境温湿度后,通过4G模块将数据上传到OneNet云平台实时显示。

(2) 灌溉系统部分

硬件组合:STM32+4G模块+继电器(控制水泵灌溉)。

功能:通过MQTT协议连接OneNet云端,手机上可以打开控制页面的按钮对继电器进行远程控制,实现远程操作水泵灌溉。

灌溉系统部分增加刷卡功能,用户可以通过IC卡刷卡将金额刷到灌溉系统设备里,灌溉系统设备里会记录金额,并且在手机可视化页面上会显示当前的设备金额。 金额会随着时间进行递减,按分钟计费,如果计费到0,就无法启动灌溉,需要重新充值金额才能继续。

(3)OneNet云平台

OneNet云平台提供了服务器可以接入设备,也提供了可视化页面设计功能,可以通过OneNet的可视化页面设计web网页,完成温度湿度显示,继电器控制等等操作。 网页发布后可以设置密码访问,也可以公开访问。手机、电脑浏览器打开就能看到页面。 同时也提供了设备云手机APP,打开就可以登录看到设备信息。

三、硬件选型

3.1 STM32开发板-2份

主控CPU采用STM32F103RCT6,这颗芯片包括48 KB SRAM、256 KB Flash、2个基本定时器、4个通用定时器、2个高级定时器、51个通用IO口、5个串口、2个DMA控制器、3个SPI、2个I2C、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口,芯片属于大容量类型,配置较高,整体符合硬件选型设计。当前选择的这款开发板自带了一个1.4寸的TFT-LCD彩屏,可以显示当前传感器数据以及一些运行状态信息。

基于STM32+4G模块设计的智能灌溉系统

3.2 杜邦线-2份

基于STM32+4G模块设计的智能灌溉系统

3.3 4G模块(有人科技)-2份

特点: 在2G退、4G贵、NB慢的趋势下,采用全新网络制式推出的4G DTU透传插针模块-WH-LTE-7S1系列,为中低速物联网通讯提供全新解决方案,在速率、延迟、功耗和成本等方面,为用户提供多样选择。

最大的优点:

(1)价格便宜(目前因为活动价便宜),一个BC26-NBIOT模块价格都在80块以上。

(2)内置电信卡,不需要单独插卡,买卡,内置卡每月100M流量连送8年,可以满足一般的物联网场景。

基于STM32+4G模块设计的智能灌溉系统

3.4 天线(4G模块使用)-2份

天线是给4G模块使用的,增加信号强度。

基于STM32+4G模块设计的智能灌溉系统

3.5 继电器模块

基于STM32+4G模块设计的智能灌溉系统

3.6 DHT11温湿度模块

DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度595%RH, 温度-20+60℃。

基于STM32+4G模块设计的智能灌溉系统

3.7 RFID-RC522刷卡模块

基于STM32+4G模块设计的智能灌溉系统

四、OneNet云平台设计

OneNET是由中国移动打造的PaaS物联网开放平台。平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件、智能家居产品提供完善的物联网解决方案。

4.1 创建产品

(1)登录OneNet

官网:open.iot.10086.cn/

基于STM32+4G模块设计的智能灌溉系统

(2)进入控制台

不用切换到旧版,当前使用的是新版的MQTTS物联网套件。

基于STM32+4G模块设计的智能灌溉系统

(3)选择MQTT物联网套件

基于STM32+4G模块设计的智能灌溉系统

(4)添加产品

点击左上角添加产品。

基于STM32+4G模块设计的智能灌溉系统

根据自己的设备信息填写。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

设备创建完成。

基于STM32+4G模块设计的智能灌溉系统

(5)查看产品详情信息

点击产品名称,会进入到产品详情页面,可以看到产品的ID和key。 这些信息在后续的MQTT登录、可视化界面的数据流关联里都非常重要。

基于STM32+4G模块设计的智能灌溉系统

这里先提前记录下来,方便后续的使用:

 access_key:9R1ZQrptumB63QxmY0wmQU0uY4epEEWaIuUW605kQZw=
     
 产品ID:  557229

4.2 创建设备-温湿度采集设备

目前灌溉系统分为两个部分,一个是温湿度采集,一个是水泵灌溉部分。设备对应2个。

(1)添加设备

在设备页面点击添加设备。

基于STM32+4G模块设计的智能灌溉系统

(2)填写设备信息

基于STM32+4G模块设计的智能灌溉系统

(3)添加完成

基于STM32+4G模块设计的智能灌溉系统

(4)查看设备详情

点击设备列表的详情按钮,可以看设备的详细信息。 设备ID和设备的key非常重要,后续生成MQTT三元组需要使用。

基于STM32+4G模块设计的智能灌溉系统

当前数据采集设备的信息如下:

 设备ID :1016390805
 key   : sYAKWlI1r7+47kzPrj6O94RBC57tKsVsGD1tJj5s2x0=

4.3 创建设备-水泵灌溉端

(1)添加设备

基于STM32+4G模块设计的智能灌溉系统

(2)填写设备信息

基于STM32+4G模块设计的智能灌溉系统

(3)添加完成

基于STM32+4G模块设计的智能灌溉系统

(4)查看设备详情

点击设备列表上的详情按钮,可以看到设备DI和key。

基于STM32+4G模块设计的智能灌溉系统

当前设备信息如下:

 设备ID   1016393316
 key      gD3creX6+GfTKoGON6XdbSxtr7tHUwJfF7mHryNNCww=

4.4 创建数据流模板

(1)添加数据流模板

数据流是存储设备上传的数据的。设备需要上传哪些数据上来,就创建对应的数据点去对应。

基于STM32+4G模块设计的智能灌溉系统

(2)采集端需要的数据流

当前数据采集端主要是采集温度和湿度,就创建两个数据流。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

(3)水泵灌溉端需要的数据流

水泵灌溉设备需要完成计费金额显示,水泵控制两个数据流。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

(4)添加完毕

基于STM32+4G模块设计的智能灌溉系统

当前所有的数据流如下:

 dht11_t  环境温度   
 dht11_h  环境湿度   
 motor    水泵控制   
 money    当前可用金额

4.5 MQTT设备登录(软件模拟)

(1)MQTT协议介绍

OneNet的云平台采用MQTT协议接入,MQTT协议是一种消息列队传输协议,采用订阅、发布机制,订阅者只接收自己已经订阅的数据,非订阅数据则不接收,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理。因此在工业物联网中得到广泛的应用。MQTT协议是一种基于TCP/IP协议上传输的轻量级通信协议,只要设备支持TCP协议,就可以组建MQTT协议包完成通信。

目前硬件设备联网采用的是有人科技的4G模块,这个模块本身没有内置MQTT协议,只是支持TCP协议,所以需要在单片机里通过软件自己封装MQTT协议完成与OneNet云平台的通信。

在设计硬件代码之前,需要先了解云平台如何接入,MQTT协议如何使用,接下来会先介绍MQTT协议登录需要 的三元组如何生成,MQTT服务器地址、主题订阅、主题发布的数据格式,最后再利用MQTT客户端软件模拟设备完成OneNet云平台登录,完成数据上传,命令下发测试。 只要MQTT软件测试没有问题,那么接下来通用硬件接入的流程就是一样的操作。

(2) OneNet的MQTT服务器地址

在这里可以看到MQTT协议接入平台时,填入的服务器IP和端口号。‘

文档地址: open.iot.10086.cn/doc/v5/deve…

基于STM32+4G模块设计的智能灌溉系统

MQTTS 接入套件支持标准 MQTT V3.1.1 版本,支持TLS加密,接入服务地址如下:

 MQTT    mqttstls.heclouds.com   8883    加密接口
 MQTT    mqtts.heclouds.com      1883    非加密接口

对于单片机而言,使用非加密接口比较方便。本次项目就采用的是非加密接口。 端口号是1883。

 上面的域名转为IP之后信息如下:(如果设备不支持域名解析,可以直接填IP地址)
 IP地址: 183.230.40.96
 端口号: 1883

(3)下载密匙生成工具

密匙生成工具是生成MQTT协议登录的密码。设备要登录OneNet平台需要填账号、密码等信息。

地址: open.iot.10086.cn/doc/v5/deve…

点击进行下载。

基于STM32+4G模块设计的智能灌溉系统

这是工具打开的页面:

基于STM32+4G模块设计的智能灌溉系统

工具软件里需要填写的参数如下:

 【1】res选项参数的格式: products/{产品ID}/devices/{设备名称}
 ​
 【2】et是设置token过期时间:算出1970-1-1到你想要设置的到期时间,单位是秒,填入即可。
 比如: 超时时间设置为2022-4-7,那么,这里填入的秒就是:1970-1-12022-4-7之间的秒单位时间。
 ​
 【3key的参数格式: 就是设备创建之后,在设备详情页的key

(4) 生成token过期时间

下面通过C代码计算得一个时间范围:

 #include <stdio.h>
 #include <time.h>
 #include <time.h>
 int main()
 {
     time_t time_sec;
     time_sec=time(NULL); //当前的秒单位时间--UTC时间
     printf("当前时间(秒):%ld\n",time_sec);
     printf("加一年的时间(秒):%ld\n",time_sec+12*30*24*60*60);
     return 0;
 }

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

设置的过期时间-1年:  1698635613
设置的过期时间-2年:  2040780102

(5)密匙生成工具参数

密码生成工具软件的选项框需要填入的格式: (关于产品ID和设备key的查看方式在设备创建章节里已经讲过了)

res选项格式:products/<产品ID>/devices/<设备名字>
res选项填入:products/557229/devices/DHT11  (数据采集设备)
res选项填入:products/557229/devices/motor  (水泵)
et是设置token过期时间:2040780102
设备key:sYAKWlI1r7+47kzPrj6O94RBC57tKsVsGD1tJj5s2x0=	(数据采集设备)
设备key:gD3creX6+GfTKoGON6XdbSxtr7tHUwJfF7mHryNNCww=   (水泵)

下面把这些参数截图标注出来,方便各位去对应寻找:

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

打开工具填入参数,生成密匙:

第一步生成数据采集设备的密匙。

基于STM32+4G模块设计的智能灌溉系统

得到的密匙信息如下:

version=2018-10-31&res=products%2F557229%2Fdevices%2FDHT11&et=2040780102&method=md5&sign=ymz%2F6wBGP%2Fikh64%2BkNb%2FTQ%3D%3D

第二步生成水泵灌溉设备的密匙:

基于STM32+4G模块设计的智能灌溉系统

得到的密匙信息如下:

version=2018-10-31&res=products%2F557229%2Fdevices%2Fmotor&et=2040780102&method=md5&sign=C4DxNR6cKDB95%2FcfcNh5FA%3D%3D

(6)主题订阅格式

主题订阅是设备订阅平台的消息,如果设备想知道平台下发的消息,就需要订阅主题。

帮助文档: open.iot.10086.cn/doc/mqtt/bo…

目前支持订阅的主题如下:

订阅 topic订阅效果
$sys/{pid}/{device-name}/dp/post/json/accepted订阅设备数据点上报成功的消息
$sys/{pid}/{device-name}/dp/post/json/rejected订阅设备数据点上报失败的消息
$sys/{pid}/{device-name}/dp/post/json/+订阅设备数据点上报结果
$sys/{pid}/{device-name}/cmd/request/+订阅设备所有命令消息
$sys/{pid}/{device-name}/cmd/response/+/+订阅设备所有命令应答结果消息
$sys/{pid}/{device-name}/cmd/#订阅设备所有命令相关消息
$sys/{pid}/{device-name}/#订阅设备所有相关消息

如果想知道设备所有相关信息,直接订阅$sys/{pid}/{device-name}/#即可。 (其中的PID就是产品ID)

 (分别是数据采集设备和水泵控制设备)
$sys/557229/DHT11/#
$sys/557229/motor/#

为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取上传数据点结果消息;

topic 命名规则如下:
$sys/{pid}/{device-name}/dp/post/json/+

本例中,订阅topic为: (分别是数据采集设备和水泵控制设备)
$sys/557229/DHT11/dp/post/json/+
$sys/557229/motor/dp/post/json/+

(7)主题发布格式

主题发布: 就是设备向平台上传数据。

帮助文档地址:open.iot.10086.cn/doc/mqtt/bo…

文档里介绍了数据点上传的格式:

基于STM32+4G模块设计的智能灌溉系统

根据当前设备,总结的格式如下: (分别是数据采集设备和水泵控制设备)

发布主题: $sys/557229/DHT11/dp/post/json
发布消息:
{"id":123,"dp":{"dht11_t":[{"v":24.5}],"dht11_h":[{"v":60}]}}


发布主题: $sys/557229/motor/dp/post/json
发布消息:
{"id":123,"dp":{"motor":[{"v":1}],"money":[{"v":88}]}}

dp对象里面就是需要上传的数据点字段。 这个数据点的名字就是自己创建数据流模板的时候创建的。

数据采集设备是上传温度和湿度。

水泵控制设备是上传水泵开关状态和当前剩余金额。

(8)MQTT登录参数总结

MQTT协议登录时,需要输入3个参数: MQTT-设备ID,MQTT-设备名称,MQTT-密码。

对应OneNet的参数:

MQTT- 设备ID  -----> 就是OneNet的设备名称

MQTT-设备名称-----> 就是OneNet的产品ID

MQTT-密码------------> 就是OneNet的密匙工具生成的密码

这是温湿度数据采集设备的MQTT接入信息总结:

IP地址: 183.230.40.96
端口号: 1883
clientId: DHT11
username: 557229
password: version=2018-10-31&res=products%2F557229%2Fdevices%2FDHT11&et=5040780102&method=md5&sign=9twQIaGu5yecBvSlTEcBHw%3D%3D


订阅主题:  $sys/557229/DHT11/#


发布主题: $sys/557229/DHT11/dp/post/json

发布消息:
{"id":123,"dp":{"dht11_t":[{"v":24.5}],"dht11_h":[{"v":60}]}}

这是水泵控制设备的MQTT接入信息总结:

IP地址: 183.230.40.96
端口号: 1883
clientId: motor
username: 557229
password: version=2018-10-31&res=products%2F557229%2Fdevices%2Fmotor&et=2040780102&method=md5&sign=C4DxNR6cKDB95%2FcfcNh5FA%3D%3D


订阅主题:  $sys/557229/motor/#


发布主题: $sys/557229/motor/dp/post/json

发布消息:
{"id":123,"dp":{"motor":[{"v":1}],"money":[{"v":88}]}}

(9)MQTT客户端工具登录:数据采集设备

根据软件的输入框提示,输入对应的参数,然后登录设备,订阅主题,发布主题即可完成一个流程的测试。

基于STM32+4G模块设计的智能灌溉系统

然后打开网页查看设备状态: (可以看到设备已经在线了)

基于STM32+4G模块设计的智能灌溉系统

打开设备详情页面查看设备上传的数据:

基于STM32+4G模块设计的智能灌溉系统

(10)MQTT客户端工具登录:水泵灌溉设备

根据软件的输入框提示,输入对应的参数,然后登录设备,订阅主题,发布主题即可完成一个流程的测试。

基于STM32+4G模块设计的智能灌溉系统

然后打开网页查看设备状态: (可以看到设备已经在线了)

基于STM32+4G模块设计的智能灌溉系统

打开设备详情页面查看设备上传的数据:

基于STM32+4G模块设计的智能灌溉系统

到此,模拟设备上传数据到OneNet云平的测试已经完成。

4.6 可视化页面设计

(1)可视化组件介绍

为了方便查看设备的状态,控制设备,一般需要设计一个可视化页面,onenet提供了可视化组件框架,支持接入设备的数据源,显示设备数据,控制设备等等。

地址:open.iot.10086.cn/studio/view…

(2)新建项目

基于STM32+4G模块设计的智能灌溉系统

新建项目选择空项目新建,不过也可以选择模板,就看自己项目是否合适了。

基于STM32+4G模块设计的智能灌溉系统

(3)编辑项目

点击项目界面的编辑按钮。

基于STM32+4G模块设计的智能灌溉系统

(4)设置界面布局

页面可以设计手机页面,PC页面,为了方便,可以设计两个页面,一个电脑端打开的,一个手机端打开的。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

(5)设计界面样式

在设计页面有很多控件可以选择,根据自己的需求可以使用合适的控件显示数据。 比如:温度,湿度一般使用仪表盘显示比较合适。水泵开关自然是使用按钮控件比较合适。

下面是设计的好的页面效果。

基于STM32+4G模块设计的智能灌溉系统

选中控件之后,在右边可以设置相关的属性。 比如:名称,大小,样式,数据源,位置等等信息。

基于STM32+4G模块设计的智能灌溉系统

(6)设置数据源

界面上的控件最终是要实时显示设备的状态,显示设备上传的数据,接下来为控件设置数据源。

选中控件,在右边页面可以看到管理数据源的选项,点击进去。

基于STM32+4G模块设计的智能灌溉系统

数据类型选择OneNet,下面就是编辑自己要管理的设备数据源,根据自己要关联的设备进行设置。

这是关联数据采集设备的数据源:

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

这是管理水泵控制的数据源:

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

关联完成:

基于STM32+4G模块设计的智能灌溉系统

回到设计页面,给对应的控件设置数据源进行显示。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

剩余金额显示使用的是翻牌器控件,设备上传的数据不符合显示要求,需要利用数据过滤器写代码转换一下。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

(7)水泵开关按钮配置

为了方便设备判断水泵开关按钮下发的指令,可以对水泵开关的命令标识符进行修改。

基于STM32+4G模块设计的智能灌溉系统

修改后,点击按钮下发的数据就是:motor:0 或者 motor:1

(8)设计电脑页面

手机页面设计好之后,可以将控件都复制一份到电脑页面进行重新布局即可。

这是电脑端页面设计效果:

基于STM32+4G模块设计的智能灌溉系统

(9)保存发布

设计完毕之后,点击右上角进行预览,没问题然后点击保存,然后回到项目管理页面发布。

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

项目发布链接如下:

链接:https://open.iot.10086.cn/view/main/index.html#/share2d?id=63720141bb4cd10035240fed

这是手机上显示效果:

基于STM32+4G模块设计的智能灌溉系统

这是电脑页面显示效果:

基于STM32+4G模块设计的智能灌溉系统

在上方有工具条可以展开,切换页面。

基于STM32+4G模块设计的智能灌溉系统

(10) 数据通信测试

现在页面已经完毕,接下利用MQTT客户端登录OneNet平台,发送数据进行测试,点击界面按钮测试。

当点击界面按钮时,MQTT客户端收到数据如下:

len:73,Data:$sys/557229/motor/cmd/request/72380c2d-10b8-4bb3-b299-eb2a6e27d613motor:1
len:73,Data:$sys/557229/motor/cmd/request/2682baf7-bff8-4c35-8b22-98e389e0ca1fmotor:0

MQTT客户端发送数据,界面也响应及时,同步做出反应。

基于STM32+4G模块设计的智能灌溉系统

五、硬件设备代码设计

5.1 有人云4G模块使用介绍

模块的使用说明书:www.usr.cn/Down/WH-LTE…

拿到模块之后首先就是要了解引脚说明,明白每个引脚的功能。 在手册的第9页,有对模块引脚的介绍。

基于STM32+4G模块设计的智能灌溉系统

下面是模块的实物图:

基于STM32+4G模块设计的智能灌溉系统

调试模块时,必接的引脚有5个。 分别是:电源VCC(5V),电源GND,串口发送,串口接收,开机引脚。

下面标出这几个引脚的位置:

基于STM32+4G模块设计的智能灌溉系统

基于STM32+4G模块设计的智能灌溉系统

下面是接好线的实物图:

基于STM32+4G模块设计的智能灌溉系统

下面是标出引脚的排线编号规律:

基于STM32+4G模块设计的智能灌溉系统

接线说明: 接线时认真看IO口编号,对号入座,千万别接错了。

目前模块供电的VCC+正极有2个脚。一个支持3.4-4.2V (第16脚),一个支持5V16V(第13脚和第14脚)。供电的时候,这两个脚只能选择其中一个。 其中,3.4-4.2V 供电是留给锂电池使用的,5V16V的供电接口方便接单片机的电源。

当前的这个项目是需要使用STM32开发板来驱动模块完成网络连接,处理。 所以,这里模块供电引脚直接选择5V,方便接在单片机开发板引出的电源口上。

接线总结:

模块的第6个脚(UART-TX): 接单片机或者USB转TTL模块的RXD
模块的第7个脚(UART-RX): 接单片机或者USB转TTL模块的TXD
模块的第10个脚(key):    接单片机的电源正-3.3v (表示模块开机)
模块的第12个脚(GND):    接单片机的电源地-GND (给模块供电)
模块的第13个脚(DCIN):   接单片机的电源正-5v (给模块供电)

5.2 温湿度数据采集端

(1)功能介绍

温湿度采集端设备,负责采集温度,湿度数据上传到OneNet平台。

使用的硬件:STM32F103RCT6系统板、DHT11温湿度传感器、有人科技的4G模块。

(2)接线说明

(1) 有人的WH-LTE-7S1-4G模块与STM32的串口3连接。

模块的第6个脚(UART-TX): 接单片机PA3(RXD)
模块的第7个脚(UART-RX): 接单片机PA2(TXD)
模块的第10个脚(key)   : 接单片机的电源正-3.3v (表示模块开机)
模块的第12个脚(GND)   : 接单片机的电源地-GND (给模块供电)
模块的第13个脚(DCIN)  : 接单片机的电源正-5v (给模块供电)


(2) DHT11温度湿度传感器
VCC--VCC
GND---GND
DAT---PA5 

(3)代码介绍

使用keil打开工程:

基于STM32+4G模块设计的智能灌溉系统

工程代码如下:

基于STM32+4G模块设计的智能灌溉系统

5.3 水泵控制端

(1)功能介绍

水泵控制端设备,负责接收手机页面按钮下发的指令,完成浇水控制。并且将当前的剩余电费上传到云平台。

灌溉设备里默认金额100元,灌溉期间每分钟减去1元(不足一分钟按1分钟计算),刷卡一次可以充值100元。

使用的硬件:STM32F103RCT6系统板、DHT11温湿度传感器、有人科技的4G模块。

(2)接线说明

(1) 有人的WH-LTE-7S1-4G模块与STM32的串口3连接。

模块的第6个脚(UART-TX): 接单片机PA3(RXD)
模块的第7个脚(UART-RX): 接单片机PA2(TXD)
模块的第10个脚(key)   : 接单片机的电源正-3.3v (表示模块开机)
模块的第12个脚(GND)   : 接单片机的电源地-GND (给模块供电)
模块的第13个脚(DCIN)  : 接单片机的电源正-5v (给模块供电)


(2)  RC522射频模块外部的接口:    
*1--SDA <----->PB5--片选脚
*2--SCK <----->PB4--时钟线
*3--MOSI<----->PA12--输出
*4--MISO<----->PA11--输入
*5--悬空
*6--

*7--RST <----->PA8--复位脚
*8--VCC <----->VCC


(3)  继电器控制接口
GND <----->GND
VCC <----->VCC
IN <----->PA5

(3)代码介绍

使用keil打开工程。

基于STM32+4G模块设计的智能灌溉系统

工程代码如下:

基于STM32+4G模块设计的智能灌溉系统

本文正在参加「」

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!