自学esb32烧录进军物联网和嵌入式

简介: 自学esb32烧录进军物联网和嵌入式

见字如面,这里是AKA  AIGC创意人竹相左边。

学习使用了三年的AI工具,现在最大的自信就是业余时间可以学习任何自己感兴趣的事,感觉手搓火箭也不是梦。

今天开个新坑,也是逐步探索想要进入的新世界。物联网(IoT)和嵌入式项目。 image.gif 编辑

1. 了解ESP32和烧录的基础

ESP32是一个低成本、低功耗的微控制器,支持Wi-Fi和蓝牙,非常适合DIY项目。烧录(flashing)是指将程序(固件)写入ESP32的闪存中,让它执行你想要的功能。

你需要的硬件:

  • ESP32开发板(比如ESP32-DevKitC、NodeMCU ESP32等,建议买带USB接口的,方便烧录)。
  • USB数据线(确保是能传输数据的,不是只充电的)。
  • 一台电脑(你已经有VSCode,很好!)。
  • (可选)面包板、跳线、LED等,用于测试。

你已经有的优势:

  • 你会用VSCode克隆GitHub项目,说明你熟悉基本操作,这对后续开发很关键。
  • 有3D打印机,可以打印外壳或配件,未来项目会更酷!

2. 安装开发环境(基于VSCode)

既然你已经熟悉VSCode,我们可以用它来搭建ESP32开发环境。以下是步骤:

步骤1:安装VSCode(已完成)

你已经会用VSCode,跳过这一步。

步骤2:选择开发框架

ESP32开发有两种主流方式:

  • Arduino:简单易上手,适合初学者。
  • ESP-IDF:官方框架,功能强大但稍复杂。

鉴于你是初学者且平面设计师,我建议先从Arduino开始,之后可以过渡到ESP-IDF。

步骤3:安装Arduino IDE支持

  1. 下载Arduino IDE(可选):
    Arduino官网下载最新版,安装后可以直接烧录程序。但我们主要用VSCode,所以这步可选。
  2. 在VSCode中安装Arduino扩展:
  • 打开VSCode,点击左侧“扩展”(Extensions,快捷键Ctrl+Shift+X)。
  • 搜索“Arduino”,安装“Arduino”扩展(作者:Microsoft)。
  1. 添加ESP32支持:
  • 打开VSCode,按F1,输入“Arduino: Board Manager”。
  • 在弹出的窗口中,搜索“esp32”,安装“ESP32 by Espressif Systems”。
  • 安装完成后,重启VSCode。

步骤4:验证环境

  • 连接ESP32到电脑(用USB线)。
  • 在VSCode中按F1,输入“Arduino: Select Board”,选择你的ESP32型号(比如“ESP32 Dev Module”)。
  • 再按F1,输入“Arduino: Select Serial Port”,选择出现的COM端口(Windows)或/dev/ttyUSB(Linux/Mac)。

3. 烧录第一个程序

我们从一个简单的“点亮LED”程序开始。

示例代码

  1. 在VSCode中新建一个文件,命名为blink.ino。
  2. 粘贴以下代码:
#define LED_PIN 2  // ESP32默认内置LED通常在GPIO 2
void setup() {
  pinMode(LED_PIN, OUTPUT);  // 设置引脚为输出模式
}
void loop() {
  digitalWrite(LED_PIN, HIGH);  // 点亮LED
  delay(1000);                 // 等待1秒
  digitalWrite(LED_PIN, LOW);   // 熄灭LED
  delay(1000);                 // 等待1秒
}

image.gif

烧录步骤

  1. 确保ESP32已连接电脑。
  2. 在VSCode中按F1,输入“Arduino: Upload”并回车。
  3. 等待编译和烧录完成(可能需要几秒到一分钟)。
  4. 如果成功,ESP32上的内置LED会每秒闪烁一次!

4. 结合你的技能:从GitHub克隆项目

你提到会克隆GitHub项目,这很棒!ESP32社区有很多开源项目可以参考。以下是一个推荐:

  • 项目推荐:搜索“ESP32 LED Control”之类关键词,找一个简单的LED控制项目。
  • 操作步骤:
  1. 在GitHub找到项目,点击“Code”按钮,复制URL。
  2. 在VSCode中按Ctrl+Shift+P,输入“Git: Clone”,粘贴URL,选择保存路径。
  3. 打开项目文件夹,按上述方法烧录。

5. 用3D打印机扩展项目

有了3D打印机,你可以为ESP32项目设计外壳或配件。比如:

  • 打印一个ESP32开发板外壳(Thingiverse上有很多免费STL文件)。
  • 设计一个带LED灯的装饰品,结合ESP32控制灯光效果。

建议:用Tinkercad(在线3D设计工具,适合设计师)设计简单的外壳,然后打印。


6. 学习资源推荐

---

image.gif 编辑

1. 烧录好的代码是否可以重新修改?

是的,烧录到ESP32(或其他微控制器)的代码是可以重新修改的,前提是你有以下条件:

  • 硬件支持重新烧录:你需要能再次访问设备的烧录接口(通常是通过USB或串口引脚,如GPIO0、TX、RX等)。
  • 源代码或固件:你需要原始代码,或者能够反编译/获取当前固件的控制逻辑。
  • 工具准备好:使用像Arduino IDE、VSCode with PlatformIO、或ESP-IDF这样的工具来重新编译和烧录代码。

如果你的小米香氛机确实是用ESP32驱动的(后面会讨论如何确认),理论上可以通过重新烧录固件来改变喷雾行为,比如从“每10分钟喷3秒”改为“一直喷”。 image.gif 编辑

 

3. 如何修改为“一直喷”?

“每10分钟喷3秒”是固件中预设的逻辑,通常由代码中的定时器(delay()或millis())和继电器/电机控制实现。要改成“一直喷”,需要调整代码逻辑。以下是大致步骤:

步骤1:获取或推测当前固件逻辑

假设原始代码类似这样(基于Arduino框架):

#define SPRAY_PIN 2  // 假设喷雾器连接到GPIO 2
void setup() {
  pinMode(SPRAY_PIN, OUTPUT);
}
void loop() {
  digitalWrite(SPRAY_PIN, HIGH);  // 喷雾开启
  delay(3000);                    // 喷3秒
  digitalWrite(SPRAY_PIN, LOW);   // 喷雾关闭
  delay(600000);                  // 等待10分钟(600秒)
}

image.gif

这是“每10分钟喷3秒”的简化实现。

步骤2:修改为“一直喷”

将代码改为:

#define SPRAY_PIN 2
void setup() {
  pinMode(SPRAY_PIN, OUTPUT);
  digitalWrite(SPRAY_PIN, HIGH);  // 一直开启喷雾
}
void loop() {
  // 空循环,不关闭喷雾
}

image.gif

这样喷雾器会持续工作,直到你断电或手动关闭。

步骤3:烧录新固件

  1. 连接硬件:
  • 用USB转串口模块(比如CH340或CP2102)连接ESP32的TX、RX、GND引脚。
  • 进入烧录模式:烧录时需将GPIO0接地(按住BOOT键或短接GPIO0和GND)。
  1. 编译和上传:
  • 在VSCode中安装PlatformIO或Arduino扩展。
  • 选择ESP32开发板型号(比如“ESP32 Dev Module”)。
  • 上传修改后的代码。
  1. 测试:烧录成功后,香氛机应该会一直喷雾。

4. 注意事项和风险

  • 硬件限制:持续喷雾可能导致香氛机过热、电机损坏或香液耗尽。检查设备是否支持长时间运行(比如是否有过热保护)。
  • 固件加密:小米的部分智能设备固件可能加密或锁定,无法直接修改。如果是这样,你需要寻找开源替代固件(如ESPHome或Tasmota)。
  • 保修问题:拆机或刷机可能会影响保修。
  • 不确定芯片:如果不是ESP32(比如用其他MCU如STM32),修改会更复杂,需要具体芯片的开发工具。
相关文章
|
11月前
|
传感器 移动开发 监控
嵌入式物联网设计水稻田智能灌溉系统实现
嵌入式物联网设计水稻田智能灌溉系统实现
501 0
|
11月前
|
传感器 数据采集 数据可视化
探究物联网技术的核心知识点:传感器、嵌入式系统和数据分析
探究物联网技术的核心知识点:传感器、嵌入式系统和数据分析
268 0
|
存储 人工智能 前端开发
从“嵌入式”到“物联网”的四大转变
经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。
从“嵌入式”到“物联网”的四大转变
|
消息中间件 存储 人工智能
从“嵌入式”到“物联网”有哪些变化?
经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引了原来嵌入式领域的同学,同时吸引了非常多非嵌入式领域的同学进入物联网领域。
从“嵌入式”到“物联网”有哪些变化?
以.NET MF为依托,打造物联网时代轻量级嵌入式组态系统
以.NET MF为依托,打造物联网时代轻量级嵌入式组态系统
3232 0

相关产品

  • 物联网平台
  • 下一篇
    oss创建bucket