99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

用樹莓派Pico W DIY環(huán)境監(jiān)測節(jié)點(diǎn):從傳感器到低功耗實(shí)戰(zhàn)

用樹莓派Pico W DIY環(huán)境監(jiān)測節(jié)點(diǎn):從傳感器到低功耗實(shí)戰(zhàn) 這篇博文主要講講如何用Raspberry Pi Pico W自己動(dòng)手做一個(gè)環(huán)境監(jiān)測節(jié)點(diǎn)從傳感器選型、電路接線、MicroPython代碼到數(shù)據(jù)上報(bào)、可視化告警再到低功耗和長期運(yùn)行的改造整個(gè)過程都踩過坑也總結(jié)了不少經(jīng)驗(yàn)。如果你正好想給家里、辦公室或者陽臺(tái)做一套溫濕度、氣壓、光照監(jiān)測的小系統(tǒng)又不想被現(xiàn)成設(shè)備的封閉生態(tài)綁住這篇文章應(yīng)該能讓你少走很多彎路。1. 為什么選Pico W來做環(huán)境監(jiān)測先說清楚一個(gè)很多人問的問題環(huán)境監(jiān)測這事淘寶上一百多塊的成品溫濕度計(jì)不香嗎為什么要拿一塊開發(fā)板自己拼答案在于“靈活”和“可控”這四個(gè)字。成品設(shè)備一般只能看自家App里的數(shù)據(jù)數(shù)據(jù)格式不開放、導(dǎo)不出來、沒法自己設(shè)定更復(fù)雜的聯(lián)動(dòng)規(guī)則。而用Pico W自己搭一套環(huán)境監(jiān)測節(jié)點(diǎn)數(shù)據(jù)完全在自己手里想怎么存、怎么展示、怎么告警都行本質(zhì)上是把環(huán)境監(jiān)測從“用產(chǎn)品”變成了“做基礎(chǔ)數(shù)據(jù)設(shè)施”。1.1 幾款主流開發(fā)板對(duì)比在選定Pico W之前我實(shí)際對(duì)比過幾塊常見的板子各有各的脾氣。開發(fā)板無線能力價(jià)格約生態(tài)功耗表現(xiàn)適合場景Arduino Uno R3無需外加模塊50-80元C/C資料極多一般老牌入門教學(xué)、無需聯(lián)網(wǎng)的簡單控制ESP32 DevKitWiFi藍(lán)牙25-45元Arduino/MicroPython較高深睡眠不錯(cuò)聯(lián)網(wǎng)型IoT項(xiàng)目性能要求稍高Raspberry Pi Pico WWiFiCYW4343930-45元MicroPython/C/C低深睡眠很能打低功耗傳感器節(jié)點(diǎn)、輕量數(shù)據(jù)采集Raspberry Pi 4B有線WiFi200-300元Linux系統(tǒng)高不適合電池當(dāng)網(wǎng)關(guān)或服務(wù)器而非末端傳感器節(jié)點(diǎn)這里面最容易讓人糾結(jié)的是ESP32和Pico W。ESP32性能更強(qiáng)、帶藍(lán)牙、ADC精度還可以用的人也多Pico W的賣點(diǎn)是MicroPython開發(fā)體驗(yàn)極其清爽USB直接掛載成一個(gè)盤拖拽就能傳代碼加上RP2040那顆芯片在超低功耗深睡眠模式下表現(xiàn)非常突出很適合那種“一顆電池想撐半年”的傳感器節(jié)點(diǎn)場景。我最后選了Pico W還有一個(gè)實(shí)際原因MicroPython環(huán)境下讀取傳感器、處理異常、斷線重連這些邏輯寫起來非常快對(duì)快速原型驗(yàn)證來說效率優(yōu)勢很明顯。1.2 Pico W的硬指標(biāo)與原生優(yōu)勢Pico W的硬件核心其實(shí)還是RP2040雙核Cortex-M0主頻最高133MHz帶264KB SRAM和2MB板載Flash。有意思的是它的無線部分并不是RP2040原生的而是通過板載的CYW43439芯片走SPI接口連接所以無線協(xié)議棧占用了一部分CPU資源和內(nèi)存實(shí)測跑MicroPython時(shí)Flash剩下約1.5MB可用寫普通邏輯完全夠用。它另外一個(gè)原生優(yōu)勢就是前面提到的低功耗。Pico W在MicroPython里用machine.lightsleep()和machine.deepsleep()可以非常細(xì)粒度地控制功耗實(shí)測WiFi關(guān)閉、僅保留定時(shí)器喚醒時(shí)深睡眠電流可以壓到幾十微安級(jí)別。這對(duì)于丟在陽臺(tái)、閣樓這類不方便頻繁換電池的場景是非常重要的能力。另外不得不提Pico W的IO資源很夠用26個(gè)GPIO引腳多個(gè)I2C/SPI/UART接口3路ADC。接一路溫濕度傳感器、一路氣壓傳感器、一個(gè)光照傳感器也就占用了五六個(gè)引腳后面想擴(kuò)展空氣質(zhì)量傳感器、土壤濕度傳感器都還很從容。2. 傳感器選型與環(huán)境監(jiān)測的“數(shù)據(jù)拼圖”環(huán)境監(jiān)測不等于只測溫度。一套完整的環(huán)境監(jiān)測設(shè)備通常需要采集溫濕度、氣壓、光照、空氣質(zhì)量甚至噪聲等多項(xiàng)數(shù)據(jù)數(shù)據(jù)維度越豐富越能還原真實(shí)環(huán)境變化。但傳感器也不是堆得越多越好每一個(gè)傳感器都會(huì)引入新的故障點(diǎn)。2.1 溫濕度方案DHT22、SHT30與BME280怎么選溫濕度是環(huán)境監(jiān)測的基礎(chǔ)項(xiàng)市面上的傳感器方案五花八門最常見的三款是DHT22、SHT30和BME280。DHT22是老牌選手單線協(xié)議價(jià)格便宜6-10元用的人多網(wǎng)上示例代碼遍地都是。缺點(diǎn)也很明顯單線協(xié)議時(shí)序要求比較嚴(yán)讀數(shù)周期只能到2秒一次而且在高溫高濕環(huán)境下長期漂移比較明顯。我早期用它做過一個(gè)原型實(shí)際跑下來發(fā)現(xiàn)濕度數(shù)據(jù)偶爾會(huì)突然跳出幾個(gè)異常點(diǎn)排查了很久才發(fā)現(xiàn)是它內(nèi)部采樣后換算邏輯導(dǎo)致的需要在代碼里做濾波處理。SHT30是瑞士Sensirion的I2C接口傳感器精度和長期穩(wěn)定性都優(yōu)于DHT22響應(yīng)也更快最快每秒可以讀10次價(jià)格在15-25元區(qū)間。它是目前我在中等預(yù)算方案里最推薦的一款I(lǐng)2C總線還可以和其他傳感器共用比如接BMP280或BH1750光照傳感器。BME280則是“六邊形戰(zhàn)士”一顆芯片同時(shí)輸出溫度、濕度、氣壓三種數(shù)據(jù)I2C/SPI接口都有氣壓精度在士0.12hPa級(jí)別非常適合做高度變化檢測和天氣趨勢預(yù)測。價(jià)格大概20-35元。缺點(diǎn)是濕度響應(yīng)速度比SHT30稍慢但對(duì)環(huán)境監(jiān)測場景完全可以接受。如果你只想用一個(gè)傳感器搞定大部分維度BME280是性價(jià)比最高的選擇。我自己最終用的是SHT30測溫濕度、搭配BMP280專門測氣壓、再用一顆BH1750測光照強(qiáng)度。這么組合的好處是每顆傳感器都在自己最擅長的領(lǐng)域工作而且都是I2C接口接線非常統(tǒng)一后文會(huì)給到具體的接線方案。2.2 光照、氣壓與空氣質(zhì)量擴(kuò)展思路除了溫濕度光照度和氣壓也是環(huán)境監(jiān)測里非常有價(jià)值的維度。BH1750光照傳感器是I2C接口量程從1到65535勒克斯可以應(yīng)對(duì)從暗光環(huán)境到陽光直射的場景代碼也簡單直接讀寄存器就行。氣壓數(shù)據(jù)則非常有“指標(biāo)性”意義連續(xù)幾小時(shí)氣壓顯著下降大概率是天氣要變?cè)谕叨葪l件下氣壓的短期抖動(dòng)還能輔助判斷房間氣密性??諝赓|(zhì)量方面常見的有SGP30eCO2TVOCI2C接口、PMS5003顆粒物濃度UART接口等。SGP30適合室內(nèi)空氣質(zhì)量趨勢監(jiān)測PMS5003則能給出PM2.5/PM10數(shù)值更直觀。這里有一個(gè)容易被忽略的點(diǎn)如果做戶外環(huán)境監(jiān)測空氣質(zhì)量傳感器需要做防護(hù)處理PMS5003有配套的進(jìn)氣嘴和防塵帽SGP30本身對(duì)濕氣敏感戶外長期裸奔容易導(dǎo)致基線漂移一定要做好防護(hù)。我做一個(gè)建議選傳感器不要只看“支持哪些”還要看“I2C地址是否沖突”。SHT30的默認(rèn)I2C地址是0x44BMP280是0x76部分模塊是0x77BH1750是0x23三者不沖突可以掛在同一條I2C總線上。萬一沖突了可以看芯片有沒有地址引腳可以改比如BME280的SDO引腳就是用來切換地址的。3. 搭建環(huán)境監(jiān)測節(jié)點(diǎn)從接線到跑通MicroPython硬件連接這關(guān)很多人會(huì)卡住不是因?yàn)殡y而是因?yàn)榧?xì)節(jié)。接線錯(cuò)了輕則讀不到數(shù)據(jù)重則燒傳感器。我自己第一次接BMP280的時(shí)候把VIN接到了3.3V結(jié)果冒煙了后來查資料才發(fā)現(xiàn)網(wǎng)上有些模塊板載的LDO輸出是3.3V但VIN需要接5V。所以接線前一定先看模塊的具體說明書或絲印標(biāo)注不要默認(rèn)什么都是3.3V。3.1 固件燒錄與開發(fā)環(huán)境準(zhǔn)備Pico W拿到手是沒有任何固件的需要先燒錄MicroPython固件。步驟很簡單按住Pico W板子上的BOOTSEL按鈕不放。用USB線連接到電腦此時(shí)電腦會(huì)彈出一個(gè)名為“RPI-RP2”的U盤。從樹莓派官網(wǎng)下載最新的MicroPython固件.uf2格式注意選RP2040 with WiFi版本普通Pico和Pico W的固件不通用。把.uf2文件直接拖進(jìn)RPI-RP2盤符中板子會(huì)自動(dòng)重啟此時(shí)U盤會(huì)消失出現(xiàn)串口設(shè)備。開發(fā)環(huán)境我推薦用Thonny自帶MicroPython解釋器集成可以非常方便地看到REPL輸出和文件管理。也可以用mpremote命令行工具適合喜歡用VS Code寫代碼的人。注意燒錄固件后建議先把板子的所有引腳斷電拔掉USB線再重新連接傳感器。熱插拔傳感器很容易讓傳感器受損。3.2 接線與第一版讀取代碼我的接線方案如下Pico W引腳定義以絲印為準(zhǔn)傳感器SHT30BMP280BH1750VCC3.3V (Pin 36)3.3V3.3VGNDGND (Pin 3)GNDGNDSDAGP0 (Pin 1)GP0GP0SCLGP1 (Pin 2)GP1GP1所有I2C傳感器共用一條I2C總線SDA接GP0SCL接GP1。這組引腳是Pico W的I2C0接口MicroPython中對(duì)應(yīng)machine.I2C(0, sdaPin(0), sclPin(1), freq400000)。第一版代碼先把三個(gè)傳感器的數(shù)據(jù)都讀出來看看from machine import Pin, I2C import sht30 import bmp280 import bh1750 import time i2c I2C(0, sdaPin(0), sclPin(1), freq400000) # 掃描I2C總線上的設(shè)備地址 devices i2c.scan() print(I2C devices:, [hex(addr) for addr in devices]) sht sht30.SHT30(i2c) bmp bmp280.BMP280(i2c) bh bh1750.BH1750(i2c) while True: temp_sht, hum sht.measure() temp_bmp, press bmp.measure() lux bh.lux() print(SHT30: {}C, {}%RH | BMP280: {}C, {}hPa | BH1750: {}lux.format( temp_sht, hum, temp_bmp, press, lux )) time.sleep(5)這里面有個(gè)小坑要提醒bh1750.BH1750這個(gè)庫的初始化方式因庫而異有的版本需要傳i2c地址參數(shù)有的默認(rèn)地址是0x23但有些模塊是0x5C。用前先i2c.scan()確認(rèn)地址更穩(wěn)妥。3.3 數(shù)據(jù)質(zhì)量處理多傳感器融合與濾波第一次跑通看到一串串?dāng)?shù)據(jù)之后先別急著接著做WiFi上報(bào)有一個(gè)環(huán)節(jié)非常重要數(shù)據(jù)質(zhì)量校驗(yàn)。環(huán)境監(jiān)測系統(tǒng)如果數(shù)據(jù)本身不可信后面所有圖表、告警都是空中樓閣。DHT類傳感器經(jīng)常會(huì)出現(xiàn)尖峰突變比如溫度瞬間跳變5度。SHT30和BMP280相對(duì)穩(wěn)定但也不能保證百分之百不出現(xiàn)異常值。我用的方法是“去重滑動(dòng)窗口濾波”from collections import deque class SensorFilter: def __init__(self, window_size5): self.window deque(maxlenwindow_size) def add(self, value): # 剔除超出合理范圍的值 if value is None: return None if self.window: prev self.window[-1] if abs(value - prev) 10: # 相差超過10個(gè)單位認(rèn)為異常 return None self.window.append(value) return sum(self.window) / len(self.window)實(shí)際部署時(shí)我把窗口設(shè)為5次采樣取平均這樣可以濾掉多數(shù)瞬時(shí)干擾。對(duì)于溫濕度這類變化緩慢的數(shù)據(jù)滑動(dòng)窗口濾波的滯后效應(yīng)幾乎無感。另外還有一個(gè)容易忽略的問題傳感器上電初期讀數(shù)是不準(zhǔn)的。SHT30剛上電時(shí)濕度數(shù)據(jù)可能需要幾十秒到幾分鐘才能穩(wěn)定BME280也要等溫度穩(wěn)定后才能獲得準(zhǔn)確氣壓。所以開機(jī)后我一般會(huì)先丟棄前10次采樣再開始正式記錄這在數(shù)據(jù)質(zhì)量上是很有效的保障。4. 數(shù)據(jù)上云Pico W WiFi與MQTT上報(bào)通道傳感器數(shù)據(jù)留在終端上打印出來意義不大環(huán)境監(jiān)測的核心價(jià)值在于“遠(yuǎn)程實(shí)時(shí)查看”和“歷史趨勢分析”所以必須讓Pico W把數(shù)據(jù)送出去。這一步涉及兩塊內(nèi)容WiFi連接的穩(wěn)定性以及選擇用哪種協(xié)議上報(bào)數(shù)據(jù)。4.1 WiFi連接與斷線重連Pico W的MicroPython固件內(nèi)置了network模塊連接WiFi的代碼很簡單。難的是“穩(wěn)定”兩個(gè)字——家用路由器凌晨重啟、廚房微波爐干擾、WiFi信號(hào)弱導(dǎo)致路由器主動(dòng)踢掉空閑設(shè)備這些問題我在實(shí)際跑的過程里都遇到過。后來我總結(jié)出一套比較穩(wěn)的WiFi連接邏輯核心思想是“連接前檢查、斷開后主動(dòng)重連、重試有間隔”import network import time def connect_wifi(ssid, password, max_retries10): wlan network.WLAN(network.STA_IF) wlan.active(True) retry_count 0 while not wlan.isconnected() and retry_count max_retries: try: wlan.connect(ssid, password) for _ in range(10): if wlan.isconnected(): break time.sleep(1) except Exception as e: print(WiFi connect error:, e) retry_count 1 time.sleep(5) if wlan.isconnected(): print(Connected:, wlan.ifconfig()) return wlan else: print(WiFi connect failed) return None測試時(shí)發(fā)現(xiàn)兩個(gè)很典型的坑第一連接WiFi后立即去連MQTT有可能失敗因?yàn)镈HCP可能還沒完成建議連接后time.sleep(2)再繼續(xù)網(wǎng)絡(luò)操作。第二路由器如果開啟了“WiFi節(jié)能模式”或“AP客戶端隔離”Pico W可能會(huì)出現(xiàn)連接極不穩(wěn)定這時(shí)候在路由器后臺(tái)關(guān)掉這些選項(xiàng)往往立竿見影。4.2 MQTT上報(bào)結(jié)構(gòu)、QoS與消息設(shè)計(jì)上報(bào)協(xié)議我選了MQTT原因很簡單生態(tài)成熟、帶寬開銷小、不依賴特定云平臺(tái)一條消息就幾十字節(jié)對(duì)Pico W的2MB Flash和不算大的RAM非常友好。它采用發(fā)布/訂閱模式Pico W作為客戶端把數(shù)據(jù)發(fā)布到一個(gè)主題topic服務(wù)器端訂閱這個(gè)主題就能收到數(shù)據(jù)。MicroPython環(huán)境下我用的MQTT庫是umqtt.simple2安裝方式mip install umqtt.simple2發(fā)送一條數(shù)據(jù)的核心邏輯如下from umqtt.simple2 import MQTTClient import ujson mqtt_client None def mqtt_init(broker, port1883, usernameNone, passwordNone): global mqtt_client client_id pico_w_env_{}.format(bytearray(6).hex()) # 動(dòng)態(tài)生成客戶端ID避免沖突 mqtt_client MQTTClient(client_id, broker, port, username, password) mqtt_client.connect() return mqtt_client def publish_data(temp, hum, press, lux): payload ujson.dumps({ temp: round(temp, 2), hum: round(hum, 2), press: round(press, 2), lux: round(lux, 1), ts: time.time() }) mqtt_client.publish(home/env/pico1, payload, qos1)關(guān)于QoS服務(wù)質(zhì)量等級(jí)我強(qiáng)烈建議在環(huán)境監(jiān)測場景下至少用QoS 1。QoS 0是“發(fā)出去就不管了”WiFi信號(hào)不好時(shí)消息可能丟失QoS 1會(huì)確保消息至少送達(dá)一次代價(jià)是多一次握手確認(rèn)。環(huán)境監(jiān)測數(shù)據(jù)雖然丟一條也能接受但長期跑下來數(shù)據(jù)斷檔會(huì)造成圖表缺口所以QoS 1是更穩(wěn)妥的選擇。消息結(jié)構(gòu)我專門設(shè)計(jì)成JSON格式并帶上了時(shí)間戳。這里有個(gè)容易被忽略的問題Pico W本身沒有RTC電池重啟后時(shí)間就回到1980年。如果你的服務(wù)器收數(shù)端需要時(shí)間戳建議在Pico W啟動(dòng)后通過NTP同步一下時(shí)間import ntptime def sync_time(): ntptime.host ntp.aliyun.com ntptime.settime()4.3 用服務(wù)器接收數(shù)據(jù)數(shù)據(jù)發(fā)給誰呢我這邊有兩個(gè)方案你可以按自己的條件選。第一個(gè)方案是如果有公網(wǎng)服務(wù)器云主機(jī)或者帶公網(wǎng)IP的樹莓派直接裝一個(gè)Mosquitto MQTT Broker讓Pico W發(fā)布到公網(wǎng)Broker服務(wù)器端訂閱即可。這是最經(jīng)典的做法但前提是你的Pico W能訪問到服務(wù)器的1883端口。第二個(gè)方案是局域網(wǎng)內(nèi)部署比如在家里一臺(tái)樹莓派上跑Mosquitto和后續(xù)可視化服務(wù)Pico W連家里WiFi數(shù)據(jù)只在局域網(wǎng)內(nèi)流轉(zhuǎn)。這個(gè)方案不依賴公網(wǎng)穩(wěn)定性好很多如果要做長期環(huán)境監(jiān)測強(qiáng)烈推薦先局域網(wǎng)內(nèi)跑通再考慮公網(wǎng)暴露的問題。安裝Mosquittosudo apt update sudo apt install mosquitto mosquitto-clients sudo systemctl enable mosquitto默認(rèn)配置下Mosquitto只監(jiān)聽本機(jī)需要改一下配置文件讓局域網(wǎng)內(nèi)設(shè)備也能連上來# /etc/mosquitto/conf.d/default.conf listener 1883 0.0.0.0 allow_anonymous true注意如果Mosquitto暴露在公網(wǎng)上且allow_anonymous true任何人都可以向你的Broker發(fā)布消息容易被惡意利用。如果必須公網(wǎng)部署務(wù)必開啟用戶名密碼認(rèn)證并限制端口訪問來源。訂閱端可以先在終端里驗(yàn)證數(shù)據(jù)是否正常到達(dá)mosquitto_sub -h localhost -t home/env/pico1看到一條條JSON數(shù)據(jù)刷屏就說明數(shù)據(jù)通道已經(jīng)打通了。5. 可視化與告警數(shù)據(jù)不再躺在終端里數(shù)據(jù)通了下一步就是讓人能“看得舒服、用得省心”。我自己搭了一套“Node-RED InfluxDB Grafana”的組合其中Node-RED負(fù)責(zé)接收MQTT消息、寫入數(shù)據(jù)庫和觸發(fā)告警InfluxDB存時(shí)序數(shù)據(jù)Grafana負(fù)責(zé)展示儀表盤。5.1 Node-RED InfluxDB Grafana方案這套組合各自分工很清晰Node-RED是一個(gè)可視化流程編排工具用節(jié)點(diǎn)拖動(dòng)就能實(shí)現(xiàn)MQTT訂閱、數(shù)據(jù)解析、數(shù)據(jù)庫寫入等邏輯非常適合快速搭建IoT后端不用寫太多代碼。InfluxDB是專門的時(shí)序數(shù)據(jù)庫針對(duì)“按時(shí)間索引”的數(shù)據(jù)做了大量優(yōu)化比用MySQL存環(huán)境數(shù)據(jù)高效得多。Grafana是通用的可視化工具能連InfluxDB做各種折線圖、儀表盤還支持自定義告警規(guī)則。安裝順序建議先裝InfluxDB再裝Grafana最后裝Node-RED。Node-RED安裝MQTT節(jié)點(diǎn)node-red-contrib-mqtt和InfluxDB節(jié)點(diǎn)node-red-contrib-influxdb之后流程邏輯非常簡單MQTT節(jié)點(diǎn)訂閱home/env/pico1解析JSON載荷映射成InfluxDB的measurement和field再寫進(jìn)數(shù)據(jù)庫。整個(gè)過程拉節(jié)點(diǎn)連線就行不用寫一行代碼。InfluxDB里建議的存儲(chǔ)格式measurement: env tags: devicepico1, locationbalcony fields: temp25.4, hum60.2, press1013.2, lux4500這樣設(shè)計(jì)的好處是后續(xù)可以有多個(gè)環(huán)境監(jiān)測節(jié)點(diǎn)比如室內(nèi)pico1、陽臺(tái)pico2、車庫pico3用tags區(qū)分設(shè)備位置查詢時(shí)非常方便。5.2 告警規(guī)則溫濕度超限提醒數(shù)據(jù)可視化只解決了“看”的問題真正的價(jià)值在“發(fā)現(xiàn)問題主動(dòng)通知”。比如夏天檢測到室內(nèi)溫度超過30度或者陽臺(tái)濕度長期超過85%容易滋生霉菌這時(shí)候就需要告警。Grafana的Alert規(guī)則設(shè)置得很直觀可以針對(duì)某個(gè)查詢結(jié)果設(shè)置閾值規(guī)則比如temp 30持續(xù)5分鐘就觸發(fā)告警。告警通知渠道我推薦先接釘釘/企業(yè)微信機(jī)器人或者直接用Telegram Bot都是免費(fèi)且配置容易的方式。Node-RED方案也可以做告警而且更靈活比如可以判斷“溫度連續(xù)3次超過30度才告警”避免瞬時(shí)波動(dòng)誤報(bào)// Node-RED function節(jié)點(diǎn) const threshold 30; const maxCount 3; // 用context存儲(chǔ)連續(xù)超限次數(shù) let overCount context.get(overCount) || 0; if (msg.payload.temp threshold) { overCount 1; context.set(overCount, overCount); if (overCount maxCount) { msg.payload 溫度連續(xù)超過{}度{}次當(dāng)前值: {}度.format(threshold, maxCount, msg.payload.temp); return msg; } } else { context.set(overCount, 0); } return null;這種連續(xù)判斷邏輯遠(yuǎn)比“單次超限即告警”可靠至少能過濾掉大半誤報(bào)。6. 低功耗與長期運(yùn)行改造環(huán)境監(jiān)測節(jié)點(diǎn)如果要長期運(yùn)行電源管理和設(shè)備穩(wěn)定是繞不開的兩個(gè)話題。一個(gè)插著USB電源的Pico W當(dāng)然能一直跑但如果你想把它放到陽臺(tái)、花園、地下室或者因?yàn)椴季€不方便不想用電源適配器那就得認(rèn)真考慮低功耗方案。6.1 電池供電與省電模式Pico W在外接電池時(shí)推薦工作電壓范圍是3.6V-5.5V如果從VSYS引腳接入。最常見的電池方案有兩類一類是用普通18650鋰電加一個(gè)帶充放電保護(hù)的模塊模塊輸出穩(wěn)定在5V或3.3V可以直接供電。好處是電路簡單電池容量大2000-3500mAh缺點(diǎn)是體積偏大。另一類是用LiPo電池直接接STANDBY引腳但Pico W沒有板載充電管理電路需要額外接一個(gè)充電模塊。這塊要注意的是LiPo電池如果過放很容易損壞務(wù)必購買帶保護(hù)板的LiPo電芯。省電策略方面Pico W的MicroPython支持machine.lightsleep()和machine.deepsleep()。對(duì)于環(huán)境監(jiān)測場景每5分鐘采集一次數(shù)據(jù)并上報(bào)其余時(shí)間深睡眠是標(biāo)準(zhǔn)的低功耗運(yùn)行模式import machine import time def deep_sleep_mode(seconds): # 關(guān)閉WiFi wlan network.WLAN(network.STA_IF) wlan.active(False) # 深睡眠前確保數(shù)據(jù)已發(fā)送完畢 time.sleep(1) machine.deepsleep(seconds * 1000)實(shí)測下來Pico W深睡眠電流在幾十微安級(jí)別加上傳感器的靜態(tài)功耗整機(jī)在深睡期間的電流大概100微安以內(nèi)。如果每5分鐘喚醒一次喚醒期間處理數(shù)據(jù)加WiFi連接上報(bào)大約需要10秒一個(gè)2000mAh的18650電池理論上可以跑非常久。我實(shí)際測試的節(jié)點(diǎn)放了接近半年電池電壓還有3.5V以上。不過要注意兩個(gè)深睡眠的細(xì)節(jié)深睡眠被喚醒后程序會(huì)從頭開始執(zhí)行所以代碼需要設(shè)計(jì)成“開機(jī)先判斷是否該采集、是否該上報(bào)”而不是無腦執(zhí)行采集。Pico W的machine.deepsleep()喚醒后WiFi連接需要重新建立這會(huì)導(dǎo)致喚醒期間的網(wǎng)絡(luò)操作耗時(shí)變長。為了穩(wěn)定建議在喚醒后先同步一次時(shí)間再做操作。下面是完整的主循環(huán)邏輯示例def main(): # 檢查是否需要執(zhí)行采集任務(wù) # 用RTC內(nèi)存保存上次采集時(shí)間避免每次喚醒都采集 rtc machine.RTC() try: last_wake rtc.memory() if last_wake: # 距離上次發(fā)送不足300秒則直接深睡 if time.time() - int(last_wake) 300: machine.deepsleep(300 * 1000) except: pass # 正式執(zhí)行采集上報(bào) connect_wifi(SSID, PASSWORD) sync_time() data read_all_sensors() mqtt_init(BROKER) publish_data(*data) rtc.memory(str(time.time())) # 進(jìn)入下一輪深睡 machine.deepsleep(300 * 1000) main()6.2 外殼與戶外部署要點(diǎn)如果把節(jié)點(diǎn)放在戶外外殼和防水就是必須考慮的問題。我的做法是買一個(gè)86型防水接線盒體積不大剛好能塞下一塊Pico W、傳感器和一塊18650電池。在盒子的側(cè)面打孔穿孔引出傳感器探頭然后用玻璃膠密封好孔洞縫隙。傳感器探頭的固定也有講究SHT30這類溫濕度傳感器不能直接貼在盒子內(nèi)壁上否則盒子內(nèi)部發(fā)熱會(huì)影響讀數(shù)。最佳做法是讓傳感器懸空可以用杜邦線引出來避免熱量傳導(dǎo)如果是戶外還需要給傳感器加一個(gè)防輻射罩不然在夏天的直射陽光下傳感器測出來的溫度會(huì)比真實(shí)空氣溫度高好幾度。還有一個(gè)小細(xì)節(jié)戶外節(jié)點(diǎn)如果使用了鋰電池加降壓模塊要考慮耐溫范圍。聚合物鋰電池在高低溫環(huán)境下性能都會(huì)下降特別是夏天戶外暴曬后盒子內(nèi)部溫度可能到50-60度電池會(huì)有一定安全風(fēng)險(xiǎn)。條件允許的話盡量選擇耐溫范圍更寬的鋰亞電池或磷酸鐵鋰電池。7. 常見問題與排查實(shí)錄長期運(yùn)行環(huán)境監(jiān)測節(jié)點(diǎn)會(huì)遇到各種千奇百怪的問題這部分我把實(shí)際踩過的坑和排查思路整理成一個(gè)速查表希望幫你省點(diǎn)時(shí)間。7.1 WiFi連不上與MQTT掉線WiFi連接不上是我最初遇到最多的問題大概率圍繞幾個(gè)原因固件版本不對(duì)、SSID密碼錯(cuò)誤、路由器限制連接數(shù)或者Pico W的WiFi固件在特定信道下兼容性問題。實(shí)測中如果Pico W連不上WiFi而且日志一直在刷assert or timeout可以嘗試在network.WLAN(network.STA_IF)之后顯式設(shè)置wlan.config(pm0xa11140)關(guān)閉省電模式這能解決一部分WiFi不穩(wěn)定的問題代價(jià)是功耗略微上升。MQTT掉線就更常見了。我總結(jié)下來主要分兩類一是Broker地址或端口不對(duì)或者服務(wù)器防火墻擋了1883端口二是MQTT客戶端在長時(shí)間空閑后Broker主動(dòng)斷開連接這是MQTT協(xié)議本身的心跳機(jī)制導(dǎo)致的。解決方法是設(shè)置更短的keepalive或者在客戶端里做“定時(shí)嘗試重連”邏輯def mqtt_loop(): while True: try: publish_data(...) time.sleep(300) except OSError as e: print(MQTT error:, e) # 重連并稍等 reconnect_mqtt() time.sleep(10)7.2 傳感器讀數(shù)異常速查表異常表現(xiàn)可能原因排查思路讀數(shù)固定不變I2C總線死鎖、傳感器供電異常拔掉傳感器重新上電檢查I2C地址是否沖突用 i2c.scan() 掃描確認(rèn)設(shè)備在線濕度讀數(shù)偶爾跳變傳感器污染、干擾清潔傳感器探頭在代碼中加滑動(dòng)窗口濾波減少采樣頻率溫度明顯偏高盒子散熱、傳感器貼著熱源傳感器懸空增加防輻射罩排查電源模塊發(fā)熱氣壓讀數(shù)差很多高度未校準(zhǔn)、傳感器型號(hào)差異確認(rèn)使用的庫讀取的單位是hPa還是Pa用當(dāng)?shù)貧庀笳緮?shù)據(jù)校準(zhǔn)高度偏移光照讀數(shù)忽高忽低BH1750測量模式不對(duì)確認(rèn)使用連續(xù)測量模式而不是一次性測量模式檢查是否被遮擋還有一個(gè)非常容易被忽略的問題傳感器的I2C總線在長線上傳輸?shù)臅r(shí)候信號(hào)質(zhì)量會(huì)變差。如果傳感器與Pico W距離超過20cm建議用雙絞線或者屏蔽線并在I2C線上加上拉電阻Pico W內(nèi)部已經(jīng)啟用上拉但長線時(shí)建議外加4.7kΩ上拉電阻。7.3 MicroPython環(huán)境的幾個(gè)隱藏坑MicroPython和桌面Python不是完全一樣的有幾個(gè)坑我想單獨(dú)拿出來說因?yàn)樗鼈兛恿宋也簧贂r(shí)間第一個(gè)坑是浮點(diǎn)數(shù)精度。MicroPython在RP2040上使用單精度浮點(diǎn)FPU這意味著0.1 0.2的結(jié)果和桌面Python不同大約只能精確到7位有效數(shù)字。對(duì)溫濕度這種只需要兩位小數(shù)精度的數(shù)據(jù)完全夠用但如果計(jì)算精確的氣壓海拔換算需要留意誤差。第二個(gè)坑是字符串格式化。MicroPython對(duì)str.format()的兼容性比較有限有些不常用的格式化寫法可能直接拋異常。我在代碼里盡量用{}.format()簡單形式關(guān)鍵路徑甚至直接用%格式化更穩(wěn)妥。第三個(gè)坑是文件系統(tǒng)損壞。Pico W的Flash文件系統(tǒng)如果突然斷電或拔出USB時(shí)正在寫入可能會(huì)出現(xiàn)異常造成板子無法掛載。遇到這種情況把BOOTSEL按住重新刷一遍固件就能恢復(fù)但板子上的腳本文件會(huì)丟失所以重要代碼一定要在電腦里備份。8. 從原型到長期可靠運(yùn)行的一些個(gè)人體會(huì)如果你跟著前面的內(nèi)容做了一套能跑起來的環(huán)境監(jiān)測節(jié)點(diǎn)那恭喜你已經(jīng)超過大多數(shù)只看教程不實(shí)踐的人了。但我想再分享幾點(diǎn)長期運(yùn)行過程中沉淀下來的真實(shí)體會(huì)這些內(nèi)容在官方文檔和教程里基本找不到。第一先從最小系統(tǒng)開始不要一上來就接五個(gè)傳感器。先只接一個(gè)SHT30跑通“讀取數(shù)據(jù) - 上報(bào)MQTT - 服務(wù)器收到消息”然后再逐步加傳感器加功能。這個(gè)順序能幫你快速定位問題出在硬件還是軟件、出在采集還是傳輸環(huán)節(jié)。第二日志記錄比想象中重要得多。Pico W跑在無人值守的環(huán)境中出問題時(shí)你不在現(xiàn)場唯一的線索就是日志。建議把啟動(dòng)時(shí)間、WiFi連接耗時(shí)、傳感器讀取耗時(shí)、MQTT發(fā)布結(jié)果這些都打印出來服務(wù)器端也可以定期存儲(chǔ)這些日志。我最后能做到遠(yuǎn)程排查很多問題靠的就是日志。第三環(huán)境監(jiān)測是一個(gè)“長跑”項(xiàng)目前兩周的新鮮感過去后真正考驗(yàn)?zāi)愕氖菙?shù)據(jù)長期穩(wěn)定下來后的維護(hù)能力。定期檢查電池電壓、定期校準(zhǔn)傳感器、定期清理灰塵這些瑣碎的工作才是系統(tǒng)長期可靠運(yùn)行的關(guān)鍵。我在實(shí)際運(yùn)維中發(fā)現(xiàn)每季度校準(zhǔn)一次SHT30和BMP280數(shù)據(jù)偏差可以控制在很小范圍內(nèi)。最后再分享一個(gè)小技巧Pico W板子上的LED引腳LED可以用MicroPython直接控制我把它當(dāng)成了“心跳指示燈”——程序正常運(yùn)行時(shí)LED慢閃報(bào)錯(cuò)時(shí)LED快閃?,F(xiàn)場排查時(shí)不用連電腦看一眼LED狀態(tài)就知道節(jié)點(diǎn)是否活著這個(gè)細(xì)節(jié)在維護(hù)多個(gè)節(jié)點(diǎn)的時(shí)候特別實(shí)用。希望這篇內(nèi)容能幫你順利搭出自己的環(huán)境監(jiān)測系統(tǒng)。如果過程中有任何沒提到的坑歡迎留言一起討論畢竟這類項(xiàng)目最有趣的地方就是在踩坑和填坑之間不斷接近“穩(wěn)定運(yùn)行”這四個(gè)字。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99久在线精品99re8| 丁香网五月天| 婷婷五月丁香99| 一起草AV| 丁香五月网在线观看| 丁香五月电影| 初夜av| 99免费| 亚洲狠狠婷婷综合久久久| 99久视频| 五月丁香龟婷婷| 香蕉AV福利精品导航| 人人澡天天色天天做| 超碰国产在线| 五月婷综合网| 91色综合| 亚洲精品一二三| 国产精品久久久60086| 91打屁股免费看| 五月丁香色综合| 婷婷丁香五另类网站| 成人 在线观看国产| 五月天激情视频五月天| 99亚洲欧洲| 五月色婷婷中文字幕| 26uuu欧美| 丁香五月日啪| 色色六月| www色五月| 欧美一级操逼视频| 久草性爱| 亚洲精品字幕在线观看| 五月丁香六月情婷婷久久| 激情五月婷| 超碰色色综合| 亚洲五月综合色播| 色婷婷最爱五月| 亚洲无AV在线中文字幕| 婷婷五月亚洲一本在线丁香| 天天色综合网吨吧| 性生活视频98791| 99精品偷自拍| 色五月婷婷网| 综合激情五月丁香| 日韩av干| 五月丁香色婷婷基地| 国产全是老熟女太爽了| www.婷婷五月天.com| 小泽玛利亚视频一区二区| 九热...av| 六月丁香婷婷色狠狠久久| 久久久激情| 91热er| 狼友视频在线观看18| 97超碰9久热婷婷热| 日日噜噜夜夜狠狠久久丁香六月| 婷婷五月天精品| 操逼福利视频| 五月天婷婷在线观看| 色情五月天婷婷| 婷婷五月天va| 久久婷婷五月天激情唯美| 九九99偷拍视频| 在线播放人妻| 97在线视频 欧美| 人人爱国产| 欧美色色色色色色| 日本色色色| 久久久人妻门| 色五月婷婷在线| 日日夜夜爽| 五月婷婷影视| 色婷婷香蕉丁丁网| 精品99视频| 国产色色小草视频| 九九丁香社区欧美激情| www.久久久久久久久久久| 色综合av超碰| 色亚洲无码| 婷婷综合仓库中文| 碰超亚洲| 99在线精品免费视频| 丁香五月激情综合| …亚洲黄色在线播放日韩、av中文a…| 天堂综合久| 色婷婷久久综合中文久久一本| 人妻久久久久久久久妻久久久久久久久| 九月婷婷人人操人人舔人人爱| 色五月婷婷丁香五月| 日日.c| 人人干av| 丁香婷婷综合喷| 婷婷久久婷婷| 丁香香蕉婷婷| 天天操夜夜夜夜爽| 丁香婷婷激情六月五月开心| 亚洲国产精品VA在线看黑人| 网站免费一站二站| 影音先锋自拍网| 在线日韩av| WWW免费视频碰碰碰碰| 色婷婷五月在线| 99热欧美| 五月婷婷在线免费观看 | 天天肏高清在线| 9久久精品| 五月丁香色综合| 久久久久久久久月丁| 97碰碰人人视频| 婷婷午夜激情| 日韩精品二三区| PORNY九色9l自拍视频成人| 婷婷丁香亚洲五月天| 丁香五月天成人| 婷婷情色五月天| 亚洲第一综合| 99色热视频| 婷婷色五月激情| 色婷婷4| 米奇影视资源777狠狠色婷婷五月天激情网| 天天综合影院| 丁香六月综合| 日韩无码专区| 激情婷婷五月女| 久1色色| 大陆肏屄视频| 日本人人超碰| 亚洲中文无码成人| 激情AV| 婷婷五月色播天| 亚洲成人AV在线播放| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 激情婷婷五月色| 婷婷五月花| 日日夜夜狠狠| 伦乱美欧| 99这里只有精品| 9热在线观看| 激情黄色五月天| 国产精品视频免费看| 久久久久久五月天| 天天日狠狠| 五月天激情小说| 久久99国产综合精品免费| 久婷视频| 婷婷开心五月| 婷婷综合在线视频| 97操碰碰无码视频| 99丁香五月婷| 婷婷六月偷拍| 深爱激情五月婷婷| 人人操AV| 五月婷婷久久激情| 日本欧美成人片AAAA| 9操在线| 人人摸人人摸| 久久久久网站| 五月激情六月宗合| 激情五月深爱五月| 天天色综合色| 五月婷A V在线| 丁香五月婷婷呀| 婷婷久久五月| 婷婷五月激情四月综合 | 五月婷婷综合在线| 婷婷深爱五月天在线| 狠狠搞狠狠操| 深爱激情四射| 超碰一区二区| 99久久精品国产色欲| 99ri视频| 激情五月婷婷综合视频| 国产午夜精品一区二区三区四区| 五月天婷婷青青草| 久99精品视频| 婷婷五月电影院| 色五月激情五月| 色综合网上班开心婷婷久久| 亚洲精品白浆高清久久久久久| 婷婷激情五月吧| 久机视频这只有精品| 色五月噜噜| 五月天停停成人网| 婷婷久久内射| 五月婷婷色播| 丁香五月天综合网| 成人电影在线免费试看| 色婷五月天| 五月天丁香六月综合| 五月丁香色综合| 激情涩涩网| 69精品人人人人| 婷婷五亚洲| 区啪精品| a久久| 久久五月婷婷开心网| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 99热这里只有精品无码| 久久婷婷六月综合综合| 精品无码久久久久久久久| 激情五月成年| 国产免费一区二区三州老师F1F1| 六月欧美综合色情| 中文在线成人| 九九热精品| 丁香五月天激情综合网| 天天综合五月天| 色99网| 综合狠狠干| 狠狠狠狠青草| 99啪啪| 天天日夜夜操五月| 五月天狠狠网站| 黄桃AV无码免费一区二区三区 | 97干在线视频| 久9免费视频| 免费视频舔| 69热91天堂| 久久色情| 免费在线观看欧美激情xx小视频| 伊人成人宗合网| 亚洲区1| 26uuu欧美日本| 五月天婷婷影院影院| 婷婷色在线播放| 97天堂| 丁香久久| 激情婷婷丁香色五月| 亚洲人妻Av| 大战熟女丰满人妻AV| 天天操婷婷| 九九综合精品| 激情小说五月天| 欧美日韩成人综合9| 色综合区| 日日干日日| ss99热| 色色丁香五月天| 97色精品视频| AAA级久久久精品| 另类激情五月| 丁香五月欧美成人| 九色无码| 91青娱乐青青草| 五月丁香激情在线| 日韩精品色| 亚洲中文丁香| 丁香五月花婷婷开心| 99婷婷五月天激情| 色五月婷婷天堂| 风流少妇A片一区二区蜜桃| 色五月涩涩婷婷| 在线99色| 丁香婷婷婷五月综合色情| 亚洲亚洲人成综合网络| 国产日韩欧美| 91超级碰| 丁香五月av| 日韩aaaaa| 丁香五月影视| 婷婷情色五月天| 99热天堂| 久久婷婷色| 俺去也五月天| 五月天激情国产综合婷婷婷| 色噜噜狠狠色综无码久久合欧美 | 成人九九视频| 久久色五月天激情小说| 丁香婷婷色五月激情综合| 99综合99| 99热这里只有精品2| 激情婷婷丁香色五月| 爱草视频在线| 激情六月婷| 丁香丝袜五月| 五月激情影院| 五月丁香激情啪啪| 97人人草| 五月丁香婷婷欧美色图视频五月丁香777电影| 丁香五月久久| 在线综合亚洲欧美65| 九九精品丁香花| 久久激情婷婷| 丁香五月激情啪啪| 五月丁香啪啪激情| 思思热视频在线观看| 激情丁香图片| 色色色色色色色色综合网| 熟女人妻一区二区三区免费看| 丁香五月婷婷激情中文| 久久艹网| 五月天开心婷婷久久| 五月播播| 狠狠色综合图片| 丁香五月婷婷社区| 久香草视频在线观看| 激情五月激情综合俺也去婷婷小说| 久月婷婷| 久久网思思| 婷婷五月色情天| 中文成人在线| 极品人妻XXXXOOOO| 色你久久| 欧美综合婷婷网| 99热99热99热99热| 天天日,天天干,天天操| 五月丁香综合精品欧美| 亚洲综合另类| 在线五月色播| 激情五月综合亚洲另类| 日韩少妇内射免费播放| 92国产福利| 婷香五月网在线| 蜜臀嫩草| 丁香六月婷婷色XXXXX| 丁香五月婷婷激情网| 色99色| 三日本无码| 啪啪色区| Www.婷婷五月| 日韩在线9| 丰满少妇乱A片无码| 色九九九综合| 这里只有精品日韩精品| 免费播放片大片| 嫩草AV久久伊人妇女超级A| 一区=区操屄高清大全av| 丁香激情网| 欧美成人精品一区二区| 五月丁香成人网| 色婷亚洲| 色五月婷激情| 激情五月综合网| 五月婷视频在线观看| 丁香婷婷色五月| 激情五月少妇| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 能看的AV网站| 亚洲无码色色| 欧美色久| 丁香六月综合| 99视频日韩| 九月丁香婷婷综合激情| 亚州操操| 欧美日本高清视频99| 天天婷婷综合| 婷婷午夜| 伊人激情综合网| 国产成人+亚洲+欧洲| 激情婷婷五月天| 九九九九九九综合| 狠狠干在线| 国产精产国品一二三在观看| 婷婷五月天另类视频| 五月婷婷熟女| 色呦呦美女| 99热这里只有精品2| 疯狂做受XXXX高潮A片动画| 色三级色三级| 国产91视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 超碰免费人人肏| 婷色人人狠| 天天干天天做| 欧美三级黄色片久久| 激情99在线视频| 日本精品人妻无码77777| 色色综合无码| 99热精品在线观看| 婷婷五月欧美综合| 黄桃AV无码免费一区二区三区| 婷婷第六色| 久久久WWW| 色七七九九| 色色无码| 五月开心婷婷网| 亚洲成人一区| 丁香五月综合色婷婷| 五月丁香黄色视频| 97丁香五月天| 久草x色在线观看99| 激情狠狠丁香月| 欧美69久成人做爰视频| Www,五月天| 久热爱大香蕉在线蜜臀悦色 | 日本色色影片| 五月激情六月综合| 91久久婷婷| www99热| 狠狠干无码| 快乐激情五月色婷婷| 26uuu欧美日本| 丁香香五月激情免费视频| 激情五月综合网| 人人玩人人橾| Av狠狠色丁香婷| 成人色色视频| 色噜噜狠狠色综合网| 亚洲av日韩无码| 无码人妻电影| 日本少妇裸体做爰高潮片| 婷婷色丁香五月| 婷婷性爱视频在线| 五月天啪啪啪| 成人精品99| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | 深爱五月激情五月| 最新日本A片| 日本欧美成人片AAAA| 五月激情婷婷开心| 狠狠色噜噜狠狠狠狠综合| 五月丁香六月成人| 久久思思精品| 91操碰| 九九99久久精品| 色婷婷AV久久久久久久| 久久XX| 超碰日韩成人| 国产成人99久久亚洲综合精品| 国产探花AV在线| 丁香五月天天| www.9操| 丁香婷婷情色五月天| 一起草AV| 五月丁香婷婷啪啪网| 九九無妻| 色五月婷婷在线| 成人五月天在线观看| 日本久久色| 久久女人天堂| 色爱五月天| 日本va欧美va欧美va精品| 99视频综合| 婷婷91| 性色视频| 久久国产精品乱子伦_靑青草…| 大香人妻| ..真实国产乱子伦毛片| 欧美婷婷综合| 久久婷狠狠色| 亚洲无码色色| 五月天基地| 天天玩夜夜操天天爽| 97色综合| 国产av一区二区三区| 综合色99| 99re视频在线播放| 久久人人九| 丁香六月视频免费观看| 中文无码精品一区二区三区| 毛片网站谁有| 丁香九月婷| 涩 五月 婷婷 狠狠| 国产午夜伦鲁鲁| 99免费| 天天干电影| 九九热视频免费| 天天粽合合合合| 我爱大香蕉| 99热全是精品| 丁香久久九九99| 五月丁香婷婷五月色| 久热这里| 97久久超碰| 涩五月婷婷| 97干视频在线| 91干视频| 亚洲人成色A777777在线观看| 五月丁香六月综合基地| 五月天婷婷在线播放免费| 婷婷六月天精品| 天天狠天天狠| 深爱五月天婷综合| 色婷婷丁香AV综合| 人人操人人爱丁香五月| 热思思| 这里只有精品网站| 夜夜躁爽日日| 久99久在线| 黄网免费看| 无码人妻电影| 91精品综合久久久久久五月丁香| 九九亚洲| 激情婷婷狠狠干综合| 丰满少妇猛烈A片免费看观看| 久久小视频| 欧美槡BBBB槡BBB少妇| 亚洲妇女熟BBW| 久久精品99国产精品日本| 粉嫩AV久久一区二区三区| 99国产精品久久久久久久久久久| 东京热五月婷婷| 中文字幕丰满乱孑伦无码专区 | 91热在线| 亚洲第一色色色色| 天天色域综合网| 这里只有精彩视频| 婷婷九月| 欧美成人猛片AAAAAAA| 国产免费性爱| 4399高清无码视频| 久久这里只有精彩| 五月丁香六月婷| 色婷婷久久综合| 亚洲成人综合在线| 99热在线爱| 2025天天爽天天摸| 日本熟女一区二区| 2017狠狠干| 日本欧美成人片AAAA| 成人做爰A片免费看网站找不到了| 丁香五月影| 久热久操久热久草国产91| 伊人婷婷综合| 成人欧美Va| www,天天干| 思思热这里只有精品| 国产在线激情视频| 人人操插| 5月婷婷五月天| 丁香九月综合| 亚洲综合色成丁香五月色| 婷婷天堂视频| 午夜国产精品AV在线播放| 色婷婷日本| 久草婷婷| 成人五月天丁香| 一二三区视频韩国| 色五月激情网| 99热www| 久久久91| 天天摸天天做天天爱天天爽| 色色色综合网| 亚洲操精品| 亚洲、热| 日韩成人网址| 五月丁香无码| 丁香五月天啪啪a日本| 婷婷亚洲综合| 色色五月天婷婷丁香| 激情99。| 99网| 五月婷婷丁香大陆免费| 天天色,天天日,天天做| 少妇真实被内射视频三四区| 婷婷色九月| 99热在线观看精品免费| 国产成人精品123区免费视频| 国产AV不卡福利| 午夜激情五月| 风流少妇A片一区二区蜜桃| 狠狠色九月| 亚洲综合在线伊人婷| 人人摸人人干人人做| 五月婷婷五月天| 97在线观看| 色婷婷视频| 99国产精品久久久久久久久久久 | 婷婷综合亚洲| 影音先锋天天日| 甈你aaaaa| 天天影院色| 六月丁香色色| 亚洲成人中心| 亚洲色人妻| 99热国产这里只有精品| 婷婷五月丁香四射| 久久99成人性爱高清视频| 双性美人被调教到喷水A片| 亚洲操人| 丁香六月激情| 丁香六月AV| 久热9| 婷婷激情在线| 婷婷五月天激情小说| 99久久五月天| 十一月婷婷激情四射| 天天日P天天射P| 五月丁香六月激情综合在线| 日韩黄色影院| 久久久久人妻中文| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 色婷婷五月在线| 婷婷五月丁香五月| 曰曰久久| 色偷偷五月天| 深爱五月激情综合| 亚洲精品又粗又大又爽A片| 再綫Av免费視品| 激情第四色| 影音先锋毛片网站| 亚洲婷婷91丁香| 日韩av网站在线观看| 精品久久这里热66| 激情九月综合| AV九九| 婷婷丁香六月激情综合| 婷婷丁香成人色综合| 色婷婷AV久久久久久久| 五月天丁香成人社| 26uuu成人网| 天天日天天摸天天| 黄色短视频在线观看| 六月激情久久| 亚洲操操| 五月天婷婷丁香成人网| 五月丁香六月婷婷啪啪| 色玖玖综合网| 欧美经典片免费观看大全| 天天成人五月天| 丁香婷婷激情四射五月| 青青草原亚洲天堂| 99久久99热| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | caop在线视频| 色五月激情五月开心五月| 在线婷婷| 国产美女无遮挡裸体毛片A片| 91久久久久久久久久久| 丁香五月综合| 九九成人精品| 九九久99免费视频| 色五月婷婷基地| 亚洲综合网激情小说| 久草x色在线观看99| 99在线亚洲| 色婷婷亚洲综合av| 色香欲综合| 婷婷五月丁香综合人妻| 九九香蕉网| 四色五月婷婷| jiZZdr| 能直接看的av网站| 亚洲五月天天| 91精品久久久久久久久| 高清一区二区三区日本久| 俺去也综合| 2020久久婷婷五月| 七七九色| 日本44久久在线| 丁香五月成人| 色婷婷五月天偷拍| 天天橾日日橾夜夜橾17| 久久久18| 久久五月情| 欧美成人精品三区综合A片| 亚洲色婷婷五月天| 激情综合亚洲色婷婷五月| 开心五月综合激情网| 人碰人人人玩91| 丁香五月在线播放| 中文字幕不卡+婷婷五月| 五月天婷婷永久免费视频| 日韩无码专区| 色综合久久中文| 99@久久@99精品视频| 色色亚洲| 激情AV| 在线视频激情网站| 自拍盗摄 另类| 天天插天天很| www.av视频xx999.com| 婷婷午夜综合| 懂色av蜜臀av粉嫩av永陈冠希| AA片在线观看视频在线播放| 97精品综合久久| 丁香婷婷六月天| 久热免费| 极品人妻VideOssS人妻| 久久这里有精品视频| 色 丁香婷婷| 色五月开心婷婷| 婷婷性爱网| 久久大香蕉视频| 欧美男女婷婷| 激情五月天色色色| 色婷婷另类| 婷婷影院A成人| 一本大道熟女人妻中文字幕在线 | 国产精品爽爽久久久久久| 婷婷五月伦理网站| 成人电影丁香六月天| 五月丁香六月婷婷综合网| 亚洲激情淫网| 亚洲激情丁香五月基地| 呦呦v线| 五月丁香婷婷无码A∨| 好好干Av| 五月婷婷综合网在线播放| 99在线观看亚洲| 亚洲精品色色| 丁香婷婷免费| 中文网av| 成年人丁香五月| 狠狠色五月| 五月丁香六月香香蕉| 激情九月婷婷| 丁香五月成人| 无码视频国内精品久久久| yazhoujiqingav| 碰碰碰97国产| 久久九九re热| 另类激情四射| 色五月天影视| 色噜噜狠狠色综合日日免费| 久久草婷婷丁香网站| 操日本人妻视频| 天天成人丁香美女AV| 精品色色色| 99综合| 九九色人| 日本三级中国三级99人妇网站| 欧美99热| 亚洲亚洲人成综合网络| 999热视频精品99免费在线| 26uuu成人网| www.婷婷.com| 五月天婷五月天综合网在线观| 久香草视频在线观看| 天天五月天综合网址| 99日本在线| 国产伦亲子伦亲子视频观看| 99九九综合久久九九| 色五月婷婷91| 五月丁香网视频| 中文字幕簧片| 性色婷婷| 99热99艹在线观看| www.97干视频| 人妻乱码久久久| 天天狠天天叉| 成AV人片一区二区三区久久| 五月丁香六月婷婷的女人| 超碰人人操人人干| 另类综合网| 91无码视频| 无码视频国内精品久久久| 综合色影院| 狠狠狠狠狠狠狠狠草| 综合久久99| 日日夜夜干| 日韩AV一区二区三区| 久久永久网址| 五月婷婷丁香婷婷| 国产成人精品一区二区三区视频| 六月激情婷婷综合| 天堂婷婷丁香六月网| 久久婷婷色| 啪啪视频99| 深爱激情网五月| 丁香五月激情婷婷婷婷在线观看| 激情婷婷五月天| 大香蕉伊人爱在线| 久99热| 九九性视频| 激情床戏| 色播五月婷婷| 亚洲岛国电影| 九九九九九无码| 五月天丁香成人| 99在线免费视频播放| 丁香婷婷五月天色综合| 欧洲亚洲免费视频9 | 五月丁香激情四射| 五月婷婷片| 97热91| 久久最新色色色| 日韩久久色| 99热 在线播放| 青青草原福利在线| 国产午夜成人免费看片无遮挡| www.9797国产| 欧洲激情精品婷婷| 六月激情网| 99ri精品在线| 日本婷婷丁香五月| 国产精品爽爽久久久久久| 国产精品A成V人在线播放| 色五月激情| 热久视频| 午夜无码熟熟妇丰满人妻| 91精品久久久久久久| 成人综合伍月天| 日本91在线播放| 在线视频色五月| 久色激情| 91碰操| 丁香五月激情六月综合| 久久久久9| 日韩欧洲亚洲| 激情五月久久| 亚洲性爱AV在线| 播五月婷婷开心| 六月丁香av| 色www.con| 六月综合在线| 国产精品黑丝| 人人干人人看| 2017人人操| 欧美天堂久久| 丁香五月激情啪啪| 伊人久久婷婷| 天天综合五月| 亚洲超碰中文字幕| 天天骑天天操| 九九热视频99| 激情五月婷婷五月| 久久婷婷六月综合资源| 色网五月婷婷| 5月婷婷6月六月丁香| 日韩伊人大香蕉| 日韩 中文 欧美| 久久激情综合| 少妇高潮呻吟A片免费看软件| 婷婷五月天在线观看av| 色无婷婷| 久久久久人妻| 五月丁香婷婷在线| 人妻少妇色综合| 亚洲五月天天| 亚洲成人av中文| 丁香五月激情网| 亚洲五月天,激情视频| 蜜桃人妻无码AV天堂三区 | 欧美性爱中文字幕| 久久综合婷婷| 久久人妻超碰一区| www色五月| 99视频内射三四| 中文毛片无遮挡高潮免费| 女力报到正好爱上你| 97色在线观看视频| 五月天开心网| 深爱激情六月天| 九九碰九九爱97| 99视频在线观看地址| 亚洲成人婷婷| 国产超碰在线| 大香蕉婷婷婷| 五月天停婷基地| 久一网站| 久热这里只有| 婷婷五月激情基地| 五月天操逼激情| 日本狠狠干| 五月丁香啪啪网| 五月天激情小说| 女高怪谈在线观看| 开心六月丁香五月婷婷| 天天透天天干| 欧美交换配乱吟粗大25P| www天天色天天射| 色热久资源| 亚洲久艹| 五月丁香六月| 大香蕉久久婷婷精品综合| 天天综合干| 日韩欧美成人片| 久久色六月| 色婷婷丁香五月天| 五月婷在线视频免费看| 久草久青福利| 大香蕉婷婷久久| 婷婷丁香五月天激情四射| av九九| 久久婷婷六月综合综合色| 丁香婷婷激情五月色| 五月综合激情| 超碰中文字幕在线| 91人人人人人| 99热最新| 97婷婷狠狠| 五月天综合在线观看| 色婷婷4| 婷婷五月激情综合| 秋霞AV美国| 五月婷无码| 99热这里只有精品9| 九热免费视频| 狠狠高潮精品亚洲1| 天天 青草 丝袜制服 在线| 99小视频| 热久久91| 久热69| 99在线视频女女视频| 久在热99| 婷婷婷婷午夜| 婷婷不干网| 120分钟婬片免费看| www色色色com| 亚洲av免费在线| 9九色首页| 久久怕怕视频| 日韩视频99| 日本色婷婷久久99精品91| 婷婷久久性爱| 色婷婷丁香女女| 婷婷丁香久久| 天堂五月婷婷| 思思热高清在线观看| 激情五月综合ì香亚洲| 色婷五月天| 91丁香五月| 超碰99热在线观看| 亚洲成人AV电影在线| 色色婷婷五月| 天堂综合久久| 久久婷婷五月丁香网| 成人在线综合| 久久性爱视频| 丁香婷婷基地| 五月天成人综合| 激情视频网址| 国产古装妇女野外A片| 日本精品人妻无码77777| 99在线精品免费视频| 中文字幕网伦射乱中文| 色网五月婷婷| 殴美97色| 91porn一起草| 99综合网| 情欲综合网| 五月天激情.com| 看久久性爱99视频| h在线看免费版在线看| 99日在线视频| 99色在线观看| 亚洲三A| www.久操| 91久久九久久九久久九久久九久久| 婷婷精品综合| 任你艹| 免费九九热| 久热这里只有精品性色AV| 丁香五月手机在线| 第四色激情网| 思恩热国产视频右线观看| 婷婷色操| 中文字幕视频在线播放| 婷婷综合激情| 99久久综合| 亚洲小视频免费观看| 九九热10| 日日色五月天| 天天草比天天爽| 97人人搞| 怡红院AV亚洲一区二区三区H| 超碰成人在线免费观看| 亚洲婷婷91丁香| 综合xx网| 婷婷色五月婷| 色九月婷婷| 久久久久久18| 五月天色播网| 五月天色影院| 婷婷五月天成人网| 操婷婷久久| 亚洲精品网站色视频| 色5月婷婷| 亚洲永久免费| 日操熟女| 久久99免费视屏| 五月网在线| 狠狠色狠狠操| 青青操日本摸摸看看| 丁香婷婷基地| 少妇人妻综合色6699| 婷婷丁香熟妇综合网| 99热xx| 婷婷色网站| 亚洲第一精品网站| 26uuu国产| 97热在线精品| 色五月婷婷五月丁香五月激情五月视频| 亭亭五月天黑人2014| 亚洲激情av| 五月丁香花激情啪啪网| caopeng超碰| 天天干天天拍| 99热最新国内| 久久只有这里精品免费| 人人摸人人澡人人| 97爱艹婷婷开心丁香激情综合| 99综合在线| 99这里有精品视频视频| 最近中文字幕大全免费版在线| av免费在线网站| 另类图片 五月激情| 日韩成人综合网| 国产精品18久久久| 久久精品色| 天天做天天摸| 9l视频自拍9l九色成人| 人人操女人| 五月丁香六月日逼| 亚洲激情综合网| 野外99热| 五月婷婷丁香狠狠撸久久| 深爱激情五月天| 91精品久久久久| 五月婷婷激情网| 丁香五月激情啪啪啪| 96性爱视频| 99热精品在线| 99久久9| 色综合中文| 色五月97| 五月丁香六月激情欧美综合| 综合色图婷婷| 99热精品9| 99精品国产乱码久久久人妻| 五月天色导航婷婷资源婷婷| 婷婷色影院| 9久国产| 色婷久| 综合网狠狠| 免费视频99| 色婷婷影音| 这里只有精品在线视频在线观看| jiujiuxiangjiaowang| 亚洲激情色色| 激情五月综合网丁| 天天插天天干天天舔| 激情视频网址| 久久五月婷婷视频| 思思久久青草热| 国产AV影片| 人人干Av| 丁香五月婷婷图片综合| 欧美婷婷五月天综合| 婷婷五月天免费99| 人人看人人摸人人| 五月天久久小说| 四月婷婷丁香| 丁香九月综合在线| 亚洲精品婷婷| 五月丁香六月激情综合| www.91九色| 综合五月婷婷| 五月婷婷激情综合| 久久五月婷综合网| 影音先锋五月婷婷| 天天做天天爱天天综合网| 九九久久污| 五月天激情四射网站| 97干欧美| 深爱激情五月天| 五月丁香六月婷婷中合网| 国产人妻777人伦精品HD| 色五月婷激情| 婷婷性爱视频在线| AAA久久| 全网最新网黄大秀直播高清,主播国产录屏在线| 九九人人操| 爱婷婷五月| 天天操五月天| 色婷婷亚洲精品天天综| 久久伦乱| 五月天堂色| caopeng超碰| 色婷婷色综合久久精品V| 深爱激情五月网| 中文网AV| j五月香在线| 色色色婷婷| 五月婷婷六月丁香激情深爱| 激情综合视频| 成人网在线视频| 亚洲美女婷婷五月天| 国产成人综合电影| 九色无码| 色小说婷婷五月天天天| 五月婷久久综合| 午夜一区| www,五月天激情| av国产精品偷| 日本黄色一级| 午夜激情婷婷| 激情综合网亚洲色图| 亚洲综合另类| 丰满少妇猛烈A片免费看观看| 一二三区视频韩国| 91在线人| 激情第四色| 婷婷五月天天天| mmm1717.6dbm人人爱人人操| 成人在线高清| 9l视频自拍9l九色成人| 中文av网站| 五月夜丁香| 超碰人人超碰| 99re资源在线视频导航| 丁香久久| 九九婷婷五月天| 亚洲精品乱码久久久久99| 97久操视频| 四川女人毛多水多A片| 99激情网| 青草少妇激情| 欧美综合激情五月丁香| 久热9热| 亚洲爆乳无码精品AAA片蜜桃| 亚洲欧美丁香五月天亚洲欧美| 天天橾日日橾夜夜橾17| 超碰av在线| 97婷婷狠狠久久综合9色| 欧洲色区| 五月天色色色| 狠狠干天天日| 永久地址 色| 日本久久爽| 丁香婷婷影院| 国产精品久久久久久久久久免费| 婷婷五月天激情综合| 色播激情五月天| 手机激情网| 五月天婷亚洲天综合网综合 | 玖玖资源站蜜臀| 五月天亚洲最大成人| 激情综合网五月婷婷| 五月婷婷激情日本| 97涩婷婷婷婷基地| 精品一二三区久久AAA片| 婷婷丁香人妻天天爽| 五月婷婷色| www五月天com| 99re热免费观看视频精品| 丁香5月啪啪| 五月丁香六月婷婷综合网| 婷五月天天| 九九色影院| 91婷婷色| 色色色地址| h亚洲| 五月丁香啪。| 亚州激情九月| a久久| 在线婷婷| 99精品一二三四视频| 五月天成人综合| 欧美婷婷综合| 五月天六月色| 26uuu成人网| 久久狠狠干| 操操操Av| 蜜桃人妻无码AV天堂三区| 五月婷婷激情综合av| 26uuu成人网| 激情丁香五月婷婷| 天天射影院| 97色永久免费视频| 日本在线视频播放91| 六月婷婷AV| 六月丁香AV| 在线日韩av| 色99婷婷五月天| 97干在线观看| 婷婷综合色图| 九九色影视| 丁香婷最新动态| 深爱五月婷婷开心中文字幕| 精品视频99看在线视频| 天天日夜夜草进麻麻的子宫| 五月婷婷激情69| 色婷婷视频综合| 日本成人噜噜噜| 国产亚洲精品久久一区二区三区| 97性视频| 婷婷五月天av| 九七色色六月丁香| 婷婷中文综合网| 97人人看一| 久久久激情视频| 伊人大香五月天| www.人人操人人看人人想人人摸 人人人人操,COM| 人人舔人人色人人高潮| 俺去也在线视频| WWW.婷婷| 五月丁香综合啪啪| 97在线精品| 热日韩欧美| 婷婷中文字幕网站| 丁香五月桃花在线激情综合| 97日日碰碰| 婷婷久久18| 99re热在线观看| 久久人人九九| 九九狠狠干| 婷婷丁香五月综合| 色视频2025| 婷婷激情小说| 大学生高潮无套内谢视频| 丁香五月天激情四射网络不好| 色综合色综合网| 亚洲成人va| 成人丁香| 日本123区日韩欧美不卡在线看| 狠狠艹狠狠艹| 狠狠插狠狠操| 99国产精品白浆在线观看免费 | 天天干-天天日| 九九AV在线| 香蕉久久五月| 五月天日日操夜夜操 | 色欲资源网| 五月天激情国产综合婷婷| 欧美男女婷婷| 日日噜噜久久婷婷五月天 | 天天操天天曰| 亚洲成av人影院| 婷婷丁香社区| 99精品在线观看视频| 丁香八月综合激情| 91se在线观看| 玩熟女五十AV一二三区| 久99在线视频| 天天日夜夜爽。| 欧美人妻一区二区| 中文字幕av网站| 丁香五月综合久久八| 五月婷婷开心五月| 欧美人与性动交CCOO| 狠狠色丁香婷婷久久综合| 色五月视频无码播放| 婷婷综合色色| 极品人妻VIDEOSSS人妻| 97碰在线免费观看| 免费久久这里只有精品99| 中美日韩成人在线| 国内精品99| 五月激情婷婷图片基地| 婷婷五月丁香色综合| 色五月婷婷7777| 久久色五月天| 99热亚洲精品| 亚洲精品另类| 开心五月婷婷六月丁香| 天天天天天天操| 免费无码毛片一区二区A片| 五月丁香啪啪网| 九九热这里只有精品6| 精品欧美一区二区三区久久久| www.久久久久| 99精品免费视频| 99碰碰。| 天天更新天天亚洲| 九九黄色网| 欧美日韩成人在线网站| 亚洲精品激情| 91性高潮久久久久久久久| 色欲影香| 五月天婷婷久久视频| 超碰2021| 色婷婷伦理| 激情五月婷婷| Xx色综合| 五月天色区| 99 热国产在| 激情五月丁香五月| 99久久久久久| 丁香五月婷中字幕| 国产小精品| 色小说婷婷五月天天天| 激情小说五月天| 婷婷五月天777| 丁香五月天啪啪|