STM32单片机采集数据并上云
一、实验目的及要求
利用STM32单片机连接DHT11温湿度传感器测出温湿度数据,并通过Esp8266模块把数据上传到云服务器中。
二、实验软硬件环境
1、硬件
STM32F103C8T6开发板、DHT11温湿度传感器、ESP8266
2、软件
MDK5(Keil5)、STM32CudeMx
3、接线
DHT11 STM32
data — 》 PG9
vcc — 》 5V
GND — 》 GND
三、实验过程
3.1用STM32CudeMx工具创建HAL库工程模板
(1)打开STM32CudeMX,创建工程
(2)添加相应的开发板,如 STM32F103C8T6
(3)点击【Categories】→【System Core 】→【GPIO】,对GPIO进行具体配置
(4)点击【RCC】,进行外部时钟配置
(5)点击【SYS】,添加在线调试功能(适用于Jlink,stlink)
(6)添加串口外设(选择串口模式(异步/同步/半双工)),方便调试输出至上位机
①点击USATR1(串口1);
②设置MODE为异步通信(Asynchronous);
③基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能;
④GPIO引脚设置 USART1_RX/USART_TX;
⑤NVIC Settings 一栏使能接收中断。
(7)进行STM32F103C8T6的时钟配置
(8)建立工程
①在主界面上点击【Project】→【settings】进入设置界面
②设置输出文件
③生成工程
点击GENERATE CODE生成工程。
(9)到此一个基于HAL库的工程模板就建好了,在项目的保存路径下可以看见刚刚创建的工程,其内容如下图所示。
3.2使用Keil5在HAL工程模板的基础上进行开发
(1)点击工程目录下的MDK-ARM文件夹,用keil5(MDK5)打开.uvprojx文件,如下图所示;
(2)点击option,然后进行主频配置,修改为8.0或者12.0,然后进行编译
(3)在keil5上面创建SYSTEM和HARDWAVE两个文件夹
(4)把刚刚在MDK5创建的库文件(SYSTEM文件夹和HARDWAVE文件夹)复制到工程目录下
(5)把SYSTEM文件夹和HARDWAVE文件夹里的文件添加到工程
(6)配置头文件(SYSTEM文件夹和HARDWAVE文件夹里的文件)路径
(7)编程开发
编写程序,如main.c、uart.c、uart.h等文件。
main.c
#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "dht11.h"
void SystemClock_Config(void);
int main(void)
{
u8 t=0;
u8 temperature;
u8 humidity;
int times;
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
delay_init(168);
SystemClock_Config();
DHT11_Init();
/* USER CODE