效果
整体预览
我只是一个前端小学生,所以用的 VsCode,单片机更是萌新...
硬件部分
这是硬件部分的图片
这个是淘宝上十几块钱的赝品 ESP32-C3
这个是温湿度传感器 DHT11
软件部分
这是软件部分,用的 VsCode 插件 PlatformIO IDE
代码部分截图
前提
Mac上比较麻烦的是驱动寻找的比Windows要麻烦,因为Windows上已经有集成很不错的方案了,所以想在Mac上调试的话,需要自己手动配置驱动,先让Mac能够认出设备,具体安装参考的第三条驱动- 还有就是
PlatformIO新建项目的时候会卡很久,因为某种不可抗力的原因,所以找一个好的🪜再去新建项目吧
步骤
硬件部分
首先买一个 ESP32-C3 单片机 以及 DHT11 ,这是我的淘宝截图
到货之后,可以先把引脚用杜邦线连接一下,先了解一下这个板子的几个接口,具体看 参考2的链接
温湿度传感器上有三个引脚,我们把杜邦线插进去,然后对应连接好!
| 杜邦线两端连接 | 说明 |
|---|---|
传感器 VCC ==> 开发板3.3v | 传感器供电的 |
传感器 DATA ==> 开发板GPIO01 | data 可以连接 io 口的任何一个,随后会在代码里声明好就可以拿到数据了 |
传感器 GND ==> 开发板GND | 接地 |
链接成功之后,Type-C 在连接 Mac,红灯都会亮起来~
我当时的情况是
- 单片机上的两颗灯交替闪烁
- 温湿度传感器的灯常亮
软件部分
VsCode 的插件中搜索 platform,找到这个插件然后安装,之后插件栏会多一个 外形人的图标
然后新建一个工程
然后寻找相应的板子,我这里选择的是下图所示
不要急!在点击 Finish 之前检查一下自己的🪜是否好使,也要确保插件也能走🪜,我这里的解决办法就是梯子开启
Tun 模式
引用 Libraries
在 插件中搜索 DHT11,之后选择第一个
之后选择添加到项目,然后选择项目,点击添加
等待下载,下载好之后会在项目中查看到当前的库,可以点进去看一看源码
然后编写我们的代码
编译并烧录
写好的代码要先编译,然后烧录到单片机上
编译一下
烧录代码
这里有个坑,如果你的驱动没安装好的话,这里是死活也烧录不上去的,会报错误,具体解决可以参考这篇文章:Mac 上无法烧录 ESP32C3 的问题记录:A fatal error occurred:Failed to write to target RAM
之后就可以查看日志了!
代码
#include <Arduino.h>
#include <DHT.h>
#include <DHT_U.h>
const int dataPin = 1; // dht11的data引脚
DHT dhtClass(dataPin, DHT11); // 初始化类
void setup()
{
Serial.begin(9600);
dhtClass.begin(DHT11);
}
void loop()
{
// 读取温度值
float dhtTemperature = dhtClass.readTemperature();
// 读取湿度值
float dhtHumidity = dhtClass.readHumidity();
if (isnan(dhtTemperature) || isnan(dhtHumidity))
{ // 如果读取错误
Serial.println("读取传感器失败"); // 读取失败提示
delay(1000);
return;
}
delay(10000);
Serial.print("我是温度");
Serial.print(dhtTemperature);
Serial.print(" ");
Serial.print("我是湿度");
Serial.print(dhtHumidity);
Serial.print("\n");
}
; platformio.ini
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32-c3-devkitm-1]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
board_build.flash_mode = dio
lib_deps = adafruit/DHT sensor library@^1.4.6