色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

ESP32 應(yīng)用平臺(tái):像裝 App 一樣裝腳本,免編譯燒錄

ESP32 應(yīng)用平臺(tái):像裝 App 一樣裝腳本,免編譯燒錄 ESP32 能不能像手機(jī)一樣安裝應(yīng)用你別說(shuō)還真能只是這個(gè)“應(yīng)用”不是 APK也不是 IPA而是一份腳本加配置文件。我最近在 ESP32 上做了一套小型應(yīng)用平臺(tái)改功能不再需要反復(fù)拔線重?zé)苯釉诰W(wǎng)頁(yè)里上傳腳本就能“裝應(yīng)用”重啟后還能自動(dòng)運(yùn)行。這篇文章會(huì)把整套思路、架構(gòu)、代碼和我在實(shí)操中踩過(guò)的坑都攤開(kāi)講一遍如果你也在糾結(jié)“固件燒寫(xiě)到什么時(shí)候是個(gè)頭”那這篇內(nèi)容值得看完。1. 為什么要在 ESP32 上做“應(yīng)用平臺(tái)”1.1 傳統(tǒng)開(kāi)發(fā)方式真正讓人難受的地方這幾年玩 ESP32 的人越來(lái)越多環(huán)境從 Arduino 到 ESP-IDF 都有但無(wú)論走哪條路只要還保持“改一行代碼就編譯一次、燒錄一次”的節(jié)奏時(shí)間一長(zhǎng)一定會(huì)暴躁。我自己的經(jīng)歷是給家里做一個(gè)小型桌面終端顯示溫濕度、控制燈帶、偶爾讀幾個(gè)傳感器。剛開(kāi)始挺開(kāi)心寫(xiě)了幾版后開(kāi)始變味改一個(gè)閾值要重編譯調(diào)一個(gè)頁(yè)面樣式也要重編譯板子裝在亞克力盒子里每次燒錄都要拆殼接線。這些痛點(diǎn)的本質(zhì)是你的“固件”和“你的業(yè)務(wù)邏輯”沒(méi)有解耦。設(shè)備燒進(jìn)什么就是什么想變只能整體更換二進(jìn)制。手機(jī)系統(tǒng)之所以舒服是因?yàn)椴僮飨到y(tǒng)只負(fù)責(zé)基礎(chǔ)服務(wù)和運(yùn)行環(huán)境真正的功能來(lái)自“應(yīng)用”應(yīng)用可以被單獨(dú)安裝、升級(jí)、卸載。ESP32 雖然小但它的 Flash、RAM、網(wǎng)絡(luò)能力完全可以支撐一套簡(jiǎn)化版的應(yīng)用管理機(jī)制。1.2 這里說(shuō)的“安裝應(yīng)用”到底在裝什么不用把“安裝應(yīng)用”這四個(gè)字想得太高大上。拆開(kāi)看手機(jī)安裝一個(gè)應(yīng)用其實(shí)做了三件事把代碼和資源放到系統(tǒng)指定的目錄寫(xiě)入一條注冊(cè)記錄告訴系統(tǒng)“這個(gè)應(yīng)用存在、入口在哪”然后由系統(tǒng)的啟動(dòng)器或用戶去觸發(fā)運(yùn)行。ESP32 上做同樣的事就是三步腳本文件放到一個(gè)固定目錄比如/apps/。維護(hù)一份清單apps.json記錄應(yīng)用名稱(chēng)、版本、入口文件、是否開(kāi)機(jī)自啟。用一段固定的服務(wù)代碼去讀取這份清單并提供 HTTP 接口讓用戶在網(wǎng)頁(yè)上執(zhí)行安裝、卸載、啟動(dòng)。由于 ESP32 并不是一個(gè)完整的操作系統(tǒng)跑的不是 Linux所以這份“平臺(tái)”是搭在一個(gè)運(yùn)行時(shí)的上面的。我這里采用的是 MicroPython 方案應(yīng)用就是.py腳本。解釋器本身先作為固件燒進(jìn)去之后換功能只動(dòng)腳本不再動(dòng)底層固件。這套思路搬到 ESP-IDF 上同樣成立只是你需要一個(gè)腳本引擎或者一個(gè)能動(dòng)態(tài)加載二進(jìn)制鏡像的 loader。2. 整體架構(gòu)與方案選型2.1 三條可行路線對(duì)比要做“應(yīng)用安裝”這件事方案不止一種我梳理了三種比較主流的路線各有各的適用場(chǎng)景。方案實(shí)現(xiàn)思路優(yōu)點(diǎn)缺點(diǎn)適合誰(shuí)解釋器腳本方案固件燒入 MicroPython 或 Lua 運(yùn)行時(shí)應(yīng)用為腳本文件開(kāi)發(fā)效率高改腳本即生效排查方便運(yùn)行效率比原生二進(jìn)制低RAM 占用固定成本較高DIY 愛(ài)好者、小批量產(chǎn)品原型、快速迭代場(chǎng)景OTA 雙分區(qū)方案將不同功能固件打包為多個(gè)分區(qū)鏡像通過(guò) OTA 下載切換代碼執(zhí)行效率高可復(fù)用原生 SDK 生態(tài)更像“系統(tǒng)升級(jí)”不是獨(dú)立應(yīng)用多應(yīng)用共存復(fù)雜對(duì)性能敏感、功能相對(duì)固定的產(chǎn)品原生二進(jìn)制動(dòng)態(tài)加載使用 IDA/鏈接腳本將獨(dú)立 app 編譯為位置無(wú)關(guān)代碼由 loader 加載性能最好接近手機(jī)上本地應(yīng)用門(mén)檻高資料少排錯(cuò)難度大有時(shí)間啃底層、需要極致性能的人多數(shù)人不是在做操作系統(tǒng)內(nèi)核而是想讓開(kāi)發(fā)過(guò)程舒服一點(diǎn)所以我選了第一種。腳本應(yīng)用在當(dāng)前 ESP32 的算力下做控制邏輯、采集邏輯、簡(jiǎn)單的 HTML 服務(wù)端頁(yè)面都足夠真到了性能瓶頸再考慮把某個(gè)應(yīng)用改寫(xiě)成原生模塊也不遲。2.2 平臺(tái)的五層結(jié)構(gòu)這套微型應(yīng)用平臺(tái)架構(gòu)上分成五層每一層各管各的事硬件驅(qū)動(dòng)層GPIO、I2C、SPI、UART、ADC、網(wǎng)絡(luò)外設(shè)的驅(qū)動(dòng)。運(yùn)行時(shí)層MicroPython 解釋器負(fù)責(zé)執(zhí)行腳本屏蔽底層寄存器和驅(qū)動(dòng)細(xì)節(jié)。文件系統(tǒng)層基于 Flash 的 LittleFS用來(lái)存放應(yīng)用腳本和配置。服務(wù)管理層核心服務(wù)負(fù)責(zé)掃描應(yīng)用清單、提供 HTTP 上傳/列表/運(yùn)行接口、開(kāi)機(jī)啟動(dòng)調(diào)度。應(yīng)用層用戶開(kāi)發(fā)的具體功能腳本比如 LED 控制應(yīng)用、傳感器展示應(yīng)用。手機(jī)會(huì)動(dòng)不動(dòng)彈“要不要允許這個(gè)應(yīng)用訪問(wèn)傳感器”本質(zhì)是權(quán)限系統(tǒng)。在單片機(jī)平臺(tái)上我先不做這么復(fù)雜的權(quán)限控制但通過(guò)這種分層已經(jīng)能保證“平臺(tái)代碼”和“應(yīng)用代碼”不相干應(yīng)用崩了甚至文件刪了平臺(tái)主體還是好的。這一點(diǎn)在后面的容錯(cuò)設(shè)計(jì)里我會(huì)專(zhuān)門(mén)講。2.3 硬件準(zhǔn)備與 Flash 地址規(guī)劃我這套用的是一塊最普通的 ESP32 DevKitCFlash 大小 4MB。別小看 4MB對(duì)腳本應(yīng)用來(lái)說(shuō)空間非常奢侈。MicroPython 官方固件默認(rèn)會(huì)燒寫(xiě) bootloader、分區(qū)表、MicroPython 固件然后在末尾自動(dòng)劃出一個(gè)文件系統(tǒng)分區(qū)。查看當(dāng)前文件系統(tǒng)大小可以進(jìn) REPL 執(zhí)行import os print(os.getvfs(/).info())打印出的信息里能看到文件系統(tǒng)總?cè)萘亢褪S嗫臻g。如果嫌官方默認(rèn)分區(qū)給文件系統(tǒng)的空間太小可以自己改分區(qū)表。ESP-IDF 的分區(qū)表是一個(gè) CSV 文件我這邊用一個(gè)典型的分區(qū)設(shè)定示例# Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xe000, 0x2000, phy_init, data, phy, 0xf000, 0x1000, factory, app, factory, 0x10000, 0x200000, storage, data, fat, 0x300000,0x100000,分區(qū)表里factory是主固件區(qū)如果啟用了 OTA 機(jī)制可以分出ota_0和ota_1來(lái)。storage分區(qū)就是留給文件系統(tǒng)的。在設(shè)計(jì)這套“安裝應(yīng)用”的平臺(tái)時(shí)一個(gè)很重要的原則是固件區(qū)是運(yùn)行基礎(chǔ)文件系統(tǒng)區(qū)才是應(yīng)用安裝的位置兩者物理隔離才不怕應(yīng)用寫(xiě)壞系統(tǒng)。3. 實(shí)操過(guò)程從零搭建微型應(yīng)用平臺(tái)3.1 燒錄 MicroPython 基礎(chǔ)固件整個(gè)過(guò)程的第一步是給 ESP32 燒一個(gè)帶解釋器的基礎(chǔ)固件。去 MicroPython 官網(wǎng)下載適用于 ESP32 的.bin文件就行選帶SPIRAM或者不帶要看你的板子我手頭這塊沒(méi)有 PSRAM就用標(biāo)準(zhǔn)版。燒采用 esptool先擦除整片 Flash再寫(xiě)入固件esptool.py --port COM3 erase_flash esptool.py --port COM3 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20240602-v1.23.0.bin提示0x1000是 ESP32 出廠規(guī)定的 bootloader 起始偏移不要亂改。如果看到A fatal error occurred: Failed to connect to Espressif device大概率是芯片沒(méi)有進(jìn)入下載模式按住板子上的 BOOT 鍵再點(diǎn)燒錄即可。燒錄完用 PuTTY 或 Thonny 打開(kāi)串口復(fù)位一下應(yīng)該能看到的 Python 提示符。到這一步你的 ESP32 已經(jīng)從一臺(tái)“需要整體編譯燒錄的設(shè)備”變成了一個(gè)“具備腳本運(yùn)行能力的設(shè)備”。后續(xù)再改業(yè)務(wù)邏輯不需要回到編譯器直接在 Thonny 里編輯腳本上傳就行。3.2 網(wǎng)絡(luò)接入給平臺(tái)裝上“下載通道”要實(shí)現(xiàn)網(wǎng)頁(yè)里“安裝應(yīng)用”網(wǎng)絡(luò)是必須的。ESP32 的優(yōu)勢(shì)是自帶 Wi-Fi代碼很短。我通常在main.py里固定寫(xiě)一個(gè)連接 Wi-Fi 并輸出 IP 地址的模塊import network import time def connect_wifi(ssid, password, timeout15): wlan network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, password) start time.time() while not wlan.isconnected(): if time.time() - start timeout: raise RuntimeError(Wi-Fi connect timeout) time.sleep(0.5) print(IP:, wlan.ifconfig()[0]) return wlan.ifconfig()[0]如果你的設(shè)備使用了 LAN8720 以太網(wǎng)模塊那需要走network.LAN接口這個(gè)我在后面“常見(jiàn)問(wèn)題”里專(zhuān)門(mén)說(shuō)因?yàn)榭雍芏?。網(wǎng)絡(luò)通了之后“應(yīng)用平臺(tái)”的服務(wù)端就可以綁定在0.0.0.0:80上這樣手機(jī)、電腦在同一個(gè)局域網(wǎng)里打開(kāi)瀏覽器輸入 ESP32 的 IP就能訪問(wèn)應(yīng)用管理界面。3.3 編寫(xiě)核心服務(wù)應(yīng)用管理器這個(gè)應(yīng)用管理器是整個(gè)平臺(tái)的心臟我用 MicroPython 的socket模塊手寫(xiě)了一個(gè)精簡(jiǎn) HTTP 服務(wù)不依賴任何第三方網(wǎng)絡(luò)庫(kù)方便你在同樣環(huán)境下直接復(fù)現(xiàn)。核心邏輯如下import os import json import socket import gc APPS_DIR /apps MANIFEST /apps/apps.json def load_manifest(): try: with open(MANIFEST) as f: return json.loads(f.read()) except OSError: return {installed: []} def save_manifest(manifest): with open(MANIFEST, w) as f: f.write(json.dumps(manifest)) def install_app(filename, code): if not os.path.isdir(APPS_DIR): os.mkdir(APPS_DIR) path APPS_DIR / filename with open(path, w) as f: f.write(code) manifest load_manifest() for app in manifest[installed]: if app[file] filename: app[version] 1.0 save_manifest(manifest) return update manifest[installed].append({ name: filename.replace(.py, ), file: filename, version: 1.0, autorun: False }) save_manifest(manifest) return install def list_apps(): manifest load_manifest() html htmlheadtitleESP32 App Store/title/headbody html h1ESP32 應(yīng)用管理/h1 html h3已安裝應(yīng)用/h3ul for app in manifest[installed]: html fli{app[name]} - v{app[version]} html f[a href/run?app{app[file]}運(yùn)行/a] html f[a href/uninstall?app{app[file]}卸載/a]/li html /ul html h3上傳安裝/h3 html form methodPOST action/upload html input typetext namefilename placeholderapp_name.py html textarea namecode rows8 cols60 placeholder粘貼腳本代碼/textarea html input typesubmit value安裝 html /form/body/html return html這里我沒(méi)有直接把 HTTP 解析寫(xiě)滿因?yàn)槟憧吹降氖枪羌軐?shí)際操作時(shí)還需要在do_GET和do_POST里解析請(qǐng)求行和請(qǐng)求體取到/upload表單里的filename和code字段再交給install_app。為了保證 RAM 不被大請(qǐng)求撐爆上傳的代碼不要太大幾百行以內(nèi)的腳本都沒(méi)問(wèn)題。如果將來(lái)想上傳更復(fù)雜的應(yīng)用建議改成按塊寫(xiě)入或壓縮包方式。3.4 演示應(yīng)用通過(guò)網(wǎng)頁(yè)遠(yuǎn)程開(kāi)關(guān) LED平臺(tái)有了還要真正“裝上”一個(gè)應(yīng)用驗(yàn)證流程。我寫(xiě)了一個(gè)最簡(jiǎn)單的 LED 控制應(yīng)用它的功能是提供一個(gè)小網(wǎng)頁(yè)點(diǎn)按鈕就翻轉(zhuǎn) GPIO2 的電平。這個(gè)應(yīng)用本身就是一段獨(dú)立腳本放到/apps/app_led.pyimport machine import socket import network led machine.Pin(2, machine.Pin.OUT) def page(): state OFF if led.value() 0 else ON return fhtmlbodyh1LED 控制/h1 fp當(dāng)前狀態(tài): {state}/p fa href/toggle點(diǎn)我翻轉(zhuǎn)/a/body/html def run_server(): s socket.socket() s.bind((0.0.0.0, 8080)) s.listen(2) while True: conn, addr s.accept() req conn.recv(1024).decode() if /toggle in req: led.value(1 - led.value()) conn.send(HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n page()) conn.close()安裝這個(gè)應(yīng)用的時(shí)候通過(guò)管理平臺(tái)的網(wǎng)頁(yè)表單填文件名app_led.py粘貼上述代碼點(diǎn)提交。之后瀏覽器訪問(wèn)http://esp32-ip:8080就能看到這個(gè)應(yīng)用的獨(dú)立控制界面。這個(gè)例子的意義在于應(yīng)用和平臺(tái)之間的關(guān)系就像手機(jī)裝上了一個(gè)獨(dú)立 App。用戶不會(huì)感受到底層“Flash 里有幾個(gè)文件”他們只知道訪問(wèn)網(wǎng)頁(yè)就能控制 LED。3.5 開(kāi)機(jī)自啟動(dòng)與“應(yīng)用入口”的調(diào)度手機(jī)開(kāi)機(jī)之后你可以手動(dòng)點(diǎn)開(kāi)某個(gè) App也可以設(shè)置自啟動(dòng)。我在平臺(tái)里也做了類(lèi)似機(jī)制main.py里啟動(dòng)網(wǎng)絡(luò)、啟動(dòng)管理服務(wù)、然后掃描清單里autorun為T(mén)rue的應(yīng)用。from app_manager import load_manifest, start_http_server def main(): connect_wifi(your_ssid, your_password) start_http_server() manifest load_manifest() for app in manifest[installed]: if app.get(autorun): print(autorun, app[file]) # 通過(guò) importlib 或動(dòng)態(tài)執(zhí)行機(jī)制加載應(yīng)用 if __name__ __main__: main()動(dòng)態(tài)執(zhí)行應(yīng)用有很多種方式比如importlib.import_module或者直接exec(open(path).read())。我建議是每個(gè)應(yīng)用本身也做成一個(gè)函數(shù)入口由管理器在子線程中執(zhí)行這樣某個(gè)應(yīng)用阻塞了也不影響整個(gè)管理平臺(tái)繼續(xù)對(duì)外服務(wù)。這里有個(gè)容易被忽略的點(diǎn)MicroPython 的線程支持比較基礎(chǔ)多線程時(shí)要注意 GIL 和??臻g限制所以在exec那種粗暴方式里要格外小心。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 LAN8720 以太網(wǎng)模塊的三個(gè)高頻坑如果你的設(shè)備是用網(wǎng)線接入局域網(wǎng)的就會(huì)用到 LAN8720。這個(gè)模塊本身不貴但接 ESP32 時(shí)非常容易翻車(chē)。我在這里把最有代表性的三個(gè)問(wèn)題講透。第一個(gè)坑PHY 芯片的復(fù)位時(shí)序。LAN8720 有個(gè)nRST引腳如果它一直處于低電平芯片就永遠(yuǎn)處于復(fù)位狀態(tài)網(wǎng)絡(luò)自然起不來(lái)。最常見(jiàn)的錯(cuò)誤是把nRST直接接到 ESP32 的 EN 引腳這樣 ESP32 復(fù)位后 PHY 也跟著復(fù)位但 ESP32 主控初始化網(wǎng)卡時(shí) PHY 可能還沒(méi)準(zhǔn)備好問(wèn)題就隨機(jī)出現(xiàn)了。解決辦法把nRST接到 ESP32 的一個(gè)普通 GPIO比如 GPIO18然后在代碼里手動(dòng)延時(shí)并拉高reset_pin machine.Pin(18, machine.Pin.OUT) reset_pin.value(0) time.sleep_ms(100) reset_pin.value(1) time.sleep_ms(150)接線就按 GPIO18 到 LAN8720 的 nRST中間不用加電阻電平兼容性沒(méi)問(wèn)題。第二個(gè)坑REF_CLK 時(shí)鐘源。LAN8720 支持從外部晶振或從主控輸入 50MHz 參考時(shí)鐘。很多模塊板載了 50MHz 晶振有的卻沒(méi)有而 ESP32 的 RMII 接口要求ETH_CLOCK_GPIO0_IN或ETH_CLOCK_GPIO17_OUT二選一。如果是板載晶振軟件配置為輸入模式如果是外部輸出要在 GPIO17 引 50MHz。配置錯(cuò)了現(xiàn)象就是一直連不上錯(cuò)誤日志里全是TIMEOUT。第三個(gè)坑供電。LAN8720 是 3.3V 供電但一些模塊在啟動(dòng)瞬間電流不小。如果從 ESP32 開(kāi)發(fā)板的 3V3 引腳直接取電而旁邊又帶著屏幕、傳感器電壓容易跌落網(wǎng)絡(luò)會(huì)時(shí)好時(shí)壞。我第一次遇到就很玄學(xué)剛開(kāi)機(jī)時(shí)能連上一操作外設(shè)就掉線。最后查下來(lái)是供電問(wèn)題建議單獨(dú)用一片 AMS1117 降壓模塊從 5V 取電給 LAN8720。下面是我調(diào)試通過(guò)后的接線參考LAN8720 引腳ESP32 引腳VCC3V3或獨(dú)立 3.3V 電源GNDGNDMDCGPIO23MDIOGPIO18RXD0GPIO19RXD1GPIO21CRS_DVGPIO22TX_ENGPIO25TXD0GPIO26TXD1GPIO27nRSTGPIO18注意與 MDIO 區(qū)分建議換一個(gè)空閑腳REF_CLK按模塊晶振情況接 GPIO0 或 GPIO17建議真正布線時(shí)把 MDIO 和 nRST 分到兩個(gè)不同 GPIO我之前圖省事把它們重合導(dǎo)致 PHY 復(fù)位后 MDIO 總線一直異常。4.2 燒錄與文件系統(tǒng)典型故障上傳代碼失敗、文件寫(xiě)入提示 OSError檢查路徑是否存在MicroPython 的/apps/目錄如果要手動(dòng)創(chuàng)建用os.mkdir(/apps)。有些固件默認(rèn)文件系統(tǒng)是只讀掛載需要先卸載再重新掛載或者干脆重刷固件。文件系統(tǒng)損壞最直接的表現(xiàn)是啟動(dòng)后import os; os.listdir()報(bào)OSError: 19。解決方法是擦除 Flash 后重刷然后重新上傳腳本。不要嘗試在設(shè)備上做太多救援操作浪費(fèi)的時(shí)間足夠重刷第二遍。應(yīng)用平臺(tái)被自己的應(yīng)用影響這一點(diǎn)很關(guān)鍵。我踩過(guò)一次很深的坑在做一個(gè)睡眠主題應(yīng)用時(shí)腳本里寫(xiě)了machine.deepsleep()結(jié)果平臺(tái)管理服務(wù)也被拉下去了。后面我把應(yīng)用執(zhí)行統(tǒng)一放在獨(dú)立線程里并且在啟動(dòng)應(yīng)用前做了gc.collect()保證內(nèi)存回收及時(shí)。4.3 硬件資源限制與運(yùn)行時(shí)的“隱藏規(guī)則”ESP32 的 RAM 只有 320KB 左右實(shí)際可用到 MicroPython 堆的也就 100KB 上下。這個(gè)體量在“應(yīng)用平臺(tái)”層面夠用但你不能指望跑重型計(jì)算。我在實(shí)際測(cè)試中一個(gè)控制頁(yè)面加幾個(gè)傳感器讀數(shù)的應(yīng)用堆內(nèi)存占用大約 15KB還能接受。如果你要跑圖像處理或者復(fù)雜的加密邏輯腳本方案就吃力了。另外一定要提 ESP32 的 ADC 問(wèn)題。用 ADC2 的通道采集時(shí)如果 Wi-Fi 同時(shí)在工作采集結(jié)果可能一直不對(duì)因?yàn)?ADC2 和 Wi-Fi 是共用硬件的。我建議所有模擬量采集盡量走 ADC1GPIO32-GPIO39同時(shí)做好電壓分壓校準(zhǔn)畢竟 ESP32 ADC 在中段比較線性靠近兩端會(huì)有明顯非線性你需要查原始曲線或者自己多點(diǎn)校準(zhǔn)。4.4 快速排查速查表現(xiàn)象可能原因解決辦法點(diǎn)擊安裝后沒(méi)有出現(xiàn)在列表表單字段名不一致導(dǎo)致安裝函數(shù)沒(méi)拿到參數(shù)確認(rèn) POST 字段為filename和code訪問(wèn)管理頁(yè)面一直轉(zhuǎn)圈服務(wù)端線程阻塞或卡在某個(gè)應(yīng)用執(zhí)行上重啟設(shè)備啟動(dòng)平臺(tái)后再手動(dòng)觸發(fā)問(wèn)題應(yīng)用上傳大腳本后設(shè)備重啟接收請(qǐng)求時(shí)recv緩沖區(qū)太大導(dǎo)致 RAM 不足限制上傳大小或改用分塊接收Wi-Fi 連接不穩(wěn)定供電不足或信號(hào)弱獨(dú)立供電調(diào)整天線方向減少高功率外設(shè)平臺(tái)服務(wù)能起來(lái)但應(yīng)用自動(dòng)啟動(dòng)失敗應(yīng)用腳本有語(yǔ)法錯(cuò)誤或缺少依賴在 REPL 里單獨(dú)執(zhí)行該腳本確認(rèn)報(bào)錯(cuò)信息5. 這個(gè)平臺(tái)還能用在哪些場(chǎng)景5.1 小批量設(shè)備上的“在線增裝”如果你做的是小批量的設(shè)備比如幫朋友做十來(lái)個(gè)環(huán)境監(jiān)測(cè)終端過(guò)去每改一次需求都要把所有設(shè)備拆下來(lái)燒錄。有了這套應(yīng)用平臺(tái)設(shè)備只需要第一次燒好基礎(chǔ)固件后面全部通過(guò)網(wǎng)頁(yè)更新腳本遠(yuǎn)程運(yùn)維的體驗(yàn)完全不一樣。我身邊有人用這個(gè)思路做桌面終端設(shè)備放在客廳人坐在工位上打開(kāi)瀏覽器就能往終端上裝一個(gè)“客流統(tǒng)計(jì)”應(yīng)用或者“白噪音播放”應(yīng)用這就是“ESP32 終端”該有的自由度。5.2 邊緣采集與異常檢測(cè)工業(yè)場(chǎng)景里的軸承故障檢測(cè)、電機(jī)振動(dòng)分析搞起來(lái)不便宜但 ESP32 加傳感器做輕量級(jí)預(yù)篩選完全可行。你可以把傳感器驅(qū)動(dòng)、特征計(jì)算、告警上傳這些模塊拆成獨(dú)立應(yīng)用基礎(chǔ)平臺(tái)只負(fù)責(zé)采集原始數(shù)據(jù)裝一個(gè)“FFT 頻譜分析”應(yīng)用就做頻域分析裝一個(gè)“閾值報(bào)警”應(yīng)用就只發(fā)告警。應(yīng)用之間互不影響升級(jí)某個(gè)算法也不用整機(jī)停擺。這種模塊化能力在產(chǎn)品原型驗(yàn)證階段特別有用。5.3 后續(xù)擴(kuò)展方向這套平臺(tái)目前只實(shí)現(xiàn)了“文件即應(yīng)用、清單即注冊(cè)”的雛形但擴(kuò)展空間足夠大。你可以考慮增加以下能力用 Zip 格式打包應(yīng)用包含代碼、網(wǎng)頁(yè)靜態(tài)資源、應(yīng)用圖標(biāo)上傳后自動(dòng)解壓更像手機(jī)應(yīng)用包。增加簡(jiǎn)單鑒權(quán) Token避免局域網(wǎng)內(nèi)任意設(shè)備都能改應(yīng)用設(shè)置。應(yīng)用間通信基于ujson或msgpack通過(guò)統(tǒng)一消息總線傳遞數(shù)據(jù)。給文件系統(tǒng)外接 SD 卡讓?xiě)?yīng)用區(qū)容量從幾百 KB 擴(kuò)展到幾 GB。極端性能需求下改造部分應(yīng)用為原生二進(jìn)制并通過(guò) loader 動(dòng)態(tài)加載把解釋型應(yīng)用和原生應(yīng)用混合管理。我之前也試過(guò)直接在 ESP-IDF 里寫(xiě)一個(gè)真正的動(dòng)態(tài)加載器思路和上面的原生二進(jìn)制路線一致但開(kāi)發(fā)節(jié)奏確實(shí)慢很多目前更穩(wěn)定的組合還是 MicroPython 為主。建議先從腳本應(yīng)用開(kāi)始把平臺(tái)用起來(lái)再逐步按需升級(jí)。最后再分享一個(gè)小技巧平臺(tái)入口腳本main.py里盡量給所有可能出錯(cuò)的調(diào)用都加上try/except讓?xiě)?yīng)用級(jí)別的問(wèn)題最多只打印錯(cuò)誤日志不中斷整個(gè)平臺(tái)進(jìn)程。我最初就是因?yàn)闆](méi)加保護(hù)一個(gè)應(yīng)用語(yǔ)法錯(cuò)誤直接讓整個(gè) ESP32 陷入反復(fù)重啟排查過(guò)程比寫(xiě)代碼本身還痛苦。把平臺(tái)基礎(chǔ)穩(wěn)定住后面再“安裝”多少應(yīng)用都不慌。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
被男人添B超爽视频| 97超级久久| 人人人人插| 97视频在线视频| 亚洲最大91网| 日韩性爱视频免费在线| 99色热国产视频精品| 亚洲精品欧洲色| 天天舔天天日天天射| 欧美午夜精品久久久久久超碰| 91黑人无码激情在线| 凸凹视频在线观看| 国产强奸超碰AV| 91人妻做a观看视频| 国产60页| 久久精品欧美一区二区三区不卡| 久艾草在线精品视频在线观看| 美女爽到高潮91| 人妻91少妇| 欧美精品亚洲精品日韩传电影| 91中文精品日韩欧美在线| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久9久9久9久9久9久9 | 精品人妻1237| 99热超碰| 18禁久极品美女久久哦哟呀!| 韩国女主播青草在线| 伊人久久大香蕉线AV五月天| 色网综合网| 国产搭汕a级片| 亚洲天堂电影网99999| 五十路熟女,国产欧美精品区一区二区三区| 一区二区三区无卡视频在线观看| 在线电影亚洲色图| 东京热男人的天堂| 一级免费啪啪片| 激情四射婷婷四五月天| 欧美天堂超碰97| 另类图片欧美激情综合| 日韩欧美久久婷婷网站| h4610国产人妻| 美女久久久久久久| 国产亚洲福利第一页丝袜| 99爱视频| 美女91网站| 九九热精品在线| 亚洲图片另类| 久久久久久久久久久97| 国产操逼网站亚洲一级黄色| 亚洲日本韩国极品一区二区| 亚洲高清自拍| 亚洲欧美国产中文字幕| 色黄色美女大长腿午夜视频| 亚洲天天影视综合网| 日韩国产不卡在线视频| 欧美大片天天看| 国产精品久久久久久久毛片1| 欧美999999| 黄片直播三级黄片两女一男| 欧美性爱18观看| 久久久精品中文字幕麻豆| 人人摸人人干| 色眯眯av| 97天堂| 成人免费毛片| 久久久人妻| 东北老女人的激情视频| 国产精品视屏| 欧美色棕合| 欧美色97| 人妻少妇色综合| 日韩电影免费网站麻豆视频| 69av一区二区三区| 五月婷婷大香蕉| 青青操视频在线| 91精品无码人妻系列| 99精品久久久久久| 人妻丰满熟妇一区二区三| 91在线限制级| 熟女熟妇一区二区三四区| 欧美少妇人妻| 亚洲……91| 欧美伊人电影| 发朗少妇买婬全视频中文| 四季av一区二区凹凸精品小说| 黄片免费看的| 老司机免费视频在线91| 人人爱人人乐人人操| 人人操人人狠狠操| 日本大香蕉综合网红本杳社区| 91精品黄在线观看| 97鸡把在线视频| 久久色激情一区二区三区| 免费成人自拍视频在线| 日韩精品怡红院| 日本在线激情一区二区三区| 在线免费观看高清无码视频| 中出后入| 狠狠操一区二区| 日韩精品在线观看网站| 久久久久久九| 91黑丝美女| 91成人久久| 97 超碰 人人做 人人爱| 国产丸一视频| 日本A级视频| 五月激情天| 亚洲天堂一区二区| 日韩AV无码中文一区二区| 婷婷中文字幕| 日韩 欧美 另类 人妻| 国产一线二线三线av| 禁十八久久| 91天堂色男人的天堂| 深喉吞精| 91美女視頻| 日韩中文字幕在线视频观看| 色与欲影视天天看综合网| 成人国产精品三级A片| 国产精品人妻熟女aⅴ| 青青草AV色| 九九热免费在线国产视频伊人五月| 丰满的三级少妇欧美久久久| 亚洲欧美精品国产一区二区| 日日爱99| 日本精品网站在线中文| 眼镜人妻101.com| 看免费的黄片| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 麻豆福利视频导航| 亚洲熟妇熟在线电影视频| 性感女人网页在线观看视频| 一区二区三区四区五区高清无码永久视频 | 欧美精品 - 91爱爱| 看黑丝美女操逼青青网站| 久久久涩| 国产又色又爽又舒服的三级视频| 呦呦一区| 午夜精品久久久久久久第一页按摩| 国产SV一线| 国产久久一区二区午夜| 日本九九久久99播| 亚洲综合99999| 夜夜国产一区| 五月天亚洲色图| 无码人妻一区二区三区色欲aⅴ| 国产亚洲欧美每日在线| av一区二区三区 中文| 少妇精品久久久八区九区| 久久a久久| 成人热久久精品| 欧美男女午夜啪啪| 色色婷婷五月| www老逼91| 99re6久热只有精品6在线直播| 色婷婷丁香五月| 素人播放一区| 久久久精品| 国产精品国产自产高清AV| 337p大胆噜噜噜噜噜91Av| 91久久18禁| 91中文字幕制服丝袜免费视频| 日韩精品一区二区高清| 夜夜夜久久| 99re视频这里只有精品| 大香蕉黄色一区| 九九九草| 视频分类 国内精品| 欧美熟女妇同| 精品欧美А∨无码黑人大荫蒂| 久久久工口| 乱码熟妇人妻久久久| 亚洲不卡一| 欧美成人性爱视频大全| 涩五月婷婷| 无遮挡男女激烈动态图| 久久久久久99999国产精品| 思思99热| 天天色综亚洲91污| JIZZJIZZ亚洲女人被躁| 强上我不卡卡| 国产女性无套 免费观看| 天天操天天舔| 亚洲欧美国产va在线| 日本天堂网| 天天色粽合合合合合合合| 日本三级日本三级三级人妇四虎| 欧美aa一级片| 一区二区三| 欧美97免费| 亚洲小电影免费涩涩成人在线高清| 国产视频一区二区三区在线免费观看| 亚洲国产丝袜在线观看| 久久精品国产72国产精品福利| 激情五月婷| 欧美情色亚洲| 国产欧美精品日韩区二区麻豆天美| 五月丁香综合激情| 亚洲宗合电影| 亚洲乱码尤物193YW| 亚洲精品亚洲人成人网| 曰韩少妇无码| 久久精品店| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 91爆操视频| 久久老子无码午夜伦不卡| sss视频华人在线| 操逼操网| 中文字幕亚洲在线一区| 亚洲综合色网| 亚洲图片 91| 亚洲 日韩 欧美 国产综合体| 中国操逼无码| 99AV| 日韩小电影| 色臀AV| 97超碰欧美精品| 蜜臀99精品国产高清在线观看| 亚洲素人综合| 粉嫩av在线| 91福利网在线观看| 日韩图区 偷拍| 国产精品自在线发布| 国内毛片无码一级毛片| 人人爱操| 亚洲综合图色在线| 日韩天天综合| 99无码狠狠久久| 福利视频香蕉免费一区二区在线| 日本黄色大片一级视频免费麻豆| 伊欧美综合视频| 亚洲资源吧| 99久久久无码精品国产人| 97资源制服丝袜| 久久超碰日韩精品| 色婷婷丁香五月| 日本在线伊人啪啪| 亚洲情色电影网| 欧美熟妇精品黑人巨大91| 日韩无码第3页| 国产高清成人免费视频| 国产偷拍自拍在线视频| 七久久久| AV色五月天| 高清无码学生妹高潮| 亚洲情欲| 欧美一区二区亚洲天堂| 91红杏| 中文在线视频| 2023天天操夜夜操| 无遮挡猛进视频免费无限观看| 五月天婷婷色色| 四虎影视国产精品| 亚洲欧美中日韩| 91强奸乱轮| 久久精品男人的天堂| 精品人妻一区二区视频| 婷婷色影院| 色爱欲亚洲| 精人妻无码一区二区三区伊人直播| 亚洲丝袜在线观看| 狠狠激情综合狠狠操中文字幕| 91大学精品激情戏| 东方亚洲在线操逼天堂| 国产 日韩,欧美 自拍| 久操网视频| 欧美另类色图片| 蜜乳av一区二区三区四区不卡| 狠日欧美| 激情综合网五月婷婷| 欧美熟妇亚洲版| 久久久久久久久999| 国产吞精a级片激情电影| 夜夜爽妓女| 外国免费性情大片| 国产美女高潮叫床视频| 色盈盈影院| 9Ⅰ超碰| 91人妻素女| 1956日韩精品| 亚洲97综| 麻豆60秒| 99中文字幕| 99热在线观看| 啊啊啊啊啊舒服| 粉嫩av平台| 六月丁香五月婷婷| 亚州黄站| 五月丁香| 欧美色图欧美| 青青草中文-久久青草精品一区二区三 | 日韩少妇一区二区三区| 欧美中字不卡| 亚洲自拍一区夜夜操| 欧美激情区| 久久婷色| 91久久久久久久久18| 超碰人人在线| 亚洲91色| 亚州综合电影| 爽极品影院| 2000亚洲男人天堂| 久干9操| 美美91成人国产精品欧美精品久久久久久久 | 国产女人和拘做爰视频| 欲香欲色天天天综合和网| 国产v亚洲v日韩v欧美v片另类| 久久99精品视频| 精品人妻一区二区三区不卡断| 去干网最新版| 一道本久久棕合爱| 久久精品国产久精国产| 色情综合| 日韩三级伊人| 青青欧美| 丁香五月偷拍| 精品久久久av无码免费| 美女诱惑在线一区| 色五月婷婷久久| 97爱| 啊啊啊啊啊在线视频| 国产一在线观看| 国产人妻精品一区二区三区秋霞| 亚洲综合一区二区| 综合久久99亚洲人妻中文在线| 久久久999网站| 亚洲另类欧美精品| 女人天堂网| 日本色婷婷| 男女一进一出视频久久| 日韩伦理久 久久 清纯| 激情综合二| 欧美姓爱综合网| 亚洲淫乱骚妇AV| 国产精点久久久成人| 久久免费9| 国产精品欧美激在线| 人妻乱仑一区二区三区| 无码不卡亚洲成?人片| www.91欧美| 乱老女人一区二区视频| 亚洲婷婷综合网| 欧美伦乱| 超碰538| 亚洲色五月| 再深点灬舒服灬太大了添视频| 天天操妹子| 97伪v| 97色欧州| 东北丰满熟女国产一区| 久草在线| 亚洲无码日韩电影| 97视频新免费| 屌妞视频久久久久久久| 欧美有码激情视频一区二区三区| 岛国网址国产| 91啦人妻| 亚洲高清视频在线免费观看| 国产嫩草精品A88AV| 亚洲欧洲无码97久久精品| 五月婷婷啪啪| 日本性爱少妇| 欧美日日操| 国产精品视频91久久| 麻豆一区二区三区在线看 | 搡老女人老91妇女熟女| 91jk色拍| 男人的天堂激情| 亚洲av在线免费观看| 热99这里只有精品| 亚洲四虎熟女精品| 99久久久er直播网址| 秋霞成人一级在线观看| 无码外流操逼视频| 777琪琪午夜免费A片| 国产深夜福利| 在线日韩日本亚洲国产| 国产精品国产精品国产| 色香天天| 天天肏视频| 78精品| 超碰97人人乐| 国产一区二区在线看| 91在线丝袜| 午夜福利 成人 91| 超碰97综合在线| 欧美日韩狠狠爱| 亚洲丝袜二区在线| 超碰2017| 看日韩黄片| 韩国三级一线观看久| 亚洲婷婷丁香在线| 黄色区免费观看中文字幕| 日本十八禁免费看污网站| 日日日日做夜夜夜夜无码| 免费福利视频中文字幕| 日本操大逼| 99热这里只有精品地址| 婷婷伊人綜合中文字幕小说| 97色伦欧美| 91大神电影天堂| 九九热五区| 最新av在线| 白嫩91在线亚洲| 国产农村妇女精品一二区| 肉嘟嘟www视频在线观看高清| 91爆操视频| 18禁免费视频| 操高情无码| 日韩中文字幕二区| 美女露胸露屁股| 中文字幕日韩人妻视频一区二区三区交换夫妻| 欧美变态激情网| 综合熟妇一区二区三区| 91欧美大片| 无码天天操| 国产女性无套 免费观看| 日韩草久视频| 99久久9| 欧美综合另类| 淫荡熟女乱伦网| 五月天久久久| 欧美性爱一区| 视频不卡中文字幕| 特级丰满少妇一级AAAA爱毛片| av九九| 欧美精品双插| 中 文字幕一区二区三四 五 区日 日 骚 | 97国伦国色| 亚洲自拍欧美色综合| 久久久青青草| 欧美麻豆成人同性GⅤ在线| 91国产精品熟女| 熟妇艹鸡八| 啪啪视频亚洲第一| 精品人妻15区| 亚洲国产婷婷在线播放| 婷婷日韩一区二区三区中文字幕在线| 久久爱超碰网| av影片在线观看不卡| 亚洲精品影视老司机| 亚洲熟女国产综合另类| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲成aⅴ人片不卡无码| 婷色五月| 后入福利视频| 日本1区2区不卡视频| 熟妇在线视频一区二区| 色原狠狠天天天| 韩日性爱av| 久久的网站啊啊啊啊啊| 亚洲美女精品九九视频| 五月丁香成人网| 91亚洲黑人| 太久视频| 亚洲视频小说| 成人av性爱电影在线观看| 六九九九| 9118禁| 丁香六月婷婷综合| 国模久久在线| 亚洲偷拍自拍在线视频| 91激情综合| 天天激情综合站| 打av高清| 亚洲熟女乱色一区二区三区| 国产精品久久久久绯色| 91精品国产91久久青草| 大香蕉在线视频15| 成人羞羞视频国产| 一区二区 日韩 欧美 国产 传媒| 亚洲av性爱电影| 久久秀这里有精品| 中文字幕第9页萱萱影音先锋| 亚洲 图片 综合91| 国产一区二区三区高清视频| 中文字幕一区二区三区蜜臀| 91精品人妻偷情| 欧美色图私拍91| 国产美女裸体秘 永久无遮挡| 国产a级精品| 欧洲特黄毛片免费看欧洲毛片| 后入 亚洲 美女 射| 久久精品一区二区一8| 蜜桃精品一区二区三区ww | 99在线观看| 怡红院成人视频| 青青操青娱乐| 亚洲国产精品无码AV久久久| 97色涩| 亚洲av无线观看| 欧美在线电影| 欧美人妻二区三区| 中文字幕aⅴ在线视频| 青青草好吊| 亚洲少妇色| 日韩激情电影中文字幕| 中文字幕久久亚州无码| 9999久久久久| 午夜舔阴达高潮视频免费看| 以及麻豆国产入口在线观看免费| 久草精品国产蜜臀 | 欧洲精品久久| 爽爽淫人网| av爱爱爱| 97久久久网站| 丰满精品人妻少妇久久字幕| 日本色婷婷| 人人爱人人乐人人操| 人人考人人摸人人干| 中国AAAAAA黄色片| 性色高清..……| 国产成人资源| 婷婷激情五月天小说网| 日本色日夜干| 丝袜色综合| 亚洲国产欧美日韩人妻日中文| 操www| 91九色丨风韵犹存| 亚洲人久久久网| 麻豆亚洲Av成人无码一区精品| 国内毛片婷婷六月色| 屁股久久久久久久久久| 久久久久久久久国产| 五月天春色激情网| 久久老子无码午夜伦不卡| 精品人妻一区二区三区四区石在线| 91九九九吃| 亚洲AO在线| 91操人| 91c色| AAAA欧美日韩| 极品国产内射| 啊啊啊啊好疼| 夫妻AV网站| 91天天c| 1区2区3区在线视频| 日韩av影片在线观看| 成人a级高清视频在线观看| 男人的天堂视频精品乱在线| 久肏视频字幕| 超碰精品人妻狠狠干| 麻豆天美制片厂网站视频| 9 9精品一区二区三区| 留下AⅤ黄色片| 国产成人亚洲精品无码古代早漏男| 思思热一热婷婷热一热| 九九九久久久久| 久久精品欧美一区蜜桃| 五月综合视频| 99激情视频| 2018色综合天天操| 人人扣人人操| 激情五月婷婷| 殴美牲| 夜夜嗨AV一区天天| 亚洲无套久久嗯嗯| 日韩pv中文| 操九九九九九九| 久久9久9久99久9久9| 欧美亚洲玖玖玖| 26uuu欧美| 99re这里只有精品2| 男人天堂网手机版婷婷| 99国内熟女露脸视频| 国产十八禁视频| 裸体美女久久久| 少妇内射视频| 91AV国产精品| 日本女人久久久| 97亚洲精品| 国产精品久久久久久亚洲色欲| 无遮挡男女激烈动态图| 欧美人人操人人插| 亚洲第一精品在线视频| 国产成人无码高清| 色爱综合网| 天天看综合网| 青女在线| 蜜臀99久久精品久久久久久| 91天天综合日韩欧美| 91欧美大片| 亚洲色系另类精品国产| AV无码久久久精品| 吻戏激情性巴克| 免费农村成人少妇人妻Aa一区二区视频| 青青爽| 亚洲污污网站| 超碰人妻久久| 园内精品自拍视频在线播放| 大香蕉黄色一区| 久久久久久久一级黄色打同平台| 亚洲综合有玛| 亚洲色图8| 在线视频 亚洲精品| 人人操人人操人人人操| 强免费黄色网址| 99热免费| 影音资源男人日韩| 2024黄色视频| 日本精品一区二区中文字幕| 神马视频久久久久久| 亚洲欧美日产国产91毛片| 欧美瑟综合| 中文字幕精品免费一区二区| 激情九月婷婷| 欧美视频第二页| 亚洲无码一区成人免费午夜| 先锋激情∨在线视频播放| 超碰99在线观看| 91天天综合网,天天综合网| 超碰 欧美| 中文字幕日韩电影人妻| 婷婷色婷婷| 秋霞福利网| 最新亚洲黄色免费电影| 大香蕉九九| 亚拍在线| 国产综合在线视频网站| 亚洲一区二区三区久久 亚洲一区二区| 玖玖爱一区在线| 中文乱码字幕观看| www.99热| 91热色| 高清国产成人无码| 高树玛利亚无码流出| 久久久青青草| 精品伊人久久久大香线蕉小说| 蜜桃精久三区| www.99色| 殴美日韩m| 99re超碰| 精品四五区| 欧美乱欲| 五月天开心网| 日韩内| 性爱乱伦网址| 九一性生活免费视频| 一本精品日本在线视频精品| 欧美久久婷| 91操熟女| 午夜性| a亚洲欧美色欲| 热天堂一区二区| 操久久久久| 啊啊啊啊啊啊在线| 夜间福利片1000无码| 国产高清免费不卡av| 精品毛片av一区二区| 骚货| 天天激清| 少妇天堂网络| 久久精品国产亚洲妲己影视| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产精品视频| 国产成人精品无码久久| 欧美少妇高潮久久91| 黄色视频60分钟| 97爱b| 欧美黄片欧美黄片xxx| 亚洲人码13| 激情久久久| 色欧美在线| 色蜜AV| 99久久亚洲精品无码毛片潘甜甜| 久久av色| 国产AV无码AV| 啊啊啊慢点| 熟女丝袜视频| 91亚洲色人| 男人天堂 天天射| 黄色片大香蕉| 国产999精品久久久| 欧美日韩99精品麻豆传媒| 国产无码精品久久久久久| 超碰在线人妻不卡| 99精品成人免费看| 蜜臀99久久精品久久久久| 蜜桃久久久久久| 欧美日韩日产免费网站看| 国产精品午夜精品| 日韩精品.久久精品.AV女优.天美传媒| 亚洲色图图片| 亚洲青色欧美| 久久99网站| CCYY草草影院地址入口| 超碰无码五月97| 超碰97COm中文| 男人的天堂午夜av| 精品国产99999| 超碰97欧美在线| 久久69精品久久久久久久| 国产热av| 欧美|91色综合| 最新中文字幕精品在线| 欧美大的香蕉有线电视视频| 国产乱弄免费在线视频。| 欧美v亚洲v日韩v最新在线二区| 狼人狠干| 亚洲精品黑丝| 欧美一区二区传媒| 超碰在线99| 国产乱婷婷精品二区三区| 日韩人妻播放| 欧美激情久操网| 欧美色道啊| 91亚洲欧美色图| 久久久久免费少妇| 国产区性爱在线视频秋霞豆| 精品免费一区| 久9爱精品| 和协影院中文字幕三区| 96AV精品| 丁香五月天视频| 国产 亚洲 丝袜 制服| 午夜人人操| 9118禁| 婷婷国产精品一区二区| 久久女同性恋一二区| 91人妻丝袜无码| 精品丰满人妻一区二区三区免费观| 久久久久久久亚洲Av无码| 26uuu最新| 围产精品一区二区三区视频播放| 超碰色美女| 久久熟女久| 日日骚精品视频| 懂色中文一区二区三区| 九九热九九| 人妻久久| 国产精品日日摸天天碰| 日本天堂在线播放| 久久久99999久网站| 中文字幕片| 青青草在线成人视频| 丁香六月天| 狠狠干综合| 亚洲人妻AV| 91色久| 欧美综合网1| 午夜呻吟欧美| 婷婷三区| 嫩草 人人网精品| 韩日男人的天堂| 七久久久| 97超碰jingpin| 国产av高清版| 偷拍欧美激情| 91色综合激情| 久草婷婷| www激情| 亚州精品人妻一二三区| 日韩av情韩国爱禁区av一区二区| 欧美日韩另类字幕中文| 校园春色综合香蕉| 欧美性第1页| 舔人妻中文免费视频| 久久久天堂| 久久久久久性爱免费视频| 久久男人的天堂| 精品久久久久久无码| 欧美制服另类丝袜| 欧美人妻二区三区| 欧美A√综合网| 成人天天爽| 一区二区三区一亚洲中文字幕、综合区灬 | 嗯啊不要在线| 嗯阿好爽好紧| 丰满人妻一区| 日韩猛交| 国产又黄又粗的视频| 99在线无码精品秘 入口黑人| av婷婷色婷婷色六月| 一本久道久久综合狠狠爱| 老熟女区| 熟妇一区,二区,三区。| 99无码| 艹精品| 啊啊啊免费视频| 综合五月天| www.99色| 99九九精品| 亚洲狼狼干综合1| 久久久久久中文| 五月婷亚洲精品天堂| 久久riav中文精品| 思思热在线视频精品| 自拍视频大全亚洲专媒视频/一区二区三区 | 免费国产| 国产辣妈在线视频福利| 久久精品性| 欧洲一区二区三区免费| 超碰99在线| 久草网站免费在线观看| 91精品电影18| 国产外初女出血视频| 精品在线78| 一类无码操逼视频| 狠狠 91| julia ann久久| 久久久久久亚洲Av无码精| 立川理惠加勒比无码| 校园春色综合色| 欧美日韩另类激情图片| 色呦呦呦在线观看视频| 不卡九肏| 综合久久9| 五月综合婷婷久久网站| 屌妞视频久久久久久久| 亚洲熟女综合网| 日韩乱插| 青青操视频在线| 超碰国产精品无码| 亚洲熟妇丝袜在线观看| 日本精品一区二区不卡| 果冻国产精品麻豆成人av| 啊啊啊不要啊啊受不了了视频在线| 亚洲熟妇A V黑人| 很很热性爱视频| oumeizonghese,www| 波多野结衣AV无码一区| 久久久久久久极品香蕉视频| 欧美激情亚洲| 久久亚洲av成人无码国产| 91久久堂| 久综合国内精品自在自线| 91亚·色| 99av| 视频二区美腿丝袜制服人妻欧美| 女同性恋中文字幕| 无码精品蜜桃一区二区三区ww| 亚州再线| 成人无码电影在线观看网| 亚洲综合另类欧美久久久| 亚洲男人天堂AV| 麻豆久久视频在线地址| 久久黄人人爽视频| 国产超碰在线| 婷婷久月| 成 人 影视 一区 二区 三区 四区| 精品久久97观看在线视频| 五月丁香婷婷啪啪| 亚洲欧美碰碰| 亚洲精品久| 在线αⅴ| 伊人网在线观看| 国产成年免费大片黄在线观看| 久久久久9999妇女| 九九干| 婷婷精品国产欧美精品亚洲人人爽| av在线一区二区三区| 欧美熟女逼久久久久久| 超碰人人干| 日本一二区不卡| 爱射综合| 尤物网址| 3级毛片一二| 嗯嗯啊在线视频| 黄色无码高清黄色无码网站| 免费网色网站| 中文自拍欧美影视| 国产精品在线免费| 国产夜夜艹| 园内精品自拍视频在线播放| 国产精品午夜精品| av中文在线| 黄色片A级一区二区三区| 裸体1区| AV电影在线播放| 97精品一区二区视频| 九九九九免费高| 亚洲图片偷拍视频区| 亚洲男人电影天堂| 欧美大片一区二区三区| 长长久久88视频| 天天谢天天干| 欧美性色欧美| 久久曰曰| 九月婷婷综合| 人人操我人人干| 999国产精品999久久久久久| 欧洲射精91| 精品黑人一区二区| 尤物av网站免费在线播放| 97就爱干| 99久久久无码| 国产人妻天天干精品| 在线免费观看高清无码视频| 精品综合久久久久久97| 人人澡人人爽人人精品| 黄色视频特级毛片| 亚洲黄色视频在线观看视频| 亚洲九九视频| 亚洲人妖网| 九九成人| 日韩成人大片一区二区| 老熟女乱伦片| 久久久91| 热的中文 热的有码 热的国产| ′ !γ}丶。。久久精品欧美一区二区三区| 亚洲一区二区三区不卡国产欧美| 91亚洲图片| 中文字幕一区二区三四五区日日骚| 国产少妇肉丝在线观看| 懂色AV蜜臀无码精品APP| 三级日韩一区二区三区| 日比av无码| 五月天亚洲网| 97精品97| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久人妇| 无码人妻丰满熟妇奶水区毛片| 久久久久人妻| 国产一区二区视频在线播放| 精品成人亚洲午夜电影| 久久大黄片| 中文字幕乱亚洲美女精品一区| 后入式999| 大香蕉欧美国产日韩高潮| 欧州激情视频在线一区二区| 麻豆 欧美 日韩| 久久久无码国精品无码三区三区| 伊人久久大香大香线蕉中文| 美中日韩无码| 国产一区二区精品久久99| 极品欧美一区二区三区| 91久久久亚洲| 国产午夜在线观看| 91美女网站| 老女人综合网| 亚洲国产丝袜熟女av| 日日骚中文字幕| 日韩一二三区| 探花精品 一区二区| 国产精品香蕉| 日韩无码人妻| 天天射天天操天天干天天吃2018| 日韩射精| 综合网 欧美| 欧美极品| 男女啪啪啪18禁网站| 精品视频在线观看精品| JIZZJIZZ亚洲女人被躁| 成人午夜高潮av猛片| 日韩av电影成人在线| 一级岛国大片| 777AV电影| 欧美国产伊人久久久久| 亚洲一区二区性爱电影| 日本女人操逼| 久久99操天天日| 中文字幕日韩国产传媒欧美精品| 欧美最婬乱婬爆婬性视频| 亚洲丝袜色图| 色九九九综合| 无码色| 色穴精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久久亚洲精品中文字幕人妻| 尤物AV免费网站| 欧美亚洲手机在线| 天天影视色香欲综合网小说| 天天干天天舔| 日本性爱网址| 丁香激情网| 亚洲码和欧洲精品激情系列| 色大香蕉97N| 综合大香蕉美。| 亚洲丝袜综合| 国产第12页| 极品色www影院| 天天影视网综合少妇| 成人日韩中文字幕| 妇女乱色二区| 少妇一级无码精品| 国产精品自在线发布| 国产欧美伊人| 日韩中文字幕宗合在线| 一二三区精品视频| 无码高清操逼网址| 国产67194| 麻豆婷婷成人一二三| 性色高清..……| 亚洲av噜噜噜噜噜噜| 91成人久久 | 91国产丝袜白虎| 性爱网站一区二区| 99自拍视频在线观看| 精品久久在线区一区| 亚洲欧美91√| 无码动漫av中文字幕| 六月婷婷综合| 999综合色| 欧美激情视频一区二区| 国产精品麻豆视频网站| 农村妇女一级二级三级视频| 91色色综合| 国产呦精品系列在线观看| 69精品久久久久中文字幕| 99.色网| 久久精品无码专区| 午夜寂寞欧美| 干b在线性社区| 中文乱码字幕观看视频| 强歼乱伦资源网| 欧中日成人免费影视| 91美| 日韩,欧美,中文在线| 麻豆人妻少妇在线免费观看| 91热| 黄片在线免费在线观看| 欧亚日韩三区| 人妻天天爽天天爽三区| 久久伊人大香蕉| 欧美一品道| 国产日逼视频| 四虎视频在线观看| 国产精品爆乳懂色蜜乳| 久久久久久国产精品| 亚洲第一页综合在线| 精品人妻av在线播放| 日日夜夜国产综合| 国产激情视频一区区三区| 久久久久久国产精品| 日韩精品午夜操呦呦不卡影院| av无码精品久久久久| 国产成自自拍在线观看| 欧美成年人性爱视频免费观看| 男人兔费天堂| 欧美综合网A| 99热免费| 玖玖久久久| 久久香蕉国产传媒一区剧情天美| 黑人性欧美| 综合久| 清纯唯美第一页| 五月婷婷激情网| 久久久久久999| 婷婷五月天社区| 色妺妺AⅤ| 中文字幕一区 二区三四五 区日 日骚 | 丰满美女一级毛片在线播放| 麻豆久久久久久久久丝袜 | 久久国产三区| 国产精品美女| 国产免费大片| 丁香五月天堂网| 99操逼| 97AV爱| 黄色大片视频在线免费看| 色蜜AV| 私人尤物在线精品不卡| 人妻一区久久二区三区色播| 中文字幕丰满人妻日本| 在线综合 亚洲 欧美中文字幕| 一级黄色牲爱A级片| 性色中出| 涩涩涩综合| 91美女高潮| 99精品成人免费看| 超碰久超碰久| 中文字幕 一区二区 亚洲无码| 亚洲AV在线资源| 国产精品国产拍高清AV| 亚州性9| 亚洲欧洲无码97久久精品| 亚洲男人久久综合天堂| 亚洲国产青青| 五月色网| 大学生美女口爆| 日本大香蕉| 人妻99p| 2024年最新色情网站在线观看| 国产一区二区三区不卡手机在线| 人人艹亚洲| 激情婷婷黑人91| 欧美日韩丝袜| 国产一进一出视频网站| 婷婷精品国产欧美精品亚洲人人爽| 色婷婷99| 久久大| 99re综合伊人| 熟女日韩| 波多野42部无码喷潮在线观看| 蜜桃AV天堂| 亚洲不卡av在线| 午夜福利视频在线一区| 欧美热图99| 极品后入免费视频| 激情丁香五月| 亚洲牲交| 亚洲男人综合网| 国产欧美日韩女同性恋ww喷水精品| 成人小说视频在线精品欧美| 久艹99| 亚洲情色一区三区| 丁香五月电影| 日逼视频日本| 神马麻豆福利院| 国产精品乱码久久久久久| 国产精品 亚洲情色| 亚洲欧美精品国产一区二区| 亚洲天堂资源在线| 国产第11页| 久久99国产综合精品女同| av在线一区二区三区| 91在线免费精品视频| 婷婷九月丁香| 女人的天堂大香蕉网| a久久| 久草免费在线一区二区| 国产精品久久久久久久电影渣男| 国语精品对白| 麻豆天美在线喷水AV| 人妻久热在线| caorenqi shipin| 日日操丁香五月天| 99久久精品无码一区二区毛片免费 | 女生自91网站| 69一区二区三区| 日日骚精品视频| 欧美性爱一区二区三区四区| 天天肏美女| 夜夜爽33333| 欧美性爱精品一区二区| 久久91精品国产9丨久久分亭| 免费观看日本操逼视频| 殴美性天天| 玖日综合网| 在线五区| 丰满人妻一区| 91无码人妻| 欧美少妇性乱| 99热导航| 欧美A√综合网| 丰满搜索结果 -第18页- 久久高清无码 | 国产高清精品一区二区三区毛片| 亚州性色| 小电影欧美91| 亚洲图片欧美另类综合免费视频大大香| 日本精品人妻少妇一区二区| 青娱乐 成人娱乐在线| 天堂精品在线| 天天综合色电影| 伊人久久88国产女| 久9视频| 超碰人妻在线| 熟女人妻久久中文字幕一二区| 成人在线日韩| 99性视频| 久久久精品日本一道| 97人妻色| 丝袜综合色图| 亚洲人成网www| 粉嫩国产精品久久粉嫩| 久久久工口| 九九热超碰97亚洲最新香蕉 | 极品色| 91看黄片| 国产精品嫩草影院免费|