Mac 上探索 ESP32-C3 单片机 以及温湿度传感器 DHT11

262 阅读3分钟

效果

请添加图片描述


整体预览

我只是一个前端小学生,所以用的 VsCode,单片机更是萌新...

硬件部分

这是硬件部分的图片

在这里插入图片描述

这个是淘宝上十几块钱的赝品 ESP32-C3

在这里插入图片描述

这个是温湿度传感器 DHT11

在这里插入图片描述

软件部分

这是软件部分,用的 VsCode 插件 PlatformIO IDE

在这里插入图片描述

代码部分截图

在这里插入图片描述


前提

  • Mac 上比较麻烦的是驱动寻找的比 Windows 要麻烦,因为 Windows 上已经有集成很不错的方案了,所以想在 Mac 上调试的话,需要自己手动配置驱动,先让 Mac 能够认出设备,具体安装参考的第三条驱动
  • 还有就是 PlatformIO 新建项目的时候会卡很久,因为某种不可抗力的原因,所以找一个好的🪜再去新建项目吧

步骤

硬件部分

首先买一个 ESP32-C3 单片机 以及 DHT11 ,这是我的淘宝截图

在这里插入图片描述 到货之后,可以先把引脚用杜邦线连接一下,先了解一下这个板子的几个接口,具体看 参考2的链接

在这里插入图片描述 温湿度传感器上有三个引脚,我们把杜邦线插进去,然后对应连接好!

杜邦线两端连接说明
传感器 VCC ==> 开发板3.3v传感器供电的
传感器 DATA ==> 开发板GPIO01data 可以连接 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


参考

  1. ESP-IDF 编程指南:快速指南
  2. LuatOS-ESP32-C3 说明
  3. CH34X USB-to-SERIAL Mac 驱动安装手册
  4. CH34X 驱动 Github
  5. 我的 Github 代码仓库地址
  6. nodejs+esp32 小型检测温度火宅警告器