资料介绍
描述
所以你想构建一个很酷的 -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开源硬件
- 导航机器人开源硬件
- 音箱开源硬件分享
- microBit Bus(机器人汽车)开源硬件
- HBus开源硬件
- 乐高机器人开源硬件
- 门铃开源硬件
- 线跟随机器人开源硬件
- 开源硬件机器人设计
- 主流的开源硬件有哪些详细资料说明
- 负压产生电路分析 1900次阅读
- 安信可小安派-Knob旋转编码器驱动板简介 481次阅读
- 安派-Eyes-DU开发板的参数说明 534次阅读
- 用小安派开源硬件制作一个桌面天气站 809次阅读
- 使用开源硬件的烹饪过程 1313次阅读
- 寻找开源硬件成功的触发器 636次阅读
- dfrobotDFRobot Bluno M3控制器简介 1823次阅读
- 源创通信BPI-M1+ 开源硬件开发板介绍 2648次阅读
- 源创通信开源智能路由器 MTK 7623N 介绍 2897次阅读
- 源创通信Banana PI BPI-M1单板电脑介绍 2889次阅读
- 关于FPGA在开源方面的探索浅析 3706次阅读
- 基于Altium Designer的OSHw开源项目 3609次阅读
- 三大主流开源硬件对比:Arduino vs BeagleBone vs Raspberry Pi 6363次阅读
- 11个机器学习开源项目 2767次阅读
- 开源硬件究竟有多“Open”?看完这个你就清楚了 6939次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多