資料介紹
描述
所以你想構建一個很酷的 -AI-ML 東西,但你沒有整天坐下來為你的模型制作數據樣本。好吧,自動化那件事我的朋友。
我這樣做是為了在 Edge Impulse 中為我的模型獲取更好的數據。我將它連接到Github 存儲庫中的示例代碼的溫度傳感器,但這只是一個示例,EdgeImpulse.py 模塊可以在您的項目中單獨使用您的傳感器。
獲取代碼
在新目錄中刪除此命令:
git clone https://github.com/cameronbunce/ESP32-Edge-Impulse.git
邊緣脈沖
您需要在 上創(chuàng)建一個Edge Impulse 帳戶并為初學者克隆我的項目(或者如果您已經熟悉 Edge Impulse,可以隨意創(chuàng)建自己的項目)。對于您自己的項目,您將獲得自己的 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` 在連接你的開發(fā)板之前和之后。
?
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分鐘左右。它不循環(huán)。
如果您的上傳沒有出現錯誤,并且數據顯示在 Edge Impulse 中,那么您就可以開始使用存儲庫的主目錄了。
LongRunning.py在 ESP32 上使用深度睡眠來節(jié)省電池電量,并在需要時間隔一整天讀取讀數。讓我們看看在哪里可以找到這些時期的控件。
?
interval = 600000 # 10 minutes SensorPin = 2 ReadingBatch = 145 # 24 hours of readings with interval = 10 minutes being 144
?
SensorPin跟以前一樣,就是沒有debug?我們將任何重要消息寫入 ESP32 上的閃存。當我們將處理器置于深度睡眠狀態(tài)時,我們必須確保我們需要的任何信息都在閃存中,因此傳感器讀數和消息(“未找到 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")
?
然后您可以檢查消息并查看正在發(fā)生的情況并根據需要進行更新。DevLog.md文件中提供了其他故障排除和我到目前為止的整個過程。
您現在擁有一臺自動數據饋送機來構建更好的 ML 模型。發(fā)揮你的力量,成就非凡。
?
- 瑪麗亞機器人開源硬件
- 華夫餅機器人開源硬件
- 機器人開源硬件
- 手勢控制機器人開源硬件
- 開源硬件-警燈
- AirBits開源硬件
- 導航機器人開源硬件
- 音箱開源硬件分享
- microBit Bus(機器人汽車)開源硬件
- HBus開源硬件
- 樂高機器人開源硬件
- 門鈴開源硬件
- 線跟隨機器人開源硬件
- 開源硬件機器人設計
- 主流的開源硬件有哪些詳細資料說明
- 當開發(fā)者開始養(yǎng)魚:樂鑫科技ESP32-S3開發(fā)板+步進電機,定時定量自動投喂! 300次閱讀
- 負壓產生電路分析 4.2k次閱讀
- 安信可小安派-Knob旋轉編碼器驅動板簡介 1.2k次閱讀
- 安派-Eyes-DU開發(fā)板的參數說明 1.1k次閱讀
- 用小安派開源硬件制作一個桌面天氣站 1.7k次閱讀
- 使用開源硬件的烹飪過程 2.1k次閱讀
- 尋找開源硬件成功的觸發(fā)器 1.1k次閱讀
- dfrobotDFRobot Bluno M3控制器簡介 2.6k次閱讀
- 源創(chuàng)通信BPI-M1+ 開源硬件開發(fā)板介紹 3.4k次閱讀
- 源創(chuàng)通信開源智能路由器 MTK 7623N 介紹 3.6k次閱讀
- 關于FPGA在開源方面的探索淺析 4.6k次閱讀
- 基于Altium Designer的OSHw開源項目 5k次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 7.9k次閱讀
- 11個機器學習開源項目 3.1k次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 8.3k次閱讀
下載排行
本周
- 1耗盡型MOS FET產品目錄選型表
- 0.14 MB | 2次下載 | 免費
- 2TI系列-米爾TI AM62L核心板開發(fā)板-高能效低功耗嵌入式平臺
- 1.51 MB | 次下載 | 免費
- 3WILLSEMI韋爾20年半年度報告由代理分銷經銷一級代理分銷經銷
- 3.30 MB | 次下載 | 免費
- 4LRC 樂山無線電InTWSApplications家電由原廠代理分銷經銷一級代理分銷經銷供應
- 85.84 KB | 次下載 | 免費
- 5LAT1596 一文說明白 STM32G4 雙 Bank 啟動與升級
- 0.64 MB | 次下載 | 5 積分
- 6LAT1594_基于事件喚醒低功耗之介紹
- 0.37 MB | 次下載 | 5 積分
- 7PT8P2309 觸控 A/D 型 8-Bit MCU規(guī)格書
- 4.05 MB | 次下載 | 免費
- 8PT8P2308 觸控 A/D 型 8-Bit MCU規(guī)格書
- 4.13 MB | 次下載 | 免費
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 19次下載 | 10 積分
- 2反激式開關電源設計解析
- 0.89 MB | 11次下載 | 5 積分
- 3耗盡型MOS FET產品目錄選型表
- 0.14 MB | 2次下載 | 免費
- 4簡易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 52EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 6國產千兆網口芯片PT153S中文資料
- 1.35 MB | 次下載 | 免費
- 7斯丹電子 | 用于芯片測試系統(tǒng)的射頻干簧繼電器
- 5.11 MB | 次下載 | 免費
- 8SFI立昌ESD/TVS管原廠代理分銷經銷一級代理分銷經銷
- 294.76 KB | 次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論