基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口

发布者:cwk2003最新更新时间:2023-10-19 来源: elecfans关键字:STM32F103C8T6  MCU  Blue 手机看文章 扫描二维码
随时随地手机看文章

在本教程中,我将介绍如何将DHT11湿度和温度传感器与基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口。DHT11传感器的值由STM32读取,并显示在I2C LCD显示屏上。


介绍

传感器是很小的设备,可以弥合原始模拟世界与MCU的数字世界之间的鸿沟。传感器可以非常简单,例如非常著名的LM35温度传感器,也可以是一些复杂的数学单元,例如MPU6050陀螺仪和加速度计组合传感器。


简单或复杂,传感器是许多消费,汽车,机器人和工业应用中的关键部分,如果不集成适当的传感器就无法完成某些应用。


让我们从工业应用程序扩展到日常项目和业余爱好者。气象站是一个非常普遍且受欢迎的项目,无论是物联网应用还是常规字符LCD应用。


此类气象站项目的关键组成部分是能够检测与天气相关的参数(如温度,湿度等)。DHT11湿度和温度传感器就是这些类型项目的设备。


我已经在一个名为“ Arduino上的DHT11湿度传感器”的Arduino项目中使用了DHT11传感器(第一条推文)。在该项目中,我已将DHT11传感器与Arduino接口,计算了温度和湿度值,并将其显示在16×2 LCD显示器上。我在这里也会做同样的事情,但是这次我将把DHT11湿度和温度传感器连接到STM32F103C8T6 MCU的接口上。


DHT11温湿度传感器

DHT11及其兄弟DHT22是便宜但高度可靠的湿度和温度传感器。DHT22的范围和精度略优于DHT11,但这种扩展范围和更严格的精度是有代价的。除此之外,两个传感器的外观相似,且引脚和连接性相同。因此,从现在开始,我们将专注于该项目的传感器,即DHT11。


它是一种超低成本传感器,具有电阻型湿度测量组件,NTC型温度测量组件和8位微控制器,可将两个测量组件的数据转换为数字值。


在Arduino – DHT11教程中,我谈到了传感器的工作原理以及如何解释来自串行的数据。我建议您参考该项目以获取有关此传感器的更多信息。


另外,在该项目中,我没有为DHT11湿度和温度传感器使用任何专用的库,而是尝试了自己的代码。仅作更改,我将使用Adafruit开发的DHT库。


将DHT11湿度和温度传感器与STM32F103C8T6连接

在继续进行操作之前,我必须提醒您DHT11传感器数据表中的某些内容。它表示,必须借助5KΩ电阻将DHT11传感器与微控制器(在这种情况下为STM32)之间的单条数据线拉高。

因此,在购买DHT11传感器时,请尝试购买包含所述上拉电阻器(甚至是一些通电LED)的模块。由于不需要任何其他组件,因此使DHT11湿度和温度传感器与STM32F103C8T6的连接变得更加容易。


要记住的另一件事是,我使用了I2C LCD,即基于PCF8574模块的I2C GPIO扩展器模块,具有良好的旧16×2 LCD显示屏。我已经在专用项目“将I2C LCD与STM32F103C8T6接口”中实现了相同的功能。有关更多信息,请参考该项目。

所需组件

基于STM32F103C8T6 MCU的STM32蓝色药丸板

DHT11温湿度传感器

16×2液晶显示器

PCF8574 I2C液晶模块

5KΩ电阻器(可选,如果DHT11模块上有电阻,则不需要)

连接线

USB转UART转换器(仅当通过UART编程时才需要)

电路图

下图显示了将DHT11湿度和温度传感器与基于STM32F103C8T6 MCU的STM32蓝色药丸板接口的电路图。


连接说明

首先,将DHT11 Sensor的VCC和GND引脚分别连接到+ 5V和GND。然后将传感器的数据引脚连接到STM32板的引脚PA1。

来到LCD时,将PCF8574 I2C LCD模块插入LCD的背面,并将PCF8574模块的SDA和SCL引脚分别连接到STM32板的PB7和PB6引脚。同样,将I2C LCD模块的VCC和GND引脚连接到+ 5V和GND。

编程STM32以连接DHT11

在继续之前,请确保您已经确定了I2C LCD教程中提到的PCF8574模块的从站地址。您可以将以下代码用于相同的代码。

#include

void setup()
{
Wire.begin();

Serial.begin(9600);
while (!Serial);
}

void loop()
{
byte error, address;
int I2CDevices;

Serial.println(“Scanning for I2C Devices…”);

I2CDevices = 0;
for (address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();

if (error == 0)
{
Serial.print(“I2C device found at address 0x”);
if (address < 16)
Serial.print(“0″);
Serial.print(address, HEX);
Serial.println(” !”);

I2CDevices++;
}
else if (error == 4)
{
Serial.print(“Unknown error at address 0x”);
if (address < 16)
Serial.print(“0”);
Serial.println(address, HEX);
}
}
if (I2CDevices == 0)
Serial.println(“No I2C devices found ”);
else
Serial.println(“**** ”);

delay(5000);
}

现在,未来的实际程序,首先从下载DHT库这个链接。解压缩zip文件并将其内容复制到本地Arduino安装的library文件夹中。该路径通常是“ C: Program Files(x86) Arduino libraries”。

然后,在程序中,将DHT的数据引脚定义为PA1,并将DHT传感器的类型定义为DHT11或DHT22。通过提及从机地址,列数和行数来声明具有LiquidCrystal_I2C库功能的I2C LCD。现在,您可以使用各自的“开始”功能初始化LCD和DHT11传感器。

现在,获取两个浮点值,并从传感器获取湿度和温度读数。最后,在LCD上打印这些值。

源代码

#include
#include
#include

#define DHTPIN PA1
#define DHTTYPE DHT11

LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(DHTPIN, DHTTYPE);
byte degree_symbol[8] =
{
0b00111,
0b00101,
0b00111,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};

void setup()
{

lcd.begin();
dht.begin();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(“Electronics Hub”);
lcd.setCursor(0,1);
lcd.print(“DHT11 with STM32”);
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Temp = “);
lcd.setCursor(0,1);
lcd.print(“Humid = “);
lcd.createChar(0, degree_symbol);
lcd.setCursor(12,0);
lcd.write(0);
lcd.print(“C”);
lcd.setCursor(14,1);
lcd.print(“%”);
}

void loop()
{
float hum = dht.readHumidity();
float tem = dht.readTemperature();
lcd.setCursor(7,0);
lcd.print(tem);
lcd.setCursor(8,1);
lcd.print(hum);
}


结论

此处实现了一个简单的项目,用以演示DHT11湿度和温度传感器与基于STM32F103C8T6 MCU的STM32 Blue Pill Board的接口。


关键字:STM32F103C8T6  MCU  Blue 引用地址:基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口

上一篇:STM32F103C8T6+Keil5设计带 SPI接口显示屏的录音机
下一篇:如何使用带定时器的中断

推荐阅读最新更新时间:2024-10-24 20:37

基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口
在本教程中,我将介绍如何将DHT11湿度和温度传感器与基于STM32F103C8T6 MCU的STM32 Blue Pill Board接口。DHT11传感器的值由STM32读取,并显示在I2C LCD显示屏上。 介绍 传感器是很小的设备,可以弥合原始模拟世界与MCU的数字世界之间的鸿沟。传感器可以非常简单,例如非常著名的LM35温度传感器,也可以是一些复杂的数学单元,例如MPU6050陀螺仪和加速度计组合传感器。 简单或复杂,传感器是许多消费,汽车,机器人和工业应用中的关键部分,如果不集成适当的传感器就无法完成某些应用。 让我们从工业应用程序扩展到日常项目和业余爱好者。气象站是一个非常普遍且受欢迎的项目,无论是物联网
[单片机]
怎样通过USB对STM32 Blue Pill编程
步骤1:您需要做什么: 首先,您需要电路板本身。我建议您在这里购买它们: https://www.ebay.com/itm/192674786885 您还需要一个USB到TTL编程器,您只需要将它第一次对开发板进行编程,但是对其他项目也很有用,因此您最好自己拥有一个。..可以在这里获得它: https://www.ebay.com/itm/401604236499 一些电线或跨接电缆也很有用,但我假设您手边有那些。如果没有,请即兴进行。 步骤2:Arduino IDE 在您可以开始在Arduino IDE中对蓝色药丸进行编程之前。您需要添加一些内容。不用担心,这很容易。 首先打开Arduino IDE。转到File-》
[单片机]
怎样通过USB对STM32 <font color='red'>Blue</font> <font color='red'>Pill</font>编程
STM32F103C8T6使用SPI接口驱动WS2812b灯条
之前一篇 文章 写了使用IO控制WS2812b操作原理,但是由于IO的输出比较慢,所以现在改用了硬件SPI控制WS2812b灯条 把SPI的mosi线接到ws2812b的数据线,SPI的速率可达十几Mbit/s,如此高的传输速率,我们可以使用一个(uint8_t)类型的数据代表一个码1或者码0; 也就是说,本来控制一个灯珠的数据由3个Byte(24位)变成了24Byte,每个bit转换成一个Byte; 具体看时钟如何配置的。 SPI配置: 在上一篇文章可以看到控制一个码的周期在1.25us±300ns之间,现在把时钟配成9Mbit/s,这个的话每个码的周期大概就在889ns,和LED的周期略有误差; 从规格书上可以看到码1和码0
[单片机]
<font color='red'>STM32F103C8T6</font>使用SPI<font color='red'>接口</font>驱动WS2812b灯条
苹果官网下线Beats Pill Plus音箱解密
据 9to5Mac 消息,苹果已悄然下架了 Beats Pill Plus 音箱,无论是苹果官网还是 Beats 官网都不再显示。   Beats Pill Plus 于 2015 年发布,是 Beats 2014 年被苹果以 30 亿美元收购以来,第一款以 Beats 品牌发布的音箱,零售价为 229 美元。   Beats Pill Plus 是原版 Beats Pill 的更精致版本,具有更时尚的颜色和用于充电的 Lightning 接口。   在此之后,苹果和 Beats 继续打造 Beats 的耳机系列,包括最近的 Beats Fit Pro 或 Powerbeats 等,它们都具有与苹果品牌相同的 H1 芯片和
[手机便携]
苹果官网下线Beats <font color='red'>Pill</font> Plus音箱解密
32位通用增强型Cortex-M3单片机CH32F103C8T6替代stm32f103c8t6
概述; CH32F1系列是基于32位Cortex-M3内核设计的通用微控制器。片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等。 此系列具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块,多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源。 系统框图; 产品特点; Cortex-M3内核,72MHz系统主频; 单周期乘法和硬件除法; 20KB SRAM,64KB CodeFlash; 供电范围:2.7V-5.5V,GPIO同步供电电压; 多种低功耗模式:睡眠/停止/待机; 上电/断电复位(POR/PDR); 可编程电压监
[单片机]
32位通用增强型Cortex-M3<font color='red'>单片机</font>CH32F103C8T6替代<font color='red'>stm32f103c8t6</font>
海速芯32位MCU TM32F103K7可替代STM32F103C8T6用于太阳能控制器中,无需外置AD
太阳能的使用越来越普及,太阳能控制器使用了单片机和专业软件,实现了智能控制,利用蓄电池放电率特性修正的准确放电控制。以下为TM32F103K7应用于太阳能控制器的原理框图: 如上所示,TM32F103K7是海速芯(原“十速”)的32位MCU,该32位MCU采用高性能的ARM Cortex-M3内核,频率72MHz,最高集成128Kbytes flash和20Kbytes SRAM,并提供丰富的通信接口(I2C、SPI/USART)和7个定时器,具备可靠性高、精度高、功耗低等特点。 本文提到的太阳能控制器方案中,所有控制全部采用工业级芯片,能在寒冷、高温、潮湿环境运行自如。同时使用了晶振定时控制,定时控制精确;取消了电位器调
[单片机]
海速芯32位<font color='red'>MCU</font> TM32F103K7可替代<font color='red'>STM32F103C8T6</font>用于太阳能控制器中,无需外置AD
STM32F103C8T6单片机程序烧录教程
本次使用STM32F103C8T6型号单片机进行程序烧录演示,采用ST-Link方式烧录程序,程序烧录前确保已经安装好Keil MDK软件和ST-Link驱动。如没请在公众号菜单栏的软件获取Keil MDK软件和ST-Link驱动(在Keil MDK软件安装的最后部分有驱动安装教程)。PS:下图烧录器示意图的引脚与烧录器实物的引脚位置是不一样的,图片仅供参考。 1、硬件连接:其中烧录器的SWCLK接系统板的DCLK,烧录器的SWDIO接系统板的DIO,烧录器的GND连接系统板的GND,烧录器的3.3V接系统板的3.3。 2、打开程序。 3、在Keil MDK软件中设置ST-Link烧录程序方式:点击”Option
[单片机]
<font color='red'>STM32F103C8T6</font><font color='red'>单片机</font>程序烧录教程
基于STM32F103C8T6单片机的计步器设计
一.系统设计 由 STM32F103C8T6 单片机 最小系统 + AD XL345 + L CD1602 显示屏。通过ADXL345 检测 震动和移动并完成计数。累加的步数会传输到LCD1602上进行显示,可以直观的观察自己的步数。 图1 系统框图 二. 硬件 设计 系统内的主要电路有单片机最小系统电路,步数采集电路、显示电路,系统的内的电路并不复杂,只实现的步数的采集累加以及显示的功能。对于计步器而言,本系统的步数采集能力较为不错,有较高的灵敏度。 图2 硬件电路 三.软件设计 系统的软件逻辑清晰,首先先进行一次系统初始化,此时就开始进行计步检测。当完成计步后会将采集到的步数 信息 在显示屏上进行显示,判断是否完成
[单片机]
基于<font color='red'>STM32F103C8T6</font><font color='red'>单片机</font>的计步器设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved