站内搜索
发作品签到
专业版

Arduino 智能家居控制终端

工程标签

1.8k
0
0
0

简介

主控为支持 Arduino IDE 的 ESP32-WROOM-32D-N4 模组,外围器件可根据需求使用排针进行扩展,如传感器、指示灯、继电器、扬声器、麦克风、OLED显示屏、触摸按键等。

简介:主控为支持 Arduino IDE 的 ESP32-WROOM-32D-N4 模组,外围器件可根据需求使用排针进行扩展,如传感器、指示灯、继电器、扬声器、麦克风、OLED显示屏、触摸按键等。
星火计划2025
复刻成本:50

开源协议

GPL 3.0

创建时间:2025-01-17 12:24:55更新时间:2026-05-04 21:08:21

描述

硬件

主控为支持 Arduino IDE 的 ESP32-WROOM-32D-N4 模组,可根据实际情况进行修改和替换;

外围器件可根据需求使用排针进行扩展,如高精度温湿度传感器(SHT40)、指示灯、继电器、扬声器、麦克风、OLED显示屏或墨水屏、触摸按键等。

 

项目功能

智能联网,远程获取温湿度数据,控制室内物联网产品,如灯光、用电器开关等。

通过MQTT协议连接Home Assistant实现智能手机随时监测数据和家用电器的远程控制;

 

应用场景

室内环境、工业环境、实验室等。

 

这里举例展示了实现蓝牙网关的项目设计。

 

ESPHome 蓝牙智能网关

ESPHome 固件烧录,实现 HomeAssistant 连接。

电脑连接开发板,打开网页 https://esphome.io/projects/?type=bluetooth

点击 Connect 通过串口连接开发板并自动安装 ESPHome 固件

运行 HomeAssistant (HA) 智能家居平台

通过路由器 192.168.1.1 查询 ip 地址,并添加 ESP32 设备至 HA 平台。

自动扫描获得小米蓝牙温湿度计2设备列表,登录小米ID账号即可添加至 HA 设备列表

如此可实现远程 HA 访问监测传感器数据。

实物展示

3D 外壳

3D 外壳文件见附件。

 

MicroPython

上传 MicroPython 固件并实现相关工程测试。

CLI 命令行烧录

  • 微软应用商店下载 Windows Terminal 软件并运行;

  • 终端执行如下指令,安装并更新 esptool,清空原有固件;

 pip install --upgrade esptool
 esptool erase-flash
  • esptool 自动检测串口, 读取基于 Espressif 的设备固件信息;

  • 下载 ESP32-WROOM MicroPython 固件;

  • 终端执行如下指令,将 bin 固件上传至开发板;

 esptool --baud 460800 write_flash 0x1000 D:\ESP32_GENERIC-20260406-v1.28.0.bin
  • 程序自动检测目标设备端口并上传二进制固件;

图形化工具烧录

  • 下载 esp flash download tool 烧录工具;

  • 运行软件,设备选择 ESP32,工作模式选择 Develop,下载接口选择 UART;

  • 固件选择下载好的 bin 固件,起始地址 0x1000

  • SPI 频率 40MHz,勾选 DoNotChgBin

  • 下方 COM 端口选择开发板对应的串口号,波特率 921600 即可;

  • 点击 ERASE 按钮,清空固件;

  • 点击 START 按钮,烧录 MicroPython 固件;

详见:下载指导 - ESP32 - WROOM 文档 .

固件测试

  • 打开Thonny IDE 软件,连接开发板串口对应端口;

  • 可获得 MicroPython 固件版本信息;

  • 执行 help('modules') 可获取已安装的软件包;

工程测试

包括 WiFi 连接、DS18B20 传感器读取等。

WiFi 连接

使用 Type-C 数据线连接开发板和电脑;

代码

打开 Thonny IDE 软件,新建工程并添加如下代码

 import network,time
 def connect():
     wlan = network.WLAN(network.STA_IF)
     wlan.active(True)
     if not wlan.isconnected():
         print('ESP32 is connecting internet',end="")
         wlan.connect('SSID', 'Password')
         while not wlan.isconnected():
             print(".",end="")
             time.sleep(1)
     print('\nWiFi information: ', wlan.ifconfig())  
 connect()
 

保存代码。

效果

运行程序,终端打印测试信息;

DS18B20

使用 DS18B20 模块,将 Data 数据引脚连接至开发板 4 引脚。

详见:DS18B20模块 .

代码

打开 Thonny IDE 软件,新建工程并添加如下代码

 import onewire, ds18x20
 from machine import Pin
 import time
 
 # ===================== 配置 =====================
 # DS18B20 数据引脚:GPIO4
 DS_PIN = Pin(4, Pin.IN)
 
 # 初始化单总线
 ow = onewire.OneWire(DS_PIN)
 # 初始化 DS18B20 传感器
 ds = ds18x20.DS18X20(ow)
 
 # 扫描总线上的 DS18B20
 roms = ds.scan()
 print("找到 DS18B20 设备数量:", len(roms))
 
 if not roms:
     print("未检测到传感器!检查接线")
 else:
     print("设备地址:", roms)
 
 # ===================== 循环读取温度 =====================
 while True:
     # 发送转换指令
     ds.convert_temp()
     
     # 必须等待 750ms 以上才能读取
     time.sleep_ms(750)
     
     # 读取所有传感器温度
     for rom in roms:
         temp = ds.read_temp(rom)
         print("温度: %.2f °C" % temp)
     
     # 间隔 1 秒读取一次
     time.sleep(1)
 

保存代码。

效果

运行程序,终端打印总线地址和温度数据;

总结

介绍了开发板上传 MicroPython 固件并实现相关工程测试的项目设计,为相关产品的快速开发和应用设计提供了参考。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
3DShell_PCB1.zip
41
2
VID_20250314_080950.mp4
11
3
VID_20250314_080950-(online-video-cutter.com).mp4
7
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航