资料介绍
描述
所以你想构建一个很酷的 -AI-ML 东西,但你没有整天坐下来为你的模型制作数据样本。好吧,自动化那件事我的朋友。
我这样做是为了在 Edge Impulse 中为我的模型获取更好的数据。我将它连接到Github 存储库中的示例代码的温度传感器,但这只是一个示例,EdgeImpulse.py 模块可以在您的项目中单独使用您的传感器。
获取代码
在新目录中删除此命令:
git clone https://github.com/cameronbunce/ESP32-Edge-Impulse.git
边缘脉冲
您需要在 上创建一个Edge Impulse 帐户并为初学者克隆我的项目(或者如果您已经熟悉 Edge Impulse,可以随意创建自己的项目)。对于您自己的项目,您将获得自己的 API 密钥。从项目主页单击顶部的键。单击右侧的“添加新的 API 密钥”。给它起一个傻乎乎的名字,然后选择“Ingestion”的角色,点击“Create”并复制这个key。将此密钥粘贴到您本地的 secret_stub.py 副本中并将其另存为 secret.py,然后返回 API 密钥下方的 HMAC 密钥的 API 页面。这也包含在您制作的新秘密文件中,它用于签署您上传到 API 的文件。
硬件设置
从通用的 ESP32 开始,如果您愿意,可以使用面包板、穿孔板或定制 PCB。将 DS18B20 传感器连接到 Vcc 和 Gnd,并使用 4.7k 欧姆上拉电阻将数据连接到 ESP32 引脚 2。您可以更改它,但此处的代码中使用了 Pin 2。我们将在下面查看您可以更改的位置。
软件设置
我为最新的 Pip3 版本更新了 Python3,并下载了 esptool.py 和 adafruit-ampy。如果您没有类似的东西,您可能还需要 Thonny 或 Mu。
pip3 install esptool pip3 install adafruit-ampy
我正在使用来自https://micropython.org/download/esp32/的每晚构建的 MicroPython,因为它有一个内置的包管理器,我们将使用它。我在此使用的文件是 esp32-20221220-unstable-v1.19.1-782-g699477d12.bin 但可能有更新的文件可用。
我们首先清理电路板,我的 Mac 将我的设备称为 tty.usbserial-0001,但你的可能会有所不同。通过终端使用 `ls /dev | 检查这个 grep tty` 在连接你的开发板之前和之后。
esptool.py --chip esp32 -p /dev/tty.usbserial-0001 erase_flash
然后我们将 MicroPython 的固件写入设备。
esptool.py --chip esp32 -p /dev/tty.usbserial-0001 --baud 460800 write_flash -z 0x1000 esp32-20221220-unstable-v1.19.1-782-g699477d12.bin
现在我们需要上网。您可以将所有命令都输入到 Mu REPL 窗口中,这是一种很好的学习方式,但我们可以在这里做一件事,让我们的未来更轻松。如果您在上面开始填写您的 secret.py 文件,那么您现在要填写其余部分。否则,现在我们需要一个名为 secret.py 的文件中的 ssid 和密码部分并加载到 ESP32 上。所以制作你的 secret.py 文件并至少填写:
ssid = "MySSID" password = "Sup3r5ecr3tP4ssword"
并使用 ampy 将该文件提交给董事会
ampy -p /dev/tty.usbserial-0001 put /path/to/secret.py
现在在 Mu 中,您可以将以下内容粘贴到选项卡中,打开 REPL,然后按运行。您的 ESP32 将使用存储在秘密文件中的 SSID 和密码连接到您的家庭网络,然后它将使用该连接使用 mip(它是 pip 的 Micropython 版本)下拉 HMAC 库。HMAC 是我们将用来对上传到 Edge Impulse 的消息进行签名的库。
import network, mip, secret wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): wlan.connect(secret.ssid, secret.password) while not wlan.isconnected(): pass mip.install('hmac')
使用完整的 secret.py 文件,并将 DS18B20 传感器连接到 Pin 2,EdgeImpluse_DS18B20_example.py在 Tests and Examples 文件夹中查看。在第 16 行,我们看到以下内容。
import json, time, hmac, hashlib import ubinascii, network, ds18x20, onewire, secret import urequests as requests from machine import Pin, WDT debug = True SensorPin = 2 # a DS18B20 attached on pin 2
如果您使用了不同的引脚,您可以将 SensorPin 连接到您使用的引脚。调试消息将打印到串行接口,因此您可以观察以这种方式上传的任何问题。有了那个集合,我们将把它放在板上,但将它重命名为main.py以便板子运行。
ampy -p /dev/tty.usbserial-0001 put EdgeImpluse_DS18B20_example.py main.py
完成后(`ampy...put...` 对我来说需要大约 16 秒),您可以在 Mu 中打开 REPL 并观察出现的调试消息。一个样本是10个读数,间隔10秒,上传也需要一点时间,所以程序运行一个周期在2分钟左右。它不循环。
如果您的上传没有出现错误,并且数据显示在 Edge Impulse 中,那么您就可以开始使用存储库的主目录了。
LongRunning.py在 ESP32 上使用深度睡眠来节省电池电量,并在需要时间隔一整天读取读数。让我们看看在哪里可以找到这些时期的控件。
interval = 600000 # 10 minutes SensorPin = 2 ReadingBatch = 145 # 24 hours of readings with interval = 10 minutes being 144
SensorPin跟以前一样,就是没有debug?我们将任何重要消息写入 ESP32 上的闪存。当我们将处理器置于深度睡眠状态时,我们必须确保我们需要的任何信息都在闪存中,因此传感器读数和消息(“未找到 SSID”或来自 API 的任何非 200 响应)在写入文件之前我们去睡觉。它们巧妙地称为message.txt和values.json并且应该允许我们上传数据,即使我们在现场用完电池或拉电。
ampy -p /dev/tty.usbserial-0001 put DS18B20Reader.py ampy -p /dev/tty.usbserial-0001 put EdgeImpulse.py ampy -p /dev/tty.usbserial-0001 put LongRunning.py main.py
请注意:深度睡眠中的 ESP32 设备确实没有响应。
如果你需要中断程序来恢复它,你会想要阻止它返回到main.py ,所以将以下代码放在 Mu 或 Thonny 中并重新启动设备。按 Control-C 跳转到 REPL,然后运行:
import os os.remove("main.py")
然后您可以检查消息并查看正在发生的情况并根据需要进行更新。DevLog.md文件中提供了其他故障排除和我到目前为止的整个过程。
您现在拥有一台自动数据馈送机来构建更好的 ML 模型。发挥你的力量,成就非凡。
- AirBits开源硬件 0次下载
- 园艺助手开源硬件 0次下载
- 导航机器人开源硬件 0次下载
- 音箱开源硬件分享 0次下载
- microBit Bus(机器人汽车)开源硬件 0次下载
- 灯光提醒开源硬件 1次下载
- 聪明的LED开源硬件 0次下载
- HBus开源硬件 0次下载
- Skype手机开源硬件 0次下载
- 乐高机器人开源硬件 0次下载
- 门铃开源硬件 0次下载
- 电子英雄开源硬件 0次下载
- 线跟随机器人开源硬件 0次下载
- 开源硬件机器人设计 2次下载
- 主流的开源硬件有哪些详细资料说明 0次下载
- 使用开源硬件的烹饪过程 533次阅读
- 寻找开源硬件成功的触发器 360次阅读
- RISC-V处理器如何成为开源硬件发展的基石? 1548次阅读
- 如何使用开源硬件的WIFI控制开关 3349次阅读
- dfrobotDFRobot Bluno M3控制器简介 1152次阅读
- 源创通信BPI-M1+ 开源硬件开发板介绍 1912次阅读
- 源创通信开源智能路由器 MTK 7623N 介绍 2155次阅读
- 源创通信Banana PI BPI-M1单板电脑介绍 2057次阅读
- 关于FPGA在开源方面的探索浅析 3090次阅读
- 基于Altium Designer的OSHw开源项目 3042次阅读
- 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi 5654次阅读
- Python机器学习开源项目分析过程中的见解和趋势 525次阅读
- 11个机器学习开源项目 2482次阅读
- 复古手环:用开源硬件打造你自己的可穿戴设备 1w次阅读
- 开源硬件究竟有多“Open”?看完这个你就清楚了 6648次阅读
下载排行
本周
- 1R2A20112ASP 数据表
- 265.9KB | 8次下载 | 免费
- 2三相、两相、单相异步电动机介绍
- 3.18 MB | 3次下载 | 免费
- 3射频电路设计应用
- 24.72 MB | 2次下载 | 免费
- 483052I-01 Final 数据表
- 504.17KB | 2次下载 | 免费
- 5国内手机产品通信特性与技术能力监测报告
- 1.87 MB | 2次下载 | 免费
- 6S型速度曲线、变频器和三相异步电机(以堆垛机控制系统举例)
- 0.48 MB | 2次下载 | 免费
- 7DTH11温湿度传感器模块代码
- 6.16 MB | 1次下载 | 2 积分
- 8PWM如何控制直流电机
- 0.51 MB | 1次下载 | 免费
本月
- 1从0开始学单片机入门教程
- 3.54 MB | 43次下载 | 免费
- 2电路基本基础
- 19.34 MB | 26次下载 | 免费
- 3微型激光雕刻机kell源码
- 0.02 MB | 14次下载 | 免费
- 4步进电机的原理与特性之基础理论
- 0.70 MB | 9次下载 | 免费
- 5并联使用功率 MOSFET-AN11599
- 316.14KB | 8次下载 | 免费
- 6R2A20112ASP 数据表
- 265.9KB | 8次下载 | 免费
- 7STM32 HAL驱动有刷直流电机和无刷直流电机
- 0.52 MB | 7次下载 | 免费
- 8MSP430F149平衡小车原理图
- 0.23 MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935017次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537727次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 419987次下载 | 免费
- 4OrCAD10.5下载,OrCAD10.5中文版软件
- 817182 | 234243次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233004次下载 | 免费
- 6数据采集系统基础知识视频
- 16.3 MB | 192989次下载 | 免费
- 7电路仿真软件multisim 10.0免费下载
- 340992 | 191114次下载 | 免费
- 8十天学会AVR单片机与C语言视频教程 下载
- 158M | 183228次下载 | 免费
评论