借助 Iroh 打造智能风扇:低成本实现远程控制与数据读取!

📅 2026/7/11 21:41:32
借助 Iroh 打造智能风扇:低成本实现远程控制与数据读取!
1. 打开主菜单提供服务、使用案例、文档、博客、定价、注册等选项。服务包括托管、可观测性、企业版使用案例涵盖分布式 AI、视频流、实时同步、支付与 POS、物联网与嵌入式。2. 由 Iroh 驱动的智能风扇2026 年 7 月 2 日在北半球遭受热浪侵袭时借助 Iroh 编写端到端示例用 ESP32 测量温度并控制风扇不涉及云组件通过小型网站可远程访问。可选用 ESP32 - WROVER 开发套件、M5StickC - Plus2 或其他带 PSRAM 的开发套件若为不带 PSRAM 的 ESP32需禁用中继连接并调整 QUIC 缓冲区。3. 基本设置从 iroh - esp32 - examples 复制回显示例使用 server - esp32 - psram 作为 ESP32 二进制文件client 作为客户端。将其分别重命名为 server - smart - fan 和 smart - fan - cli两个目录是独立的 Rust 项目。4. 首次烧录在服务器项目中执行 cargo run 搜索并烧录 ESP32首次构建耗时久后续构建因编译结果缓存而更快。烧录速度可通过设置 ESPFLASH_BAUD 环境变量提高不同芯片情况不同。需设置 WIFI_CONFIG 环境变量让 ESP32 连接 WLAN。从烧录输出可知接近闪存大小限制但纯 Rust 依赖项增加大小小。5. 测试运行在 ESP32 上运行简单回显服务器。如何分配端点 ID 呢ESP32 在首次启动时在非易失性内存中生成并存储密钥后续启动重复使用同一设备将获得相同端点 ID。设备启动时尝试连接 WiFi失败则挂起。端点启动后会打印本地 IP 地址、长票和短票使用 QAD 确定位置并设置家庭中继之后可用短票从世界任何地方访问。使用客户端二进制文件测试连接客户端有禁用中继和 mDNS 选项。停止 cargo run --release 只是停止与设备连接设备有电源就会继续运行可拔掉电源或使用 espflash erase - flash 删除闪存来关闭。6. 添加传感器构建智能风扇需温度传感器使用 DHT22 温湿度传感器。连接简单三根线分别连接 3.3V、GND 和数据传输。用 tracing 打印传感器读数进行测试。若连接错误传感器会发热可添加 3.3 kΩ 上拉电阻解决超时问题。7. 添加协议使用 irpc 实现远程读取传感器数据在单独的 crate smart - fan - proto 中定义协议。协议包含读取传感器值的 RPC 调用使用传感器状态结构体。服务器端用结构体保存传感器状态客户端目前只进行一次读数。也可继续支持回显协议使用路由器组合协议。8. 构建合适的 GUI使用 dioxus 编写 WASM GUI第一版是远程温度计粘贴设备票据可实时查看温度和湿度。进入 smart - fan - wasm 目录运行 npm run build; npm run serve 可打开 GUI博客文章中的 GUI 可直接测试。9. 添加执行器添加 5V 台式电脑风扇作为输出设备也可用电阻连接 LED 或继电器控制家用风扇。执行器通过简单逻辑控制添加滞后防止风扇频繁开关。10. 协议演进开发中可更改协议新生产部署更改 ALPN。为让旧 GUI 正常工作只能添加新 RPC 方法保持现有方法位置和结构体不变。新的兼容模式枚举包含旧的和新的 RPC 调用。11. 控制风扇阈值扩展 RPC 协议添加设置阈值的调用和身份验证使用硬编码密钥。新 GUI 添加滑块显示和更改阈值粘贴设备票据并输入 FAN_API_SECRET 可解锁。12. 付诸实践将 ESP32、风扇和传感器连接到面包板设计外壳组装成实用小工具。使用 ESP32 - S3 并更改 GPIO 引脚外壳内外贴二维码分别打开只读和控制阈值的 Web UI。13. 动手试试博客文章完整代码可在 iroh - smart - fan 中找到3D 可打印外壳可下载。14. 还能做什么ESP32 可配合各种输入和输出设备输入设备包括温度、光线、CO2、VOC 传感器等还可进行 WiFi 扫描和姿态估计输出设备包括 LED、显示器等可驱动 RC 伺服电机、家用电器。连接设备简单ESP32 容错能力强。15. 这是本地优先的吗使用长票和本地局域网是本地优先使用现有中继有部分云依赖但中继是开源通用组件。可使用公共中继测试、托管中继生产部署也可自行托管。有商业项目特殊需求可联系。Iroh 是即插即用的设备联网库开源且已在数十万台设备上使用可查看文档、代码或在 Discord 频道交流。16. 页脚让网络更轻松。提供 Discord、Twitter、Bluesky、Mastodon、GitHub、YouTube 等交流渠道。还包括构建、学习、交流相关选项。