資料介紹
描述
所以你想構建一個很酷的 -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次下載 | 免費
評論
查看更多