产品概述

单片机土壤湿度 5个方面详解:AI产品运营必知的软硬件技术

小编 2024-10-06 产品概述 23 0

5个方面详解:AI产品运营必知的软硬件技术

比算法更难得是算法的思想,比编程工具更难的是编程的思维,比做产品更难的是产品的梦想。本文主要从5个方面,详细阐述AI产品运营必知的软硬件技术。

一、AI产品运营对基础关系的安排

1. 智能软硬件与软件和硬件

在AI产品里没有纯粹单独的软件和硬件,尤其是产品经理更应该系统来看,把软件和硬件看成是AI赋能的智能软硬件。

例如:单片机一般意义上被看做硬件,但是我们以一种单片机Arduino来看,Arduino板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器,而程序本身又是软件部分。其他AI产品部件也类似像STM32,瑞芯微3288等等。

单片机只是举例,现在这么大的数据量单片机是处理不了的,AI也不只是跑在单片机上,X86,服务端也有。

AI里软件相当于人的大脑,硬件相当于人的身体!所以离开软件硬件没有灵魂,离开硬件软件没有肉身!当下AI硬件主要被用来采集数据和作为算力!

2. 算法和数据

有人说算法重要,因为它体现了技术水平的高低,驾驭数学知识的能力;有人说数据重要没有数据算法如何实现效果,实际上LineLian和工程院院士杨善林的学生讨论后发现,算法和数据是鱼和水的关系。AI时代里算法跟传统算法的区别在于AI的算法是对人脑的模拟,是一种智能。

AI是在大量的样本数据基础上,通过神经网络算法训练数据,建立了输入数据和输出数据之间的映射关系,其最直接的应用是在分类识别方面。例如:训练样本的输入是语音数据,训练后的神经网络实现的功能就是语音识别,如果训练样本输入是人脸图像数据,训练后实现的功能就是人脸识别。

AI算法使得解决问题的步骤智能,数据使得算法得到训练从而实现算法所构建的商业模式!

3. 服务端和应用端

服务端和应用端是相对的。

开发应程序调操作系统的API, 操作系统的API有(创建线程、 读写文件【读、写、偏移到指定地址】、 网络通信、 图形渲染),那么操作系统就是应用程序的服务端。

而写一个常规的小程序或者APP,前端用户界面上需要的数据就是分别通过WEB程序调用浏览器功能接口然后OS向后台服务端发请求传数据。

另外web程序员,和底层嵌入式程序员理解的服务端和应用端还有差别,这里产品经理明了这种关系即可。服务端即底层就是功能的实现者, 应用端上层就是功能的使用者,这一关系利于产品开发过程中需求时间安排规划。

AI产品经理明了基础关系,能更好的协调资源,补充Team短板,提升产品生命期效率!

二、站在硬件肩旁上赋能硬件

智能软硬件是指通过将硬件和软件相结合,对设备进行智能化创造或者改造。而智能软硬件移动应用端则是软件,通过应用连接智能硬件,操作简单、开发简便,各式应用层出不穷,也是企业获取用户的重要入口。例如:新零售的店铺,智能贩卖机等!

创造和改造对象可能是电子设备,例如:手表、电视和其他电器;也可能是以前没有电子化的设备,例如:门锁、茶杯、汽车甚至房子。

智能软硬件已经从可穿戴设备延伸到智能电视、智能家居、智能汽车、医疗健康、智能玩具、机器人等领域。比较典型的智能软硬件包括Google Glass、三星Gear、FitBit、麦开水杯、咕咚手环、Tesla、无屏电视等。

1. 智能软硬件的特征

信息的获取和交互智能软硬结合

2. 智能硬件的组成

(1)传感器

传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

例如:检测距离的声波传感器,寻找轨迹的红外传感器,通信的蓝牙、NB-IoT传感器等等!

(2)控制器

控制器是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值,来控制电动机的启动、调速、制动和反向的主令装置。

由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。例如:一般功能的叫MCU单片机,复合功能的叫操作系统OS!

首先,控制器在智能硬件中一般叫做芯片,AI与CPU比较在架构和功能特点上有着非常大的区别。

传统的CPU运行的所有的软件是由程序员编写,完成的固化的功能操作,其计算过程主要体现在执行指令这个环节。但与传统的计算模式不同,人工智能要模仿的是人脑的神经网络,从最基本的单元上模拟了人类大脑的运行机制。它不需要人为的提取所需解决问题的特征,或者总结规律来进行编程。

AI一般包含机器学习和深度学习,但不管是机器学习还是深度学习都需要构建算法和模式,以实现对数据样本的反复运算和训练,降低对人工理解功能原理的要求。

因此,AI芯片需要具备高性能的并行计算能力,同时要能支持当前的各种人工神经网络算法。传统CPU由于计算能力弱,支撑深度学习的海量数据并行运算,且串行的内部结构设计架构为的是以软件编程的方式实现设定的功能,并不适合应用于人工神经网络算法的自主迭代运算。

传统CPU架构往往需要数百甚至上千条指令才能完成一个神经元的处理,在AI芯片上可能只需要一条指令就能完成。

其次,解读主流的人工智能芯片。

AI的高级阶段是深度学习,而对于深度学习过程则可分为:训练和推断两个环节。

训练环节通常需要通过大量的数据输入或采取增强学习等非监督学习方法,训练出一个复杂的深度神经网络模型。训练过程由于涉及海量的训练数据和复杂的深度神经网络结构,需要的计算规模非常庞大,通常需要GPU集群训练几天甚至数周的时间,在训练环节GPU目前暂时扮演着难以轻易替代的角色。

推断环节指利用训练好的模型,使用新的数据去“推断”出各种结论,如视频监控设备通过后台的深度神经网络模型,判断一张抓拍到的人脸是否属于黑名单。虽然推断环节的计算量相比训练环节少,但仍然涉及大量的矩阵运算。

在推断环节,除了使用CPU或GPU进行运算外,FPGA以及ASIC均能发挥重大作用。目前,主流的人工智能芯片基本都是以GPU、FPGA、ASIC以及类脑芯片为主。

FPGA:

即专用集成电路,一种集成大量基本门电路及存储器的芯片,可通过烧入FPGA配置文件来来定义这些门电路及存储器间的连线,从而实现特定的功能。而且烧入的内容是可配置的,通过配置特定的文件可将FPGA转变为不同的处理器,就如一块可重复刷写的白板一样。

FPGA有低延迟的特点,非常适合在推断环节支撑海量的用户实时计算请求,如语音识别如LineLian2017年打造的裸眼3D试衣镜所采用的芯片。

由于FPGA适合用于低延迟的流式计算密集型任务处理,意味着FPGA芯片做面向与海量用户高并发的云端推断,相比GPU具备更低计算延迟的优势,能够提供更佳的消费者体验。在这个领域,主流的厂商包括Intel、亚马逊、百度、微软和阿里云。

ASIC:

即专用集成电路,不可配置的高度定制专用芯片。特点是需要大量的研发投入,如果不能保证出货量其单颗成本难以下降,而且芯片的功能一旦流片后则无更改余地,若市场深度学习方向一旦改变,ASIC前期投入将无法回收,意味着ASIC具有较大的市场风险。但ASIC作为专用芯片性能高于FPGA,如能实现高出货量,其单颗成本可做到远低于FPGA。

谷歌推出的TPU就是一款针对深度学习加速的ASIC芯片,而且TPU被安装到AlphaGo系统中。但谷歌推出的第一代TPU仅能用于推断,不可用于训练模型,但随着TPU2.0的发布,新一代TPU除了可以支持推断以外,还能高效支持训练环节的深度网络加速。

根据谷歌披露的测试数据,谷歌在自身的深度学习翻译模型的实践中,如果在32块顶级GPU上并行训练,需要一整天的训练时间,而在TPU2.0上,八分之一个TPUPod(TPU集群,每64个TPU组成一个Pod)就能在6个小时内完成同样的训练任务。

GPU:

即图形处理器。最初是用在个人电脑、工作站、游戏机和一些移动设备上运行绘图运算工作的微处理器,可以快速地处理图像上的每一个像素点。后来科学家发现,其海量数据并行运算的能力与深度学习需求不谋而合,因此,被最先引入深度学习。

GPU之所以会被选为超算的硬件,是因为目前要求最高的计算问题正好非常适合并行执行。一个主要的例子就是深度学习,这是人工智能(AI)最先进的领域。

深度学习以神经网络为基础,神经网络是巨大的网状结构,其中的节点连接非常复杂。训练一个神经网络学习,很像我们大脑在学习时,建立和增强神经元之间的联系。

从计算的角度说,这个学习过程可以是并行的,因此它可以用GPU硬件来加速。这种机器学习需要的例子数量很多,同样也可以用并行计算来加速,在GPU上进行的神经网络训练能比CPU系统快许多倍。

目前,全球70%的GPU芯片市场都被NVIDIA占据,包括谷歌、微软、亚马逊等巨头也通过购买NVIDIA的GPU产品扩大自己数据中心的AI计算能力。

3. 智能硬件生产流程

智能软硬件的开发流程介绍

(1)需求调研及分析

凡是开发产品类的,都需要进行完成的市场调研,智能硬件也是一样,通过面向群体来收集有用的价值,从而对产品开发的导向及功能要求有明确的方向。

(2)产品原型设计

对于该产品的硬件、原件、结构进行开发,完成后进行联调测试,如果中途出现问题,需要重新设计,若通过进行组装及测试。

(3)试产阶段

小批量的进行产品试产,进行产品认证。

(4)产品运营硬件市场化量产阶段

一般情况下,需要等到一些认证做完,接到正式订单才会开始大规模生产。

三、站在软件肩旁上赋能软件

上文第二节里讲站在硬件的肩旁上赋能硬件里,硬件本身亦不是纯硬件,其中有软件部分且是必不可少的部分。

软件包含系统软件和应用软件,系统软件是软件的软件,是软件运行的平台,应用软件是为了完成特定产品业务运营而编写的软件。

常用的系统软件有操作系统(DOS、WINDOWS、UNIX、OS/2)、数据库管理系统(FoxPro、DB-2、Access、SQL-server)、编译软件(VB、C++、JAVA)。应用软件有文字处理软件(WORD、WPS)、信息管理软件、辅助设计软件(CAD)、实时控制软件(CAM)。再例如:APP、小程序等属于应用软件,Android/IOS等属于系统软件。

软件流程一般如下图:

AI需要的智能软硬件流程:

四、以智能家居的智能软硬件产品实战为例

本节以智能家居整体结构设计、芯片选型、模块设计实战经验为例讲一遍智能软硬件产品的打造流程。

先看下图为笔者操盘的智能家居整体结构图:

以下为整体结构图解析:

Android手机终端在连接的4G或WIFI情况下通,过向服务器发出 HTTP 请求完成对信息的查询和任务的设定。

云服务器根据用户需求提供必要的数据,并将对应的任务更新至数据库。嵌入式智能设备通过WIFI模块AT与服务器,进行Socket通信,服务器端使用基于JavaNIO的框架实现 Socket连接。

Android手机终端和智能设备通过不同的服务器进行通信 ,Android手机终端采用http 协议与服务器进行通信,服务器提供了用于通信的RESTful API,嵌入式智能设备基于 Socket与服务器连通。两个服务器部署在同一台机器上,通过MYSQL数据库做中间桥接,实现数据的共享。

再看下图为具体模块结构图:

上图中MCU负责整个模块的控制;WIFI模块实现模块的无线连接,并集成协议TCP/Ip协议,负责同服务器交换数据;开关控制使用继电器实现,能够实现弱电对强电的控制;湿度、温度、亮度模块根据不同模块的功能进行选装,从而实现对不同量的测量。

限位检测用于检测电机运行的位置状态,从而实现对宠物喂食中机械的控制,实现定量的喂食;RTC时钟为系统的运行提供时间基准;FRAM保存配置数据,即使在掉电后还能够执行之前设定的任务;基本的用户界面提供了现场的控制途径,使用户能够对模块进行直接的操作;供电使用AC/DC电源直接由220V供电或者使用DC进行供电,可以根据外部公开进行选择。

其次芯片选型。

选用M451LG6AE作为主控芯片M451LG6AE为 32位单片机,基于M4内核,具有足够的RAM和 Flash能够满足运行程序的要求。其具有多个串口,支持硬件的 SPI 及 I2C,能够方便实现的通信,具有 AD能够实现一些状态量的测量。

使用 DTH11进行温湿度的测量,其集成了温度及湿度检测功能,接口为单线制串口。节约 IO,使用 DS18B20进行范围较大的温度测量,其测温范围较广,具有密封的封装,能够测量液体温度,能多个并联。对于土壤湿度的测量,使用电阻式湿度传感器进行测量。

限位检测主要用于检测物体是否移动到了指定位置,或者在喂食装置中电机旋转的圈数(决定喂食的量),只需要输出开关量,因此使用光电门进行检测,使用非接触测量能够有效地延长传感器的使用时间,同时能够提供足够的精度。

为了实现高精度的计时,从而减小离线时出现的定时误差,使用外置的RTC DS3231 作为计时基准。DS3231 内置了带温补的晶振,能够实现较高精度的计时,满足运用的需求。

选择擦写次数多和读取速度块的FRAM FM24V系列,来进行设置数据的存储%使掉电复位后,仍然能够进行中断的任务。

使用 HLK-PM01 作为 AC/DC芯片,HLK-PM01 用于实现220VAC到 5VDC的转换,能够提供 3W的功率,足够系统的使用。使用 HLK_M30模块作为WIFI 模块,其体积很小,功耗较低 ,支持TCP Server/TCP Client /UDP Server/UDP Client工作方式,能够方便地实现互联网连接,串行接口能够方便地与主控器连接。

再则软件设计:

整体软件功能模块如下图:

其中1: 软件部分与硬件之间交互通信模块, APP通过HTTP 协议与服务器进行通信 ,采用 OkHttp 进行网络请求,请求的方式以 Post为主。

Android系统提供了两种 HTTP 交互的方式HTTPURL-CONNECTION和 APACHE HTTP CLIENT,虽然两者都支持 HTTPS流的上传和下载,配置超时IPV6和连接池,已足够满足各种HTTP请求的需求,但原生的HTTP 接口存在着 API 数量过多,扩展困难等不足。

因此产生了许多出色的网络通信库来替代原生的 HTTPURLConnection,其中OkHttp是最出色的一个。

使用 OkHttp 库进行更高效 HTTP请求可以让应用运行更快、更节省流量,因此,本项目中使用 OkHttp库依赖开发。

APP与 服务器通信时采用 JSON格式进行数据传输 ,JSON 作为一种轻量级的数据交换格式,易于阅读和编写,并且多种编程语言均提供了对 JSON 格式数据解析的支持,易于机器解析和生成。

并且相比XML格式,JSON数据量更小,具有较高的有效数据率,有助于节省流量,提升网络传输速率。APP采用 Android 自带的 JSONObject 类进行 JSON数据的解析。

其中2: 登录模块,由于智能家居控制系统是一个面向多种需求多个用户的控制系统,需要建立用户系统,使不同的用户可以有序地管理自己的设备。

APP在启动时会首先检查本地是否存有用户的 token,如果不存在,跳转到登录界面,密码采用 MD5进行加密。用户登录成功后, 将服务器发来的 token通过 SharedPreferences 保存在本地,以后每次网络请求通过这个token进行用户验证,而不需要重新进行登录。

其中3: 设备模块设备列表中选择一个设备进入设备控制页面,在设备控制页面可以进行查看设备信息,查看历史记录,对设备进行控制等操作。

进行设备控制时,智能照明控制开、关两种状态,智能浇水对浇水量进行控制,智能喂食对喂食量进行控制,每种设备的控制均提供手动和定时两种工作方式。 在启动定时任务时,可以设置每周某几天在某个时间重复执行设备控制的任务。

其中4: 场景页面中可以添加的任务分为两种类型:

一种是对设备的控制任务,包含控制照明设备的开关,浇水设备的浇水量、喂食设备的喂食量等。另一种是延时任务,用于设定不同设备控制任务之间的延时间隔,场景可以设置为手动或定时启动两种方式。为了减少控制的复杂性,场景中的单项任务不能进行定时的设置,但可以通过设置场景整体的定时任务来实现场景中每个任务的定时执行。

希望通过以上智能软硬件产品实战,来传达一套系统的智能软硬件产品方法论!

五、Hold住产品靠本领,引领智能软硬件市场靠人性!

同样是语音识别猎豹做出来翻译棒,而天猫做出阿里智能音箱。同样是图像识别,用在机场可以协助安检通过,波士顿动力可以给机器狗避障!

智能软硬件产品运营是生意人,互联网产品运营是设计师。

而笔者爸爸说:

“10年难培养一个生意人,1年也许就能培养一个擅长用工具的设计师和程序员”。

比算法更难得是算法的思想,比编程工具更难的是编程的思维,比做产品更难的是产品的梦想!

运营好和卖好产品,并用户口口香传,与实现产品同样重要。没有指令机器不知运转,而没有机器指令又命谁运转?智能软硬件是产品运营的未来!

#专栏作家#

连诗路,公众号:LineLian。人人都是产品经理专栏作家,《产品进化论:AI+时代产品经理的思维方法》一书作者,前阿里产品专家,希望与创业者多多交流。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议

【IoT开发】机智云平台+STM32的植物浇水系统的设计与实现

摘要:由于城市居民工作忙,生活节奏快,人们经常忘记给植物浇水,为此设计一款基于STM32的植物浇水系统,主要由STM32单片机、土壤湿度传感器、温湿度传感器、Wi-Fi模块、水泵系统、继电器以及OLED液晶显示屏等构成,实现手动或自动浇水和远程监控。当土壤湿度传感器检测到土壤中的湿度较低时,自动启动浇水系统浇水,直到土壤湿度达标。同时,用户可以通过手机App实时查看土壤湿度数据与空气温湿度数据、设置浇水模式等。该系统硬件电路成本低,运行稳定,实现了智能浇水。

0引言

随着科学技术的进步和人民生活质量的提高,越来越多的居民在自家阳台种植花卉植物,以改善家中的空气质量并陶冶情操。但由于生活节奏较快,人们常常忘记或者无法及时给花卉浇水而导致花卉枯萎[1-3]。研究表明,花卉生长过程中枯萎有百分之八十是由于浇水不当引起的,浇水不宜过多也不能过少[4],因此如何给花卉浇水是一个不可忽视的研究领域。但人们不一定都十分了解花卉种植,很多时候无法从花卉和土壤的表面来判断是否需要给花卉浇水,因而自动浇花设备是一个不错的选择。

市场上已有的自动浇花设备大多不适合家用,其价格昂贵、性能低,虽然采用了定时浇水方案,但并没有考虑当下花卉的生长环境和状况,可能会产生浇水过多或者过少而导致花卉枯萎的情况[5]。为了解决以上问题,本文将物联网技术与云平台相结合,设计一款根据土壤湿度进行浇水的植物浇水系统,能够根据土壤湿度的变化自动实时浇水,同时能够实时监控土壤的湿度及环境温湿度信息,并将土壤湿度及环境温湿度信息传输到机智云物联网平台,便于用户在手机App上实时监控。

1 机智云物联网平台

在技术高速发展的今天,物联网系统开发模式已经发生了大幅度的转变。在传统物联网系统开发模式中,需要搭建一台高性能服务器,在服务器上搭建物联网后台,把相关项目以及数据部署在服务器上,通过服务器向用户提供相关服务。但是该模式存在很多问题:首先是成本问题,主要包含购买服务器、服务器的运营等费用,导致系统价格上升,难以推广;其次是安全问题,服务器要预防网络攻击、停电等各种异常问题,一旦服务器出现问题,产品可能会死机。

本文选取机智云物联网平台,其是致力于物联网、智能硬件云服务的开放平台。平台提供了从产品定义、设备端开发调试、应用开发、产品测试、运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力[6]。目前,机智云针对esp8266提供基本的MCU开发方案以及SDK开发方案,能够满足用户的实际需求,使用简单灵活。

2 系统硬件设计

系统总体设计如图1所示。由图1可知,整个系统由数据获取层、数据处理及控制层和数据显示层组成。数据获取层由土壤湿度传感器、温湿度传感器构成,其中,土壤湿度传感器能够采集土壤湿度,温湿度传感器能够采集环境温湿度数据。数据处理及控制层包括STM32单片机、继电器、水泵,其中,STM32为系统核心部分,用于数据处理,并向继电器发送控制信号,启动或停止水泵出水。

数据显示层包括OLED液晶显示屏、Wi-Fi模块、机智云物联网平台和手机App, 其中,OLED液晶显示屏用于显示STM32获取的传感器数据信息,STM32通过Wi-Fi模块向机智云物联网平台传输数据,并将数据显示在手机App上,同时借助手机App向STM32单片机发送控制信号。

图1 系统总体设计框图

2.1 土壤湿度传感器硬件电路设计

选用YL-69土壤湿度传感器检测土壤湿度,将土壤湿度转换成模拟电压信号,单片机借助内部自带的模/数转换模块将模拟信号转换成数字信号,从而获取土壤湿度数据[7]。该传感器利用土壤水分对电容值的影响来检测土壤湿度:数值越大,说明土壤越干燥;数值越小,土壤越湿润。在硬件电路连接时需要将土壤湿度传感器的AO引脚与单片机的ADC输入引脚(PA1)相连,土壤湿度传感器的GND引脚连接到单片机的GND引脚,土壤湿度传感器的VCC引脚连接到单片机的VCC引脚。

2.2 环境温湿度传感器硬件电路设计

选用DHT11温湿度传感器监测环境温湿度信息。该传感器是一款含有已校准数字信号输出的温湿度复合传感器,使用专用的数字模块采集技术和温湿度传感技术,单线型串行接口,使用时需要在数据口连接一个上拉电阻(连线长度短于20 m时用5 kΩ上拉电阻,大于20 m时根据实际情况选择合适的上拉电阻)[8-9]。上电后,温湿度传感器接收到单片机发送的相关命令,并根据接收到的不同命令反馈相关数据。在硬件电路连接时,将温湿度传感器的数据输出引脚与单片机的通信引脚(PB9引脚)进行连接。

2.3 继电器硬件电路设计

继电器被用来控制水泵。水泵启动需要较大的电压及电流,如果使用单片机直接驱动,将影响单片机工作的稳定性,因此采用弱电控制强电原理,借助继电器进行控制。继电器相当于一个开关,其中VCC表示电源正极、GND表示电源负极、IN表示信号输入脚、COM表示公共端、NC(normal close)表示常闭端、NO(normal open)表示常开端,一般情况下是常闭状态。在硬件电路连接时,继电器连接单片机的PB13引脚。

2.4 数据显示与系统通信硬件设计

2.4.1 ESP8266通信模块硬件电路设计

ESP8266是一个成本较低的无线设备,内置TCP/IP协议,可以与任何Wi-Fi网络连接,是目前比较常用的一种无线通信模块[10]。本系统中的通信模块通过串口与单片机相连,将单片机与机智云服务器连接,进行数据传输。在硬件电路连接时,将Wi-Fi模块的LRXD引脚连接单片机串口TX(PB10),UTXD引脚连接单片机串口RX(PB11),从而实现两者之间的数据通信,如图2所示。

图2 ESP8266硬件电路连接图

2.4.2 OLED液晶显示屏硬件电路设计

有机发光二极管(OLED),又称有机电激光显示。OLED具备自发光、使用温度范围广、构造简单等特点,被认为是下一代的平面显示器新兴应用技术。虽然OLED的尺寸难以大型化,但是分辨率很高。

SSD1306是0.96英寸OLED液晶屏,满足本系统需求。STM32单片机将获取到的温湿度信息显示到OLED液晶显示屏,方便用户查看。在硬件电路连接上,STM32使用IIC通信协议连接OLED液晶显示屏,分别连接单片机对应的PB6(作为IIC的SCL引脚)和PB7引脚(作为IIC的SDA引脚)。

2.5 STM32单片机程序下载电路设计

选用的STM32F103C8T6单片机是一款基于Cortex-M3内核STM32系统的32位微控制器。该单片机支持的程序下载方式包括串口下载和下载器下载。串口下载需要先更改硬件boot引脚连接方式,然后修改单片机的启动地址,即可通过串口下载程序,而下载器下载需要借助单片机的下载引脚SWD和SCLK,再使用下载器下载程序。采用串口下载方式,借助FlyMcu软件,通过串口完成程序的下载。

3 系统软件设计

3.1 主程序设计

STM32作为主控芯片,负责程序初始化、控制及数据显示。单片机首先获取传感器数据,将数据显示在液晶屏,使用通信模块连接机智云平台与手机进行通信,再根据获取的数据实施相应控制。当土壤湿度传感器检测到土壤湿度较低时,启动浇水系统,当土壤湿度达标后停止浇水系统,其中浇水系统的启动方式包括手动和自动2种。具体流程如图3所示。

图3主程序流程图

3.2 土壤湿度传感器程序设计

土壤湿度传感器的数据获取是通过单片机的ADC引脚获取传感器的电压值,然后将获取到的模拟电压进行模数转换得到土壤湿度信息。首先初始化ADC功能,然后打开相关ADC通道进行数据循环采样,流程如图4所示。

图4 土壤湿度传感器程序流程图

3.3 环境温湿度传感器程序设计

环境温湿度传感器通过单片机的IO口进行命令的发送及数据的获取。首先初始化与温湿度传感器连接的数据引脚,然后分别输出一段时间的高低电平命令,获取GPIO的电平信号并获取温湿度传感器传输的数据。程序设计流程如图5所示。

3.4 ESP8266通信模块程序设计

ESP8266通信模块通过串口与单片机进行通信,因此将该程序设计转换成单片机串口数据收发程序。首先对串口初始化,设置标志位,判断串口是否产生中断:如果产生中断,接收数据并将数据解析存储;如果没有中断,继续等待。程序设计流程如图6所示。

4 系统测试与应用

在进行系统硬件调试前,需要确保传感器和单片机电源、传感器与单片机的引脚连接正确。经过硬件焊接连接的实物图如图7所示。

图5 环境温湿度程序设计流程图

图6ESP8266通信模块的程序设计流程图

图7 基于STM32的植物浇水设计

4.1 云平台传输调试

将系统获取的数据上传至机智云物联网平台,并针对Wi-Fi模块、数据上传和命令过程下发进行调试。调试程序如图8所示。

图8 ESP8266调试程序

4.2 测试结果与分析

在自动模式下,将土壤湿度传感器放置在干燥缺水的土壤中,通过手机App可监测到环境温度值为26,环境湿度值为32,土壤湿度值为4036,此时自动启动水泵浇水,如图9所示。

图9 自动浇水调试图

5总结

以STM32F103C8T6作为主控芯片,以及使用温湿度传感器、土壤湿度传感器、继电器、水泵、Wi-Fi模块、OLED等器件,设计了一款能够实时采集土壤湿度信息,并在土壤干涸时及时浇水的智能浇水系统。该系统能够满足实时监测土壤环境的湿度,并且能定时将采集到的数据上传到机智云物联网平台,使用户能够实时了解环境状况,同时用户能够根据环境温湿度以及土壤湿度信息,决定是否远程打开水泵进行手动浇水操作。实践证明,该系统运行正常,能够直观地监测到花盆土壤信息,实现植物的科学浇水。

相关问答

我现在有一个基于51 单片机 控制的 温湿度 检测程序,怎么将温湿...

先编写51单片机的串口发送程序,在编写上位机的接收程序,用MSCOMM空间接受解决了吗我可以帮你你先要给单片机烧录相关的程序才行3条回答:【推荐答案】先编写...

空气加湿器的构造?我想利用 单片机 的原理解释空气加湿器的构...

[最佳回答]S系列小型超声波空气加湿器,共有两种加湿量可供您选择,其控制方式均为手动开关控制方式.S系列小型超声波加湿机是应用于各种低温展柜、食品展架、...

单片机 、光耦

1系统总体结构原理粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么...

你好啊,可否教我如何把温 湿度 传感器连接到电脑,我在网上看到你给别人回答了,但是我还是不懂,谢谢?

温湿度传感器是和单片机连接的,它们采集的数据都是先传给单片机,再由单片机控制传给电脑的,单片机与电脑之间的数据传输需要使用串口,然后才能进行数据传送,...

DHT11数字传感器与 单片机 怎么实现连接?

DHT11是一个温湿度传感器,根据DHT11的引脚图,将DHT11数据线DATA接到单片机的IO口,并将DHT11的电源供电3.3-5V,地线与单片机共地,NC脚悬空。然后软件部分,根...

dht11 温湿度 传感器电路原理是什么?_住范儿家装官网

暖通空调、电信基站、粮食...应用领域:暖通空调、电信基站、粮食仓储、精密机房、电子工业、粮食加工、图书档案保管、纺织工业、仓库管理。DHT11...

单片机 RD端是什么意思?

RD端指的是单片机的读数据端,用来从外部设备或传感器中读取数据。单片机可以通过RD端口接收来自外部设device数据,然后进行相应的处理和操作。通过这个端口,单...

sgp30怎么发送数据到 单片机 ?

SGP30是一种用于检测室内空气质量的传感器模块。要将SGP30传感器模块的数据发送到单片机,您可以按照以下步骤进行操作:1.连接硬件:将SGP30模块连接到单片机...

python可以 单片机 编程吗,怎么样?

以上就是python可以单片机编程吗的详细内容想了解更多Python相关,百度搜索圈T社区www.aiquanti.com,免费视频教程。纯干货板载重力传感、温湿度、加速度传感...

单片机 能用于哪些行业?

这个我有发言权,我就是做单片机嵌入式软件开发的。单片机作为电子制造设备用于数据信息流的采集、传输与控制的载体应用于各行各业中。医疗器械方面,医院的检...

猜你喜欢