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

ARTICLE DETAIL

資訊詳情

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

基于SpringBoot和Vue的番茄水肥一體化管理系統(tǒng)設(shè)計與實現(xiàn)

基于SpringBoot和Vue的番茄水肥一體化管理系統(tǒng)設(shè)計與實現(xiàn) 簡介這是一套面向高校計算機專業(yè)學(xué)生與Java/Vue全棧初學(xué)者的畢業(yè)設(shè)計級實戰(zhàn)項目聚焦農(nóng)業(yè)數(shù)字化場景基于Spring Boot與Vue.js構(gòu)建番茄種植水肥一體化管理平臺解決傳統(tǒng)農(nóng)業(yè)灌溉施肥粗放、人工依賴度高的實際問題。資源包共676個文件含150個Java后端核心代碼、103個Vue前端組件、70個JS交互邏輯、159個SVG圖標(biāo)及配套SQL建表腳本、系統(tǒng)文檔與多套批處理部署腳本如run.bat、build.bat整體壓縮包34.31MB結(jié)構(gòu)清晰、模塊分明便于快速理解前后端分離架構(gòu)與IoT數(shù)據(jù)管理邏輯。已有86人學(xué)習(xí)下載項目已通過本地環(huán)境JDK8Tomcat7MySQL5.7完整調(diào)試支持一鍵啟動與數(shù)據(jù)庫初始化附帶詳細(xì)部署說明與常見問題排錯指引可直接用于課程設(shè)計、工程實訓(xùn)或二次開發(fā)拓展。 做農(nóng)業(yè)信息化項目這幾年我發(fā)現(xiàn)一個很有意思的現(xiàn)象真正能落地的系統(tǒng)往往不是技術(shù)最炫的而是最貼合農(nóng)戶實際操作的。拿番茄種植來說水肥管理是最消耗人力、又最依賴經(jīng)驗的環(huán)節(jié)澆多少水、施什么肥、什么時候做全憑老師傅手感。這幾年勞動力成本越來越高年輕一代又不愿意天天泡在大棚里水肥一體化自動化的需求就非常明確?!盎赟pringBoot的番茄種植水肥一體化管理系統(tǒng)”就是從這個痛點出發(fā)的。它本質(zhì)上是把傳統(tǒng)農(nóng)業(yè)的“經(jīng)驗驅(qū)動”轉(zhuǎn)成“數(shù)據(jù)驅(qū)動”通過傳感器采集土壤墑情、氣象環(huán)境、植株生長階段等數(shù)據(jù)結(jié)合番茄不同生育期的需水需肥規(guī)律自動或半自動地控制灌溉和施肥設(shè)備。這套系統(tǒng)對兩類人最有用一是想提升大棚管理效率、降低人工成本的種植戶和農(nóng)業(yè)合作社二是正在做農(nóng)業(yè)信息化、物聯(lián)網(wǎng)方向畢業(yè)設(shè)計或項目的開發(fā)者這套系統(tǒng)的業(yè)務(wù)閉環(huán)和技術(shù)棧選擇有很強的參考價值。我拿到的是這個項目的zip包SpringBoot Vue前后端分離架構(gòu)。接下來我結(jié)合SpringBoot和Vue這兩個核心關(guān)鍵詞把這套系統(tǒng)的設(shè)計與實現(xiàn)細(xì)節(jié)展開講講也把一些實際部署中容易踩的坑一并分享。1. 項目整體設(shè)計與技術(shù)選型思路拆解1.1 為什么是SpringBoot Vue這套組合這個項目拆開看就是一個非常典型的“前后端分離 物聯(lián)網(wǎng)設(shè)備聯(lián)動”架構(gòu)。后端選SpringBoot前端選Vue基本都是當(dāng)前中小型管理系統(tǒng)的標(biāo)準(zhǔn)答案但背后是有邏輯的。先說SpringBoot。水肥一體化系統(tǒng)要處理的東西其實很雜設(shè)備指令下發(fā)、傳感器數(shù)據(jù)采集、歷史數(shù)據(jù)存儲、告警推送還有種植戶、地塊、農(nóng)事記錄這些基礎(chǔ)資料。SpringBoot的好處在于它把Spring生態(tài)里繁瑣的XML配置全部干掉用自動配置和Starter機制就能把Web、數(shù)據(jù)持久化、定時任務(wù)、消息推送這些組件快速整合起來。對于這種業(yè)務(wù)復(fù)雜度中等、但功能面很廣的項目SpringBoot的開發(fā)效率比傳統(tǒng)SSM高出一截而且生態(tài)成熟遇到問題隨便一搜就是方案。再說Vue。管理端界面要求不高但交互邏輯不簡單——設(shè)備狀態(tài)要實時刷新、環(huán)境數(shù)據(jù)要用圖表展示、控制指令要即時反饋。Vue的響應(yīng)式數(shù)據(jù)綁定和組件化開發(fā)在這種場景下非常好用。特別是用水肥一體機控制界面點一下“開啟灌溉”前端馬上要反映設(shè)備狀態(tài)變化Vue的雙向綁定機制讓這種交互寫起來很順手。這個項目還有一個細(xì)節(jié)值得注意——看目錄結(jié)構(gòu)里帶有vue播放m3u8相關(guān)的依賴說明監(jiān)控視頻流這塊是走HLS協(xié)議的。攝像頭推流到流媒體服務(wù)前端用vue-video-player這類組件來播放m3u8地址這在農(nóng)業(yè)物聯(lián)網(wǎng)項目里是常規(guī)操作。大棚里裝幾個監(jiān)控管理者在辦公室里就能看現(xiàn)場情況不用天天跑大棚。1.2 業(yè)務(wù)功能拆解它到底管了哪些事別把“水肥一體化管理”想簡單了它不是一個單純的“開泵澆水”的開關(guān)。一個完整的系統(tǒng)至少包含下面幾層第一層是數(shù)據(jù)采集。土壤溫濕度、土壤EC值電導(dǎo)率反映養(yǎng)分濃度、pH值、空氣溫濕度、光照強度、CO2濃度、風(fēng)速風(fēng)向、降雨量這些數(shù)據(jù)要么靠大棚里的傳感器節(jié)點采集要么靠小型氣象站上報。采集頻率一般是5到15分鐘一次存到MySQL或時序數(shù)據(jù)庫里。第二層是設(shè)備控制。核心設(shè)備是水肥一體機它負(fù)責(zé)把母液罐里的肥料按比例混入灌溉水中再通過滴灌帶或噴灌系統(tǒng)送到作物根部。設(shè)備層還包含水泵、電磁閥、施肥泵、過濾器等。系統(tǒng)要能下發(fā)控制指令也要能讀取設(shè)備運行狀態(tài)和故障信息。第三層是策略管理。這個層是系統(tǒng)的靈魂。每種作物的需水需肥規(guī)律不一樣番茄在苗期、花期、坐果期、膨果期對氮磷鉀的需求是完全不同的。系統(tǒng)內(nèi)置了不同生長階段的配比方案用戶可以直接套用標(biāo)準(zhǔn)方案也可以根據(jù)自己的經(jīng)驗自定義。第四層是業(yè)務(wù)管理。種植戶、地塊、作物品種、農(nóng)事操作記錄、設(shè)備臺賬、告警記錄、歷史報表這些都需要管理起來。說白了這套系統(tǒng)不只是控制設(shè)備它還在幫種植戶沉淀一套自己的種植數(shù)據(jù)資產(chǎn)。從Vue前端的頁面設(shè)計來看這套系統(tǒng)有用戶登錄、主頁看板環(huán)境數(shù)據(jù)展示、灌溉控制、配方管理、地塊管理、設(shè)備管理、報表統(tǒng)計、系統(tǒng)管理等模塊。核心流程就是數(shù)據(jù)采集 - 環(huán)境監(jiān)測 - 策略判斷 - 指令下發(fā) - 設(shè)備執(zhí)行 - 結(jié)果反饋正好形成一個閉環(huán)。2. 數(shù)據(jù)庫設(shè)計與核心業(yè)務(wù)模塊實現(xiàn)2.1 數(shù)據(jù)庫設(shè)計先理清楚表關(guān)系拿到這個項目第一步應(yīng)該先去翻它的數(shù)據(jù)庫腳本。源碼頭部的table.sql里通常會預(yù)置一些核心表我根據(jù)實際項目經(jīng)驗把最核心的幾張表梳理出來供參考表名用途關(guān)鍵字段sys_user系統(tǒng)用戶表user_id, username, password, role_typeland_info地塊信息表land_id, land_name, area, soil_type, user_iddevice_info設(shè)備臺賬表device_id, device_name, device_type, statussensor_data傳感器采集數(shù)據(jù)表data_id, device_id, land_id, temp, humidity, ec, ph, create_timeirri_strategy灌溉施肥策略表strategy_id, strategy_name, crop_type, period, water_amount, fert_amountirri_record灌溉執(zhí)行記錄表record_id, land_id, strategy_id, start_time, end_time, water_consum, fert_consumalarm_record告警記錄表alarm_id, alarm_type, alarm_content, status, create_time表設(shè)計的核心思路是“業(yè)務(wù)數(shù)據(jù)要能追溯”。比如sensor_data表會有按天的數(shù)據(jù)量要建好索引。我見過不少項目運行了半年之后查詢報表奇慢無比就是因為沒給create_time加索引。這塊提個醒傳感器數(shù)據(jù)這種高頻寫入、低頻修改的數(shù)據(jù)可以考慮按月分表或按年分表后期維護(hù)會輕松很多。2.2 番茄水肥模型的農(nóng)藝邏輯既然項目標(biāo)題里明確寫了“番茄種植”那水肥策略這塊必須貼合番茄的生長特性。番茄是需水需肥較大的作物不同生長階段水肥需求差異明顯苗期需水量小土壤濕度保持在60%-70%為宜以氮肥為主促進(jìn)根系和莖葉生長。開花坐果期需水量逐漸增加要控制氮肥用量增加磷鉀肥比例避免徒長。土壤濕度控制在70%-80%之間。果實膨大期這是需水需肥的高峰期尤其是鉀肥需求大鉀能促進(jìn)果實膨大和著色提升果實品質(zhì)。土壤濕度要保持80%以上。采收期適當(dāng)控水控肥防止裂果和病害保持土壤濕度在70%左右即可。這套系統(tǒng)的策略模塊核心就是把這些農(nóng)藝知識轉(zhuǎn)化為可配置的規(guī)則。比如一條策略可以寫成苗期土壤濕度低于65%時啟動滴灌每次灌溉20分鐘每立方米水配比氮肥2kg、磷肥0.5kg、鉀肥0.5kg。到膨果期濕度閾值調(diào)高到75%配比變成氮1kg、磷1kg、鉀2.5kg。純靠人工總結(jié)這些也沒問題但這個系統(tǒng)還能做一件事結(jié)合傳感器實時數(shù)據(jù)當(dāng)土壤濕度跌到閾值附近自動判斷要不要啟動灌溉啟動之后灌多少水。這就是把經(jīng)驗變成代碼的過程。2.3 核心代碼解讀傳感器數(shù)據(jù)接入與策略判斷這個項目后端采用SpringBoot數(shù)據(jù)采集模塊通常用MQTT協(xié)議對接傳感器也可以輪詢設(shè)備API。我拆開源碼看了下它設(shè)計上遵循了比較標(biāo)準(zhǔn)的Controller-Service-Mapper三層結(jié)構(gòu)。下面這幾個點有參考價值數(shù)據(jù)接收Controller。傳感器上報的數(shù)據(jù)通過一個統(tǒng)一的接口進(jìn)入系統(tǒng)我隨手寫了段核心邏輯的偽代碼幫助理解RestController RequestMapping(/api/sensor) public class SensorDataController { Autowired private SensorDataService sensorDataService; PostMapping(/report) public Result reportData(RequestBody SensorDataDTO dataDTO) { // 數(shù)據(jù)入庫 sensorDataService.save(dataDTO); // 觸發(fā)策略判斷 StrategyEngine engine new StrategyEngine(); engine.evaluate(dataDTO.getLandId()); return Result.success(); } }策略判斷引擎。當(dāng)一條新的傳感器數(shù)據(jù)進(jìn)來后系統(tǒng)把它和當(dāng)前地塊綁定的策略做比對。如果發(fā)現(xiàn)土壤濕度低于閾值就生成一條灌溉指令public void evaluate(Long landId) { // 1. 獲取地塊最新環(huán)境數(shù)據(jù) SensorData latest sensorDataService.getLatest(landId); // 2. 獲取當(dāng)前地塊綁定的灌溉策略 IrriStrategy strategy strategyService.getByLandId(landId); // 3. 判斷是否滿足灌溉條件 if (latest.getHumidity() strategy.getHumidityThreshold()) { // 計算灌溉時長(設(shè)定水量 * 地塊面積) / 主管道流量 double waterVolume strategy.getWaterPerMu() * land.getArea(); int duration (int)(waterVolume / device.getFlowRate() * 60); // 4. 下發(fā)指令到設(shè)備 deviceControlService.sendIrriCommand(landId, duration); // 5. 記錄執(zhí)行日志 irriRecordService.save(landId, strategy, duration); } }這里有個很容易忽略的細(xì)節(jié)條件判斷里最好加上一個“上一次灌溉時間”的校驗防止設(shè)備剛澆完水傳感器數(shù)據(jù)還沒更新又觸發(fā)了一次灌溉。實際項目中我們通常設(shè)置一個冷卻時間窗口比如30分鐘內(nèi)不能重復(fù)觸發(fā)。2.4 設(shè)備控制對接水肥一體機的通信協(xié)議水肥一體機一般支持Modbus RTU或TCP協(xié)議通信也可能提供開放API接口。系統(tǒng)中間通常會做一個設(shè)備適配層把不同廠商、不同協(xié)議的設(shè)備抽象成統(tǒng)一接口。主控制器和分控器之間的通訊方式大概有三種RS485總線、LoRa無線、4G DTU。RS485布線麻煩但穩(wěn)定LoRa省電且覆蓋遠(yuǎn)4G最靈活但需要流量費。實際項目里大棚內(nèi)相對集中的環(huán)境用RS485或LoRa居多地塊分散的大基地則普遍選4G方案。不管哪種物理鏈路代碼層面接收的數(shù)據(jù)格式一般分為三類狀態(tài)類設(shè)備在線/離線、當(dāng)前運行模式、閥門開關(guān)狀態(tài)數(shù)據(jù)類瞬時流量、累計流量、EC值、pH值、液位故障類電機過載、管路壓力異常、肥料罐缺液控制指令下發(fā)的核心代碼通常長這樣Service public class DeviceControlServiceImpl implements DeviceControlService { Override public void sendIrriCommand(Long landId, int durationMinutes) { // 1. 獲取設(shè)備信息 DeviceInfo device deviceMapper.selectByLandId(landId); // 2. 組裝控制指令以Modbus寄存器為例 int startRegister 0x0001; // 啟動命令寄存器地址 String command buildModbusCommand(device.getDeviceId(), startRegister, durationMinutes); // 3. 通過通信服務(wù)下發(fā) communicationService.send(device.getIp(), device.getPort(), command); // 4. 記錄設(shè)備日志 deviceLogService.record(device, START_IRRI, command); } }從這里能看出控制邏輯本身不復(fù)雜但要做好狀態(tài)同步。設(shè)備有沒有收到指令、指令有沒有執(zhí)行成功、執(zhí)行完之后實際流量和設(shè)定值偏離多少這些都是系統(tǒng)需要持續(xù)跟蹤的。所以設(shè)備管理頁面通常會展示兩塊內(nèi)容一是設(shè)備基礎(chǔ)信息二是最新的控制指令記錄和執(zhí)行反饋。3. 后端SpringBoot項目搭建與核心配置3.1 項目初始化與目錄結(jié)構(gòu)設(shè)計SpringBoot項目的搭建方式有很多可以從Spring Initializr生成也可以用IDEA直接創(chuàng)建。但考慮到這個項目帶了vue播放m3u8相關(guān)的功能說明它不是純管理后臺還需要處理視頻流的對接建議后端工程按下面這個結(jié)構(gòu)拆src/main/java/com/example/tomato ├── config/ │ ├── WebConfig.java # 跨域配置、攔截器 │ ├── MybatisPlusConfig.java # 分頁插件配置 │ └── TaskConfig.java # 定時任務(wù)配置 ├── controller/ │ ├── UserController.java │ ├── LandController.java │ ├── DeviceController.java │ ├── SensorDataController.java │ ├── StrategyController.java │ └── IrriRecordController.java ├── service/ │ ├── impl/ │ └── interfaces ├── mapper/ │ ├── UserMapper.java │ └── ... ├── entity/ ├── dto/ ├── common/ │ ├── Result.java # 統(tǒng)一返回結(jié)構(gòu) │ ├── PageResult.java │ └── exception/ └── utils/ └── JwtUtils.java3.2 核心配置文件的坑與優(yōu)化做農(nóng)業(yè)系統(tǒng)最容易出問題的就是application.yml配置。除了常規(guī)的數(shù)據(jù)源配置還要注意幾個點server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/tomato_irri?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true # 定時任務(wù)開關(guān) task: sensor-collect: true alarm-check: true這里容易踩的坑有三個第一數(shù)據(jù)庫連接串里serverTimezone一定要設(shè)置尤其國內(nèi)服務(wù)器不設(shè)置會報時區(qū)錯誤。第二mybatis-plus的map-underscore-to-camel-case要開否則數(shù)據(jù)庫字段的下劃線命名和Java實體類的駝峰命名對不上查詢結(jié)果全是null。第三數(shù)據(jù)源連接池建議用HikariCPSpringBoot 2.x默認(rèn)就是它性能好不用額外配置。3.3 JWT鑒權(quán)與權(quán)限控制實現(xiàn)農(nóng)業(yè)系統(tǒng)的用戶角色一般分兩種系統(tǒng)管理員和種植戶。管理員負(fù)責(zé)維護(hù)系統(tǒng)數(shù)據(jù)和用戶賬號種植戶只操作自己名下地塊的設(shè)備和水肥策略。權(quán)限控制這塊推薦用JWT前后端分離場景不需要依賴Session接口天然無狀態(tài)。JWT工具類里面核心就兩個方法生成token和解析token。Component public class JwtUtils { Value(${jwt.secret}) private String secret; Value(${jwt.expiration}) private Long expiration; public String generateToken(User user) { Date now new Date(); Date expireDate new Date(now.getTime() expiration * 1000); return Jwts.builder() .setSubject(user.getUsername()) .claim(userId, user.getUserId()) .claim(roleType, user.getRoleType()) .setIssuedAt(now) .setExpiration(expireDate) .signWith(SignatureAlgorithm.HS512, secret) .compact(); } public Claims parseToken(String token) { return Jwts.parser() .setSigningKey(secret) .parseClaimsJws(token) .getBody(); } }同時要在WebConfig里注冊一個自定義攔截器放行登錄接口其他接口統(tǒng)一校驗token。這里有個很多人忽略的細(xì)節(jié)JWT密鑰不要寫死在代碼里要放到配置文件中最好用環(huán)境變量注入。3.4 SpringBoot定時任務(wù)實現(xiàn)環(huán)境數(shù)據(jù)采集傳感器數(shù)據(jù)的采集有實時推送和定時拉取兩種方式。如果設(shè)備支持推送直接在Controller里收就行如果不支持就要用SpringBoot自帶的Scheduled注解做定時輪詢。Component public class SensorCollectTask { Autowired private DeviceService deviceService; Autowired private SensorDataService sensorDataService; Scheduled(fixedDelay 1000 * 60 * 5) // 每5分鐘執(zhí)行一次 public void collectSensorData() { ListDeviceInfo devices deviceService.listAllOnlineDevices(); for (DeviceInfo device : devices) { SensorData data deviceService.readSensorData(device.getDeviceId()); sensorDataService.save(data); } } }注意Scheduled默認(rèn)是單線程執(zhí)行的如果采集任務(wù)比較多建議在配置類里設(shè)置線程池大小。另外定時任務(wù)要加上異常捕獲否則一次采集失敗會導(dǎo)致后續(xù)所有任務(wù)都不執(zhí)行了。3.5 統(tǒng)一返回結(jié)構(gòu)與全局異常處理寫接口的第一步就是定義一個統(tǒng)一返回體不讓接口返回亂七八糟的格式。我用的是最經(jīng)典的Result結(jié)構(gòu)Data public class ResultT { private Integer code; private String message; private T data; public static T ResultT success(T data) { ResultT result new Result(); result.setCode(200); result.setMessage(success); result.setData(data); return result; } public static T ResultT error(Integer code, String message) { ResultT result new Result(); result.setCode(code); result.setMessage(message); return result; } }同時用RestControllerAdvice做全局異常處理業(yè)務(wù)異常、參數(shù)校驗異常、系統(tǒng)異常分別返回不同錯誤碼。這樣做的好處是前端拿到數(shù)據(jù)后判斷code是否為200即可不需要處理各種異常的結(jié)構(gòu)。4. Vue前端實現(xiàn)與交互細(xì)節(jié)分析4.1 Vue項目的初始化與路由設(shè)計前端部分用Vue框架配合Element UI組件庫和ECharts圖表庫。Vue的工程通常基于Vue CLI或Vite創(chuàng)建目錄結(jié)構(gòu)大概是src/ ├── api/ # 后端接口封裝 │ ├── user.js │ ├── land.js │ ├── device.js │ ├── strategy.js │ └── sensor.js ├── router/ # 路由配置 │ └── index.js ├── store/ # 全局狀態(tài)管理Vuex ├── views/ # 頁面組件 │ ├── Login.vue │ ├── Dashboard.vue │ ├── DeviceControl.vue │ ├── StrategyManage.vue │ ├── DataReport.vue │ └── UserManage.vue ├── components/ # 復(fù)用組件 └── utils/ └── request.js # axios封裝路由設(shè)計要注意權(quán)限控制。Vue Router的beforeEach守衛(wèi)里判斷本地有沒有token沒有就跳登錄頁。不同角色能看到的菜單也不一樣管理員能看到用戶管理菜單種植戶看不到。4.2 axios封裝與接口對接前端和后端對接重點在axios的封裝。統(tǒng)一配置baseURL、超時時間、請求攔截器加token、響應(yīng)攔截器統(tǒng)一處理錯誤碼。import axios from axios import { Message } from element-ui import router from /router const service axios.create({ baseURL: process.env.VUE_APP_BASE_API, timeout: 10000 }) service.interceptors.request.use(config { const token localStorage.getItem(token) if (token) { config.headers[Authorization] Bearer token } return config }) service.interceptors.response.use( response { const res response.data if (res.code ! 200) { Message.error(res.message || 請求失敗) return Promise.reject(new Error(res.message)) } return res }, error { if (error.response error.response.status 401) { localStorage.removeItem(token) router.push(/login) } Message.error(error.message) return Promise.reject(error) } ) export default service這個封裝有兩點很關(guān)鍵token過期自動跳登錄頁業(yè)務(wù)錯誤通過Message組件統(tǒng)一提示。前端開發(fā)時可以直接在error里console打印錯誤信息方便排查接口問題。4.3 數(shù)據(jù)可視化看板實現(xiàn)主頁看板通常需要展示環(huán)境數(shù)據(jù)的實時變化趨勢。這里用ECharts折線圖展示土壤濕度和溫度的變化曲線用儀表盤展示當(dāng)前EC值是否在合理范圍內(nèi)。關(guān)鍵點在于數(shù)據(jù)不能全靠輪詢要合理設(shè)置刷新頻率。實時數(shù)據(jù)10秒刷一次歷史趨勢數(shù)據(jù)1分鐘刷一次就已經(jīng)夠用。不要每1秒鐘刷一次對服務(wù)器壓力大對數(shù)據(jù)庫也是負(fù)擔(dān)。mounted() { this.fetchEnvironmentData() this.timer setInterval(() { this.fetchLatestData() }, 10000) }, beforeDestroy() { clearInterval(this.timer) }4.4 視頻監(jiān)控接入Vue播放m3u8這個項目里涉及vue播放m3u8實際上就是視頻監(jiān)控流的頁面集成。攝像頭推流到流媒體服務(wù)器后會生成一個m3u8索引文件前端通過video.js或vue-video-player來播放。常見的HLS直播流地址格式http://192.168.1.100:8080/hls/camera01.m3u8安裝依賴npm install vue-video-player --save然后在組件里引入并配置import { videoPlayer } from vue-video-player import video.js/dist/video-js.css import vue-video-player/src/custom-theme.css export default { components: { videoPlayer }, data() { return { playerOptions: { autoplay: false, controls: true, sources: [{ type: application/x-mpegURL, src: this.m3u8Url }] } } } }注意m3u8播放對網(wǎng)絡(luò)環(huán)境有要求局域網(wǎng)內(nèi)用沒問題互聯(lián)網(wǎng)訪問需要流媒體服務(wù)器做帶寬優(yōu)化。另外如果視頻流加載慢一般先檢查流媒體服務(wù)端而不是前端。4.5 控制界面的狀態(tài)設(shè)計與交互優(yōu)化設(shè)備控制頁面是整個系統(tǒng)里最容易出交互問題的地方。很多開發(fā)者把控制按鈕做成簡單的“開”“關(guān)”但實際上容易產(chǎn)生兩個問題誤點擊、狀態(tài)不同步。我建議控制交互做成“二次確認(rèn)”模式。點擊“開啟灌溉”后彈出一個確認(rèn)對話框顯示當(dāng)前地塊、執(zhí)行策略、預(yù)計時長和水量用戶確認(rèn)后才真正下發(fā)指令。同時按鈕狀態(tài)要和設(shè)備實際狀態(tài)綁定設(shè)備離線時按鈕置灰避免無效操作??刂浦噶钕掳l(fā)后前端還要輪詢設(shè)備狀態(tài)等設(shè)備返回執(zhí)行結(jié)果后更新界面。這個過程通常需要3到10秒要有l(wèi)oading狀態(tài)不然用戶會覺得系統(tǒng)沒響應(yīng)。5. 常見問題與實戰(zhàn)排查5.1 前后端接口聯(lián)調(diào)時的跨域問題這是所有前后端分離項目避不開的坑。前端運行在8080端口后端運行在9090端口瀏覽器會攔截跨域請求。解決方案有兩種第一種是后端加CORS配置Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/**) .allowedOrigins(*) .allowedMethods(GET, POST, PUT, DELETE) .allowedHeaders(*) .maxAge(3600); } }第二種是前端配置Vue開發(fā)環(huán)境的代理// vue.config.js module.exports { devServer: { proxy: { /api: { target: http://localhost:9090, changeOrigin: true } } } }實際項目中推薦用第二種開發(fā)時不用改后端代碼生產(chǎn)環(huán)境交給Nginx做反向代理統(tǒng)一轉(zhuǎn)發(fā)。5.2 傳感器采集數(shù)據(jù)缺失或異常物聯(lián)網(wǎng)項目掉線太常見了。傳感器電池沒電、通信模塊信號不好、網(wǎng)關(guān)重啟都會導(dǎo)致數(shù)據(jù)采集斷檔。排查分三步第一步查設(shè)備在線狀態(tài)。登錄設(shè)備管理頁面看設(shè)備在線還是離線離線就看通信模塊。第二步查數(shù)據(jù)庫最新一條記錄時間。如果數(shù)據(jù)庫記錄時間和當(dāng)前時間差超過半小時說明采集鏈路斷了。第三步查定時任務(wù)日志??词窃O(shè)備沒返回數(shù)據(jù)還是數(shù)據(jù)入庫時報錯了。常見的修復(fù)手段包括設(shè)備配置心跳機制、定時任務(wù)增加失敗重試、采集數(shù)據(jù)校驗溫度超過60度肯定不正常直接丟棄或告警。5.3 定時任務(wù)執(zhí)行時間不準(zhǔn)SpringBoot的Scheduled默認(rèn)是單線程阻塞模式。如果某個采集任務(wù)執(zhí)行時間特別長比如調(diào)設(shè)備接口超時要等30秒其他任務(wù)就會被卡住導(dǎo)致執(zhí)行周期錯亂。解決方案是配置異步任務(wù)線程池Configuration EnableAsync public class TaskConfig implements AsyncConfigurer { Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(10); executor.setQueueCapacity(100); executor.setThreadNamePrefix(async-task-); executor.initialize(); return executor; } }同時把耗時的采集任務(wù)加上Async注解。5.4 視頻監(jiān)控加載慢或播放卡頓m3u8視頻流卡頓的問題90%不在前端在流媒體服務(wù)端。排查重點攝像頭連的是有線網(wǎng)絡(luò)還是Wi-FiWi-Fi容易丟包流媒體服務(wù)器的上行帶寬夠不夠是否做了轉(zhuǎn)碼H.265編碼的視頻流瀏覽器不支持要轉(zhuǎn)成H.264前端能做的是優(yōu)化加載策略頁面初始化時先加載預(yù)覽圖點擊播放按鈕后再初始化播放器離開頁面時一定要銷毀播放器實例否則會一直占著視頻流通道。5.5 系統(tǒng)部署常見的MySQL時區(qū)問題生產(chǎn)環(huán)境部署時如果MySQL的時區(qū)和應(yīng)用服務(wù)器的時區(qū)不一致會導(dǎo)致時間字段錯亂。MySQL連接串里加上serverTimezoneAsia/Shanghai再在MySQL服務(wù)端執(zhí)行SET GLOBAL time_zone 8:00; SET GLOBAL system_time_zone Asia/Shanghai;另外Java服務(wù)啟動時加上JVM參數(shù)-Duser.timezoneGMT08雙保險。5.6 水肥執(zhí)行記錄與實際用量對不上這個問題我調(diào)試過很多次。原因通常是流量計精度問題或者電磁閥開度不夠?qū)е聦嶋H流量達(dá)不到設(shè)備額定流量。解決辦法是系統(tǒng)里加一個“流量校準(zhǔn)系數(shù)”每次執(zhí)行完灌溉后根據(jù)流量計累計值反推實際用量再用實際用量更新校準(zhǔn)系數(shù)。這樣經(jīng)過兩個星期左右的運行系統(tǒng)的水量統(tǒng)計精度就能達(dá)到95%以上。6. 項目部署注意事項與優(yōu)化建議6.1 服務(wù)器環(huán)境準(zhǔn)備后端部署一般用Linux服務(wù)器JDK選擇1.8或11SpringBoot 2.x版本MySQL 5.7或8.0都可以。打包方式mvn clean package -DskipTests打出來的是jar包用nohup java -jar tomato-irri.jar logs/run.log 21 啟動。前端打包npm run build打包生成的dist目錄放到Nginx的html目錄下。Nginx里配置反向代理把/api路徑的請求轉(zhuǎn)發(fā)到后端server { listen 80; server_name your.domain.com; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://127.0.0.1:9090; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }注意Vue Router要開啟history模式時一定要配置try_files否則刷新頁面會404。6.2 數(shù)據(jù)庫備份策略農(nóng)業(yè)系統(tǒng)最怕丟數(shù)據(jù)。傳感器歷史數(shù)據(jù)、灌溉記錄這些數(shù)據(jù)時間越長價值越高。建議每天凌晨自動備份一次mysqldump -u root -p tomato_irri /backup/tomato_irri_$(date %Y%m%d).sql保留最近7天的備份文件定期清理。條件允許的話備份文件最好同步到異地存儲。6.3 系統(tǒng)優(yōu)化的幾個方向第一數(shù)據(jù)批量寫入。傳感器數(shù)據(jù)如果一條一條insert性能很差。用MyBatis Plus的批量插入或者用JDBC的rewriteBatchedStatements參數(shù)寫入速度能提升5到10倍。第二歷史數(shù)據(jù)冷熱分離。半年以上的歷史數(shù)據(jù)可以遷移到歸檔表減少主表的查詢壓力。第三報表查詢走匯總表。日報、周報、月報這種定時生成的報表不要讓前端實時去聚合大表后臺定時任務(wù)算好結(jié)果存到報表表里查詢時直接取結(jié)果。這套系統(tǒng)我在多個大棚基地實際部署過給我的直觀感受是真正降低農(nóng)戶負(fù)擔(dān)的不只是設(shè)備自動化更是“從經(jīng)驗到數(shù)據(jù)”的積累。第一年運行的數(shù)據(jù)可能看不出什么但運行兩三年之后這些數(shù)據(jù)會成為非常寶貴的種植決策資產(chǎn)——同一品種、同一季節(jié)哪塊地水分控制得好、肥料配比合理產(chǎn)量和品質(zhì)差異一目了然。如果你打算在這個項目基礎(chǔ)上做二次開發(fā)我的建議是優(yōu)先擴(kuò)展預(yù)測預(yù)警能力。比如根據(jù)未來幾天的天氣數(shù)據(jù)結(jié)合當(dāng)前土壤墑情和番茄生長階段提前調(diào)整水肥策略。這比單純做報表展示更有價值也讓這套系統(tǒng)的實用性再上一個臺階。另外提醒一點做農(nóng)業(yè)信息化項目一定要去現(xiàn)場蹲幾天。設(shè)備的實際安裝位置、網(wǎng)絡(luò)的穩(wěn)定性、農(nóng)戶的操作習(xí)慣這些都會直接影響系統(tǒng)設(shè)計。坐在辦公室里碼代碼做出來的系統(tǒng)大概率是“能跑但沒人用”。我吃過這個虧希望你能少走這一步彎路。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91影库| 一区二区三区日韩欧美| 手机在线视频国内精品| 内射中国少妇高清视频免费视频| 国产亚洲精品农村妇女| 国产一线二线三线av| 激情丁香婷婷| 日韩性爱免费观看视频| 青青青草原| 成人综合色网| 欧美日韩日产免费网站看| 九九九九一区| 99re69| 五月丁香激情综合网| 永久电影三级在线观看| 四方色播| 亚洲 中文 欧美 日韩 在线| 天堂伊人久久| 超碰99在线观看| 黄色AV免费| 中文三一区| 干B| 大香蕉男女超碰精品在线| 国产精品4p在线观看| 亚洲女优有码无码高清| 日本性一区| 99.色网| 无码日韩网站| 国产成人免费观看在线视频| 五月丁香激情综合| 99视频内射三四| 欧美,日韩综合久久| 国产无码精品久久久久久| 欧美久久人体| 免费超碰97久久| 不卡超碰护士AV在线免费播放| 久久久精品无码亚免费| 天天插夜夜操| 涩涩涩综合| 色欧洲| 啊啊啊啊好疼| 亚洲精品国产无码高清| 亚欧毛片基地国产毛片基地| av一区二区三区四区| 张柏芝国产一区在线观看| 天天天肏屄肏屄肏屄欧美欧美| 成人五月天色网| AV天天综合| 中文字幕在线观看丝袜| 亚洲欧洲国产综合av| 男人的天堂午夜av| 天天爽夜夜爽夜夜爽精| 色操逼网| 色综合久| 97精品国产97久久久| 五月丁香啪| 新久久AV| 可以免费观看的av| 国产日本熟女顶级一区二区三区视频 | 强奸乱伦动态污图免费| 91日本在线观看| 婷婷深爱五月| 亚洲图片在线| 色妇综合网| 91骚熟女| 免费观看性欧美一级| 国产野战露脸在线播放| 日韩精品中文字幕二区| 玖玖人人爱| 青青色综合| 人人搡人人肉久久精品| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91精品久久久久久77777| 9+1视频网址| 精品久久久久,69国产成人精| 日本一区二区三区精品| 日韩欧亚中文在线| 91热色| 国内伊人久久久久久网站视频| 天天影视综合色| 国产偷人伦激情在线观看| 无码一区免费在线不卡| 深夜激情无码| 国产精品一二三| 亚洲狠狠入| 在线观看中文字幕| 激情网色| 日本免费中文一区二区三区四区| 美女诱惑在线一区| 97操b| 26UUU欧美日本| 丰满人妻av一区二区三区| 99热这里只有精品99| 亚洲情色五月天 | 国产精品无码久久久久2025| 99爱精品| 亚洲大色鬼| 久久9免费视频| 操碰97| 亚洲91在线播放影院| 亚洲中文字幕网| 69久久久久久久久久久久久| 蜜臀久久99精品久久久久| 国产一区二区免费福利片| 91超级碰| 亚洲97网站| 国产精品久久天天干| 尹人免费观看视频在线| www.婷婷五月天| 操我啊啊啊啊啊| 老熟妇一区二区三区啪啪| 四虎av在线| 亚洲精品aa久久伊人| 看看小穴| 91欧美亚洲| 五月丁香啪啪啪| 人妻五十路在线| 精品免费视频国产一区| 国产视频三区四区| 性一级黄色录像片网站导航| 亚洲熟女中文字幕在线| AV色女综合| 亚洲第一无码播放立川理惠| 无码视频一区二区| 国产丝袜欧美在线视频| 国产成人精品亚洲日本| 97超碰超| 日韩精品 视频一区二区| 黄总AV色图| 伊人天天久久动态图| 午夜免费福利视频一区| 女人香蕉久久毛毛片精品| 亚洲国产高清福利视频| 天天日熟妇| 青青操轻轻| 欧美激色| 国产亚洲色婷婷久久99精品91| 加勒比东京热五月天天堂网| 91碰超| 久久久不能久久久久| 性色亚洲| 欧美日不卡| 日夜伊人网| 麻豆天美久久91| 国产精品com| 一牛影视久久久一区二区三区| 欧美78P| 裸体美女免费看网站青草| 色网亚洲人| 在线只有精品| 日韩偷拍一区二区三区| 久草在| 欧美性爱另类综合| 极品国产内射| 国产精品视频在线播放 | 亚洲色图欧美另类在线| 亚洲精品无码久久AV| 免费国产| 97久久精品亚洲| 99中文字幕| 日韩一级二级在线| 天堂种子在线www网资源| 999999精品| 97色欧州| 九九碰九九爱97超碰| 狼人狠干| 青青草国产盗摄一二三区| 欧美极品性爱天天射| 欧美最大综合网| 清柠毛片| 成人免费福利在线观看| 久操免费观看| 欧亚日韩三区| 色一情一乱一乱一区91Av| 欧美少妇人妻| 欧美激情一| 精品久久視頻在线| 日韩色欲久久一二三四区| 美女爽到高潮91| 欧美色图天堂网m| 女人高潮抽搐喷水视频网站| 一类无码操逼视频| 清纯唯美亚洲综合| 欧美激情一| 综合网~91综合网| 99在线精品视频| 青娱乐亚洲自拍| 欧美午夜熟妇黑人精品91| 人人澡人人弄| 美女人妻色网站| 日韩在线观看字幕精品| 你懂的在线观看区国产 | 91狠| 人成午夜免费大片| 成人性爱高清视频免费看| 亚洲伊人成综合成人网| 日韩久射综合| 久久人妻一区二区三区高清| 加勒比海成人视频网| 伊人久久88国产女| 麻豆啪啪啪视频| 欧美日韩午夜精品一区二区三区| 久久免费9| 欧美色图在线视频少妇| 97精品综合久久网| 日韩中文字幕宗合在线| 性在久久久久久| 天天爽夜夜欢视| 97亚洲在线| 欲香欲色天天天综合和网| 亚洲AV成人在线| 亚洲成人日韩小说| 国产精品网址| 涩综合导航| 91香蕉国产尤物视频| 97亚洲自在精品在线观看| 久久久111| 天天爽人人综合免费7799| 国产欧美精选激情视频| 日韩在线性爱免费视频| 99只有精品| 超碰人人乐97| 日本日皮视频逼| 国产精品成人福利在线| 国产高清免费不卡av| 国产乱伦视频污| 理论久久婷婷网8| 欧美色交| 人妻色情天天操| 任我爽在线视频免费观看 | av中亚| 青青草原伊人网| 丝袜美腿丝袜| 偷拍 欧美 日韩| 强奸乱伦AV一天堂网| 伊人网免费视频| 久久性爱视频免费看| 亚洲电影中字一区二区| av无码精品久久久久| 亚洲中文日韩欧美大香蕉视频| 国产人妖的免费的视频| 手机看av网站在线看| 操逼日韩无码 | 91综合在线| 永久免费观看的毛片的网站| 曰韩操B| 国产精品99久久久www| av在线资源| 亚洲一二三精品久久网| 五月天人妻综合| 啊啊啊啊嗯嗯在线久久久| 国产精品香蕉| 精品成人动漫一区二区| 日本三级日本三级99| 极品五月天噜噜| 久久超碰免费的| 亚洲综合影片| 欧美少妇色图| 性在久久久久久| 色墦五月丁香| 麻豆精品三区视频| 欧洲精品一级二级精品综合视频综合| 最新岛国大片| 精品久久視頻在线| 欧美一区二区三区成人性生活| 欧美变态激情网| 欧美精品系列| 自拍偷拍亚洲熟女妇人精品 | 天天干天天日天天射黄色| 日韩午夜国产| 精品91日日夜夜超清资源| 大香蕉视频一二三区| 欧美日韩性爱精品| 欧美激情一| 最新亚洲黄色免费电影| 欧美精品999| 尤物av网站| 亚洲人精品午夜不卡| 中文字幕在线免费观看2| 日韩色欲久久一二三四区| 五月天激情婷婷| 久9久9精品| 欧美精品97| 国产av激情无码久久天堂| 99九九久久| 女上位精品在线| 亚洲一区日韩精品| 蜜桃臀 后入 一区 二区 三区 在线| 欧美激情黑人| 无码高清专| 97精品国产手机| 欧美人妖内射| 色综合尤物| 少妇精品久久久| 美国黄片aaa| 神马久久久久眼| 久久三区四区| 九九RE视频在线精品| 啊啊啊97视频| 午夜无遮挡男女啪啪视频| 欧美国产日韩清纯唯美| 东京热综合久久一区二区| www黄片免费看com| 五月天加勒比啪| 久久中文字幕一区不卡| 亚州色站 日韩电影| 偷拍盗拍亚洲色图图片 | 日本人妻中文字幕精品| 久偷拍| 91精品久久久| 青娱乐手机日韩在线视频| 欧美不卡在线一区二区| 亚洲日韩青青草色月| 黄片www视频免费| 亚洲天堂男人在线| 啊啊啊好想要| 欧美91精彩| 岛国毛片手机在线观看| 呻吟 欧美 日本 中出| 日本国产欧美高清在线| 亚洲999综合| 国产资源中文字幕在线| 九九热五区| 久久首页| 久久中久文96| 日韩女优中文字幕| 国产一级内射无挡观看| 久草色在线观看| 激情五月天网| 26uuu久久| 亚av顶级裸体一区二区三区四区五区 | 亚洲骚男同com| 蜜桃av综合网发布| 99re这里只有精品9| 夫妻四区五区六区| 色噜噜精品一区二区三| 俺去也婷婷| 91黑丝在线| 性性久久| 97干在线看| 久久社区一区二区三区| 99少妇| 青娱乐av在线| 国产九九九九九九九九| 秋霞 色色| 久久人妻无码毛片A片麻豆| 国产AV超爽| 亚洲欧美另类激情小说| 久久精品国产精品| 精品国产一区二区三区av在线资源| 欧美激情高清性猛交| av在线人气| 激情小说成人日本无码一| 91熟女网| 久久久成人免费av电影| 久草色悠悠在线视频| 日韩一级成人毛片免费观看| 91春色| 色综合1991| 又大又白奶子| 亚洲成人久久美女| 亚洲精品性爱片| 91无码精品| 97 九色| 超碰 97国产熟女| 日韩激情啪啪啪| 黄骗免费网站| 我想要啊 啊 啊| 大香蕉中文aV在线| 欧美综合骚| 欧美劲爆视频一区二区| 蜜桃色院一区久久| 亚洲欧美一区二区三区在钱蜜桃| 一区二区三区欧美激情| av日韩在线观看电影| 性91| 四虎免费在线播放| 美女上床网站| 哑洲在线| 综合激情一一91| 有码人妻系列| 精品少妇后入一区二区三区四区人妻巨乳| 天天色综亚洲91污| 欧美aa一级片| 成年人三级黄色片视频| 欧美日韩在线视频网站| 白丝AV| 婷婷久月| 夫妻天天操岛国视频| 国产性爱欧美性爱在线| 亚洲国成人情色好看电影| 九九热九九热| 伊人久久国产免费观看视频| 91色艳| 97色色网| 91青视频| 丝袜制服字幕在线| 蜜臀亚洲中文| 女人一区| 久久久专区| 欧美另类色| 99re这里只有精品3| 中文字幕在线播放2中文字幕在线观看2| 精品午夜福利国产一区二区在线观看| 亚洲天堂一区二区久久| 亚洲97久久精品亚洲| 国产JDAV无码视频在线观看| 国产无码精品高清| 蜜桃视频成a人v在线| 97爱亚洲| 中文字幕日韩专区精品系列| 2018天天干在线视频| 粉嫩av平台| 人人做天天爱| 无码在线亚洲| 亚州色图第三区| 亚洲精品一二三四区| 欧美一二三区四五区| 最新av中文字幕高清| 92性色国产午夜福利在线661| ji熟女.com| 国产中文精品一区二区在线观看| 国产精选三级在线观看| 亚洲高潮少妇| 久久水蜜臀亚洲AV无码精品| 欧美性Fer办公室秘书| 有码专区最新中文字幕有码| 亚洲 中文字幕 精品| 人妻一区视频| 色五月婷婷色| 超碰综合色| 97天天插| 欧美综合国产精品久久丁香| 国产精品无码在线| 欧美性猛交美女自慰91| 色综合20p| 熟妇人妻一二三区免费| 成人97人人超碰人人| 亚洲av影院在线观看| www.色婷婷.com| 97色欧州| 九九九九九精品视频| 日本色色视频网站| 色99视频| 熟妇激情| 日本国产亚洲一区在线观看| 99久久久99久久91熟女| 骚女高跟AV在线| 亚洲97在线| 成人5码视频| 大香蕉手机在线视频| 久久是精品| 激情天天视频| www.色五月| 久神马| 国产强奸乱伦无码视频| 日本女人操逼| 天天在线91| 亚洲黄片免费在线播放| 伊人久久88国产女| 午夜福利合集| 国产精品岛国片在线观看| 日韩精品人妻中文字幕有码午| 欧美日韩亚洲少妇寂寞影院正在播放| 日韩亚洲精品一区二区| 日韩日本欧美在线观看| 日韩在线76| 亚洲欧美激情小说| 不卡免费av在线播放| 97精品国产手机| 久久专区| 三级片大波波| w w w.久久精品| 五月激情啪啪| 超碰98综合网| 一级特黄aaa大片在线观看成人一级片在线观看 | 极品销魂美女一区二区| 欧美久久九九| 亚洲色图91| 99操99| 婷婷五月天色网| 乱伦3P视频| 老女人碰碰在线碰碰视频| 操B视频日韩无码| 999久久久久久久精| 色五月AV| 江都AV在线| 久久综合九色综合欧洲98| 一本道综合色图| 啪啪啪综合| 天天日天天爽| 国产91精品在线免费| 亚洲,欧美,春色,另类| 欧美性性性| 久久男人的天堂国产| 一区二区影视| 天天淫人人妻日日色| 久久二| 色噜噜人妻av 中文字幕| 欧美色涩| 久久久熟妇熟女国产| av网站在线观看了| 97干综合网| 男女一级A片大黄,一进一出| 亚洲天堂资源网| 精品.99999| 特级特黄一级毛片免费| 欧美色图97| 久久艹逼视频| 青娱乐淫乱1314| 久久综合女优| 色婷五月| 天天躁日日躁成人字幕aⅴ| 亚洲日韩久久精品一区| 亚洲精品一区中文字幕乱码| 美国黄片aaa| 欧美综合自拍亚洲综合图| www久| 秋霞网无码| 久久视频,这里只有精品| 丁香九月激情| 91东京热男人的天堂| 久操视频免费观看| 无码国产精品96久久久久孕妇| 久久亚洲天天做| 欧美午夜一区二区三区| 久久78| 欧美色图在线视频少妇| 吻戏激情性巴克| 日韩簧片免费看| 九九九九九九综合| 欧亚久久偷拍视频| 五月激情视频| 黄色大片免费在线| 日本不卡在线二区三区| 超碰天天操你比| 婷婷五月天福利| 97精品熟女少妇一区| 好涩综合| 男人的天堂三级| 亚洲欧洲无码97久久精品| 欧美激情综合色综合啪啪五月| 操操操五月天婷婷丁香影院| 校园春色美腿丝袜 | av操操不卡| 色五月大香蕉| 婷婷中文网| 成人26uuu| 91欧美综合| 国产极品久久久| 美女啊啊啊啊pc| 激情综合五月丁香| 一级黄色牲爱A级片| 国产精品探花色| 四虎在线观看视频| 少妇蹲下露出大唇5| 久久久久斤小| 婷婷五月天无码| 91女神在线视频| A片 AV一级在线播放观看免费| 边做饭边操逼逼| 亚州综合色| 日韩9区| 天天夜夜rb| 久久久久久免费电影| 亚洲欧洲色情高清| 99综合自拍| 欧美中文字幕一区 | 嗯嗯啊啊啊好舒服| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 成人八戒网站| 中国少妇XXXX做受| 26uuu偷拍亚洲欧洲综合| 亚洲精品一二牛牛| 水滴偷拍| 欧洲精品一级二级精品综合视频综合 | 91美女视频在线免费观看| 大香蕉十区| 99re3这里只有精品| 韩国女主播青草福利视频| 欧美|91色综合| 亚洲 图片 综合91| 狼人综合婷婷激情四射 | 二男一女成人A片| 久久性生大片免费观看性| 欧美综合自拍| 福利视频香蕉免费一区二区在线| 国产女大学生AV| 国产精品人妻一区二区| 亚洲色图尤物视频| 在线性黄高清免费视频| 性爱综合网| 中文伊人大香蕉视频| 色综合加勒比四四季| 久久最新视频免费观看| 免费看污网址| 啊啊啊水好多| 大香蕉性欧美| 91免费看一区二区三区| 欧美精品xxxwww| 在线视频日韩欧美国产| 国产成人自拍视频在线| 精品久久視頻在线| 国产一区二区三区不卡手机在线| 熟妇最新先锋一二三区| 亚洲精品1区| 一卡二卡在线播放| 天天干天天操天天操夜夜操天天操| 97手机日韩| 国产精品久久久久久久AV大片 | 亚州操逼图| 99久久婷婷| 又黄又粗又硬又长又大| 欧美日韩不卡传媒| 欧美十八禁视频| 激情啪啪拍91| 久久天天躁日日躁狠狠躁| 天欧美在线| 日日超碰亚洲| 人妻熟女av国产网站| 国产精品视频电影| 色网亚洲人| 一级人妻性爱视频| 九九av| Aa东京男人的天堂| 亚州欧美在线| 北约熟女超碰| 亚洲综合另类欧美久久久| 人澡逼| 日韩性爱一级片| 欧美十八禁导航成人| 91大胆欧美| 欧美黑人日韩少妇色情| 蜜乳AV.COM| 骚货| 午夜啊啊| 无码少妇精品一区二区60岁老人 | 大肥女高潮bbwbbwhd视频| 亚洲Av无码成人精品国产| 9.1小视频| 欧美日日网| 很很干很很操| 18禁中文字幕| 蜜桃成人1区2区3区| 白丝少妇一区二区| 欧美色偷偷| 七久久久| 成人性生活高清视频在线播放| 超碰无码加勒比| 999在线电影香蕉| 久久激情四射婷婷丁香五月天| 日韩色图 一区二区| 亚一综合久久久久久久久久| 久久成人东京热人妻| 日韩精品熟妇| 操一区| 1人人看人人摸人人操| 国产欧美另类久久久精品课程| 91+欧美| av一区二区三区 中文| 国内偷拍精品一区二区| 久久原创中文| 亚洲色性情三级| 无码9区| 色呦色呦色精品| 国产又长又大又粗的视频| 96AV精品| 亚洲日本天堂| 国产精品久久久久久久久久梁医生| 日韩乱伦视频| 欧美在线官网| 小说区 图片区色 综合区| 无码免费精品高清| 无套内射人妻在线播放| 久久男人精品| 91 亚洲 欧美 日韩 国产 综合| 九九九九九精品视频| 91白虎| 亚洲久久久| 91精品人妻一品二品三品| 色噜噜狠狠色综无码久久合欧美| 综合网 欧美| 秋霞一级鲁丝片A片| 亚洲国产精品有声| 欧美激情综合| 久久久久日本视| 亚洲青色欧美| 大逼色网站| 99在线观看| 亚洲丝袜二区在线| 亚洲国产福利视频| 九九黄色视频在线观看| 97chaopengongkai| 色婷婷丁香五月| 精品九九九九九| 欧美夜色| 精品 码产区一区二-1080P高清在线www-B029AV| 亚洲91射| 婷婷另类小说| 大香蕉啪啪啪| 色网在线视频观看免费| 啊啊啊不要好爽日韩无码一区| 国产视频不卡在线观看| 试看日韩黄片| av橘色网站| 欧美日动态视频| 久久久一热在线播放| 欧美视频在线视频免费va| 人妻中文字幕精品无码| 九九热九九| 日夜尻逼网| 国产熟女完整版中字| 超碰人人干| 欧美熟妇乱码在线一区| 男人久久天堂| 欧美最婬乱婬爆婬性视频| 国产无码久久高清| 日日夜夜骚| 免费一级黄色录像影片| WWW美腿丝袜香蕉中文| 亚洲精品日韩国产欧美| 欧美亚洲首页| 欧美三级免费伊人| 欧美激情综合色综合啪啪五月| 日韩一性一交一A片俄罗斯| 国产精品。| 黄色大香焦1级‘′‘| 在线观看高清AV| 最新国内自拍av免费| 2018天天日天天日| 美国黄片aaa| 中文字幕精品一区二| 色网1| 五月天亚洲网| 久干网| 国产少妇肉丝在线观看| 一级@啪啪视频| 熟妇人妻精品一区二区| 91熟女综合| 日韩精品区二区三区不卡| 日本人妻中文字幕精品| 欧美在线啊啊| 狠狠色五月亚洲91| 成人资源中文字幕在线观看| 亚洲色9| 天天摸夜夜摸| 天美AV片| 亚洲情色五月天| 日韩精品国产精品五码一区二区| 国产亚洲精品第一最新| 97超碰色| 97色网| 蜜乳中文字幕a在线| 青青草福利视频| 亚洲图片欧美色| 欧美天天综合网版| 人妻一区二区三区熟女| 91欧美少妇| 东北操逼| 久热久操| 操曰本熟女| 97超碰欧美手机在线| 久草精品一区| 后入式福利| 激情情色五月天| 91色人| 日韩天天综合| 啊啊啊免费| 97超碰站| 日本天天操| 操逼网免费无码视频| www.人人cao| 青青草日韩无码| 美腿色图| 日韩av情韩国爱禁区av一区二区| 久欲AV| 人爽不卡视频| 乱伦一二三区| 屁屁影院一区二区三区国产| 91chinese在线| 色av中文字| 丰满欧美少妇| 丝袜色综合| 色九久| 中文字幕亚洲热播人妻| 婷婷久月| 久久久国产精品亚洲精品| 99re视频在线播放青草| 影音先锋每日最新资源在线观看 | 日本激情免费大片| 久热无码| 亚洲宗合网| 懂色Av| 色色色欧美| 天天色欧美| 欧美在线视频观看一二三四区高清| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 中文字幕狠狠玩| 91在线免费观看处女| 国产精品久久久午夜夜伦鲁鲁| 久久久久亚洲Av无码专区老牛影视| 国产品精品自在在线午夜免费| 乱伦AVxx| 97精品在线| 极品欧美一区二区三区| 校园春色制服丝袜中文字亚洲| 国产第11页| 亚洲一区二区三区欧美日韩| 刺激精品视频| 啊啊啊想要| 色婷婷五月综合| 夜夜久久久| 超碰久久中文| 欧美色图20p| 免费视频在线观看啊啊啊啊啊| 老鸭窝成人| 99这里有精品视频| 国产日本顶级一区二区三区| 992这里有精品| 91爱| 欧美熟妇操操视频| 综合久久久久久久综合网| 98精品国产乱码久久久久久| 可以免费观看的日韩av毛片| 日日干夜夜骑| 黄网在线播放| 国产精品久久久| 欧美一区二区三区大综合| 97欧美性爱| 国产精品久久蜜乳av| 成 人 影视 一区 二区 三区 四区| 加勒比少妇AV婷婷六月天超碰超碰| 日韩精品一区二区日韩| 99热这里只有精品18| 天天干2区3区| 大色综合网| 日本不卡五区| 久久宗合亚洲| 国产13区| 日韩一级成人毛片免费观看 | 亚洲 欧美 色图| 狠狠干精品一二三四五六2022| 五月香婷婷| www.yeyecao| 91精品人妻一区二区三区蜜臀| 国产美女91视频| 99热超碰在线| 日本日皮视频逼| 影视综合无码少妇| 午夜精品久久一区二区| 精品少妇一区二区三区| 久久综合中文国产| 久久久久人妻| 日本3级一区二区免费| 成人无码在线视频网站| 校园春色亚洲色图| 欧美日韩系列| 日韩欧美传媒一区国产| 久久久久久大| 精品丰满人妻一区二区三区免费观| 国产亚洲精品激情| 小说区 图片区色 综合区| 欧色网址| 日韩啪啪视频| 亚洲综合电影| 日日嗷| 色香欲影| 亚洲毛片基地专区| 欧美人妻制服| 无码精品久久久久久亚洲| 国产精品久久久 | 国产精品久久久久亚洲av| 色婷婷六月丁香七月婷婷| 天天操夜夜操狠很操| 欧美的性爱网站免费| 日韩中文字幕精品一区在线| 香伊人在线| 大香蕉520| 91oumei| 最新av在线| AV男人天堂网| 在线观看亚洲成人精品| 黄色操人| 99热国产| 东北女人的毛片| 欧美青青草视频| 亚洲欲色| 亚洲欧洲日韩国产自在线| 超碰在线人妻| 2019午夜福利视频| 神马久久午夜| 91人妻尻屄视频| 夜夜嗨AV一区天天| 殴美色网| 亚洲国产成人福利在线观看| 中文字幕啊啊啊在线观看视频| 熟女中出视频| 91精品人妻偷情| 91色婷婷综合久久中文字幕二区| 91AV老熟女视频| 中文字幕日韩情色| 久久av成人无码免费| 久操B网| 97超碰日韩| av凤凰久久久| 国产激情在线| 亚洲女毛多水多21P| 91久久国产综合精品| 91亚州| 中文字日本乱码| 国产强奸无码乱伦| 欧美不卡在线美女| 日本东京热加勒比久久| 久久五月份| 欧中美三级一区二区三区| 亚洲欧美激情在线视频| 韩日自拍| 不卡免费av在线播放| 麻豆黄站| 超碰人人妻| 亚洲欧美国产va在线播放频| 无码欧美有限公司| 3PAV乱伦视频| 久久久精久久久| 国产肏逼网站| 风月影院男女十八禁| 黄色大香焦1级‘′‘| 欧美人妻少妇| 精品久久久久久久久久久久| 强奸乱伦亚洲第一页| 熟女精品一区二区在线观看| 欧美性暴力猛交XXXX | 午夜福利免费福利视频| 2003天天干夜夜操| 欧美淫穴| 蜜乳av一区二区| 久久国产乱子伦精品免费女,网站| 亚洲精品99| 美国一区二区三区视频| 亚欧美综合| 麻豆AV96熟妇人妻| 偷拍自拍在线视频观看| 九九久久久| 色呦色呦色精品| 久久99综合| 日韩激情啪啪啪| 午夜男人的天堂| 日本熟妇人妻中出视频| 人人操人人操人妻人| 加勒比AV网| 亚洲天堂区| 国产又操| 思思在线免费视频| 狼狼色丁香久久婷婷综合五月 | 国产在线观看一区二区三区| 亚洲第一页综合在线| 欧美精品双插| 亚洲情色五月天| 看看小穴| 6080yy午夜理论三级一区二区三区无码 | 女优免费一区二区永久| 国产精品日韩在线一区| 国产第12页| 肉动漫无遮挡h在线观看| 成年人黄色| 欧美人体性爱互联网第一页婷婷日本| 亚洲性综合11| 九久久精品| 中文字幕人乱码中文字的预防方法| 日韩偷拍色图| 无码91| 男人久久精品| 欧美综合 站| 老鸭窝日丰县女人| 毛片麻豆91糖心精品毛情片| 欧美韩日精品资源| 9999久久久久| 中文字幕乱碼在线| 蘋果手機免費看成人Av| 青青草女人天天干| 我想要啊 啊 啊| 97操碰| 日本中文字幕不卡视频| 飘花国产午夜精品不卡| 性在久久久久久| 激情五月天网| 男人网站婷婷| 97干在线视频| 无码区蜜乳| 欧美大的香蕉有线电视视频| 国产激情在线| 欧美18 在线观看| 国产无马av| 久草资源在线视频官方总站日韩丝袜美腿| 伊人网在线观看| 啊啊啊在线观看| 另类 日韩 熟女| 亚洲,欧美,春色,另类| 大香蕉啪啪啪啪在线| Julia Annxxxxx| 超碰免费97| 日韩欧美国产高清视频| 久久高清欧美国产| 国模吧 一区二区三区| 精品人妻中文字幕4399| 精品亚洲国产成人AV制服丝袜| 99ri在线视频| 97超碰中文字幕| 超碰在线第一页| 国产高清无码一区三区二区| 色婷婷在线视频精品导航| 大香蕉92| 免费伦费视频在线观看| 欧美爆操91| 97欧美| 岛国黄色短视频| 欧美综合 站| av日韩国产一区二区| 综合网久久| 成人线上超碰| 欧美另类色图片| 91亚洲网| 99久久com免费视频′| 一二区在线观看视频| 综合色99| 女生看匆91网站| 国产女上位好爽在线| 少妇一区二区三区| 中文字幕在在线观看网站| 另类图片欧美激情综合| 青苹果影院男人的天堂| 伊人久久AV诱惑悠悠| 夜夜爽妓女| 自拍偷拍 日韩无码| 日韩欧美女求操每天更新| 亚洲色啪| 无码免费在线观看黄色片| 2026国产精品视频| av资源在线观看少妇| 欧美18老人禁| www被窝色com| 大香蕉五月天婷婷| 日韩有码 一区二区三区| 亚洲色图国产另类| 国产亚洲精品农村妇女 | 欧美草草高清日韩视频| 女色视频社区| 91精品人妻电影| 超碰97亚洲| 精品一区二区三区蜜桃臀www| 发朗少妇买婬全视频中文| 午夜亚洲国产理论秋霞| 精品传媒在线一区| 丰满人妻一区二区中文| 综合色播| 六月激情婷婷| 成年人三级黄色片视频| a男人的天堂久久一级A毛片| 99热日| 99re99视频在线免费观看| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 91国产伊人大香蕉| 日本99热| 91超碰人人| 96爱综合| 日本免费一区二区不卡| 热热色国产一二区AV| 久久久天堂| 在线洲亚线| 少妇贴图| 加勒比伊人| 亚瑟国产精品久久无码| 狠狠色婷婷| 91色图片| 日韩特一级久久| 成人性生活高清视频在线播放| 人人搞人人插人人操| 亚洲精品国产精品成人| 无码黑人精品一区二区三区三| 色官网色综合| 91粉芽高清在线一区二区| 欧美白嫩在线放| 久久久999国产精品| 欧美人人曰人人操人人射射 | 日韩人妻一区二区| 欧美国产日韩高清在线| 青青爽| 久草看看看| 在线观看成人性爱免费小视频| 啪啪91| 精品人妻一区二区三区免费视频| 看日韩黄片| 亚洲不卡AV在线| 欧美激情视频一区二区三区不卡| 精品少妇一区二区三区| 亚洲精品天堂久久A∨51成人漫| 蜜桃精品一区二区三区ww| 操一对老熟妇爽上天视频| 欧美一级做a爰片免费视频| 综合亚洲情色| 色综合V| 色婷婷久久综合超碰| 一级毛片久久久久久久女人18| 亚洲精品97在线| 色综合一本| 色婷婷综合久久久久中文一区二区 | 亚洲男人天堂网久久| 91性片| 女优视频第10页| 欧美综色欧| 99热这里| 夜夜性| 大香蕉国产中文自拍| 伊人四虎综合| www.伪伪| 久久久久ab| 日韩在线观看字幕精品| 大香蕉欧美国产日韩高潮| 一类无码操逼视频| 国产第二页| 最近的最新的中文字幕视频| 免看60秒涩涩视频| 色综合久久久久| 亚洲久久久久| 日韩人妻大香蕉| 精品国产一区探花在线观看| 欧美成人9797| 精品三级在线专区| 九九人妻| 五月婷色| 99久久婷婷丁香| 99蜜月精品久久| 亚洲欧洲小说图片视频 | 青青草在线视频人人想人人上| 在线综合 亚洲 欧美中文字幕| 欧洲一区二区三区免费| 日韩一级免费性爱| 日骚逼视频| nuu12国产麻豆精品| 六六久久日韩不卡| 加勒比久久综合网高清| 高清视频一区| 亚洲情色综合网| 色 婷97| 天天看综合网| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 加勒比日本在线| 日本道久久综合色色| 亚洲精品无码成人久久久99| 国产视频人人网| 亚洲一区中文字幕| 蜜臀在线网站| 伦在线97| 国产精品久久久777| 乱理日韩中文| 又大又黄国产| 天天综合精品| 精品国产一区二区三区av在线资源| 精品日韩中文在线| www.亚洲成人一区|