接通电源,系统会对各个模块进行初始化,然后连接指定的WIFI连接华为云物联网平台,连接之后,系
统正式开始工作。
在主循环中,程序以2秒钟的时间间隔检测一次环境温度、土壤湿度,将数据上传到华为云物联网平台;
同时将采集的温度与湿度分别显示在LCD显示屏上,接下来单片机会判断,如果湿度是否低于设置的阀
值,就启动浇水,若不需浇水则进行下一次循环检测。程序正常运行过程中,如果手机APP发送了手动
浇水指令,STM32单片机会进入到串口中断里接收数据,判断指令功能,实现对应的操作。
1.5 开发工具的选择
编程语言选择C语言,C语言执行效率高,大学里主学的C语言,C语言编译出来的可执行文件最接近于机
器码,汇编语言执行效率最高,但是汇编的移植性比较差,目前在一些操作系统内核里还有一些低配的
单片机使用的较多,平常的单片机编程还是以C语言为主。C语言的执行效率仅次于汇编,语法理解简
单、代码通用性强,也支持跨平台,在嵌入式底层、单片机编程里用的非常多,当前的设计就是采用C
语言开发。
开发工具选择Keil,keil是一家世界领先的嵌入式微控制器软件开发商,在2015年,keil被ARM公司收
购。因为当前芯片选择的是STM32F103系列,STMF103是属于ARM公司的芯片构架、Cortex-M3内核
系列的芯片,所以使用Kile来开发STM32是有先天优势的,而keil在各大高校使用的也非常多,很多教科
书里都是以keil来教学,开发51单片机、STM32单片机等等。目前作为MCU芯片开发的软件也不只是
keil一家独大,IAR在MCU微处理器开发领域里也使用的非常多,IAR扩展性更强,也支持STM32开发,
也支持其他芯片,比如:CC2530,51单片机的开发。从软件的使用上来讲,IAR比keil更加简洁,功能相
对少一些。如果之前使用过keil,而且使用频率较多,已经习惯再使用IAR是有点不适应界面的。
二、硬件选型
2.1 STM32开发板
链接:https://detail.tmall.com/item.htm?spm=a1z0d.6639537.1997196601.4.69157484Ospeps&id
=540109077095&skuId=4456080806080
主控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彩屏,可以显示当前传感器数据以及一些运
行状态信息。