精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

牛人教你使用Node.js和Twilio實現(xiàn)手機控制門鎖

移動開發(fā)
這篇文章將會指導(dǎo)你如何通過手機控制你家的門鎖,而且是在不需要弄壞或改造門鎖的情況下實現(xiàn)。我們需要使用一個微控制器(Arduino Uno),一個電機,和Node.js,用它們來實現(xiàn)通過短信遠程開鎖和關(guān)鎖。

試想一下,如果你忘了帶鑰匙,但你帶手機了,你就可以打開門鎖。或者,你還在往家趕,可你的朋友已經(jīng)到你家門口,你通過手機遠程把家門打開,讓朋友先自己進去看會兒電視。這不是科幻,也不需要多先進的設(shè)備,而是自己動手開發(fā)出來的。

[[111324]]

本文是基于我在波蘭的Makerland大會上的一次研討演講。這篇文章將會指導(dǎo)你如何通過手機控制你家的門鎖,而且是在不需要弄壞或改造門鎖的情況下實現(xiàn)。我們需要使用一個微控制器(Arduino Uno),一個電機,和Node.js,用它們來實現(xiàn)通過短信遠程開鎖和關(guān)鎖。我是受到了Twilio-powered Lockitron的啟發(fā)。

8

步驟1:設(shè)備

部件

1. 一把門鎖

2. 膠帶,紙板

3. 電機(我使用的是HS-322HD)

4. 微控制器(Arduino Uno) + 轉(zhuǎn)接線

準備

1. 從http://arduino.cc/en/Main/Software下載和安裝Arduino IDE。

2. 從http://nodejs.org/獲取并安裝

3. 從https://ngrok.com/download下載并安裝 ngrok (一個內(nèi)網(wǎng)穿透程序)

我 將使用Arduino IDE寫代碼并上傳到往微控制器里。我使用node.js腳本語言來和Arduino微處理器進行通信,利用Express web框架發(fā)送請求和相應(yīng)請求。最后,我們使用ngrok將這個Express web Server暴露到外網(wǎng),這樣我們就可以通過短信讓Twilio通信給你的微控制器。

現(xiàn)在,我們可以開始動手了,將我的微控制器跟門鎖鏈接上。

步驟2:裝配

我們將使用一個伺服電機控制門鎖。它就是一個馬達,動力軸需要能旋轉(zhuǎn)180度的那種,這樣我們才能讓門鎖轉(zhuǎn)開和閉合。

這個伺服馬達有三根線—火線(紅),零線(黑),控制線(通常是黃色或白色)。微處理器上有很多口,將馬達的火線連接5v電力口,零線接入GND地線口,控制線接入Digital Pin 12口,如下圖:

1

就這樣,我的馬達和微控制器連接到了一起,我們再將它和門鎖裝配到一起。

我喜歡用家里常用的東西來開發(fā)這些設(shè)備,但如果你能連接上一個3D打印機,你可以設(shè)計和打印出自己的鎖扣裝置。

因為是示范,我使用了紙板和膠帶來將電機和門鎖固定到一起。

將兩個金屬棍(或其它堅固的細棍)幫到馬達上,用東西墊一下:

2

使用紙板(或其它比較硬的東西)當(dāng)做門鎖和電機之間的連接填充物:

3

4

用膠帶將電機和門鎖綁到一起,確保是綁在正確的一面,讓電機轉(zhuǎn)動的方向是開鎖或關(guān)鎖的方向:

5

6

最后,我們將電動機軸固定到鎖鈕上:

7

現(xiàn)在我們已經(jīng)將電機和門鎖死死的固定到一起了:

8

步驟3:編寫控制程序

電機和微控制器已經(jīng)連接,Node.js和Arduino等軟件也已經(jīng)安裝了,現(xiàn)在我們需要運行下面的命令來安裝必要的node.js模塊。注意,如果你使用的是Windows,你需要按照node-serialport Windows安裝指令

  1. npm install serialport twilio express 

Node-Serialport能夠讓你輕松的通過Arduino微控制器串口跟Node.js程序交互。我們將要使用它從Twilio里接受短信請求,并傳遞指令給Arduino微控制器讓它關(guān)鎖或開鎖。

Express是一個簡單的node.js web框架。而twilio模塊能讓我們輕松的和Twilio API交互。

首先,我們打開Arduino IDE,建立一個新的Arduino開發(fā)框架。第一步我們需要打開一個9600波特的串口連接,跟伺服馬達接通(12口)。

  1. #include  
  2.  
  3. Servo myservo; 
  4. int servoPin = 12; 
  5. int lock = 0; 
  6. int unlock = 180; 
  7.  
  8. void setup() { 
  9.   // initialize serial: 
  10.   Serial.begin(9600); 
  11.   myservo.attach(servoPin); 
  12.   myservo.write(lock); 

我們告訴微處理器,伺服馬達的0位置是“鎖住”,180位置是“解鎖”。跟據(jù)你是如何將馬達跟門鎖捆綁的,也許需要交換調(diào)整這個位置。當(dāng)微控制器啟動時,它會告訴馬達移動到“鎖住”位置。

接下來,我們將從串口連接上讀取一個字符,來判定是否應(yīng)該調(diào)動馬達運行。

  1. void loop() { 
  2.    // Recieve data from Node and write it to a String 
  3.    while (Serial.available()) { 
  4.     char inChar = (char)Serial.read(); 
  5.     if(inChar == 'V'){ // end character for locking 
  6.      if (myservo.read() >= 90) { 
  7.        Serial.println("L"); 
  8.        myservo.write(lock); 
  9.        delay(3000); 
  10.      } 
  11.      else { 
  12.        Serial.println("U"); 
  13.        myservo.write(unlock); 
  14.        delay(3000); 
  15.      } 
  16.     } 
  17.   }   

Arduino用來分析的串口輸入是來自node.js腳本的輸出,下面我們會介紹這個腳本。

在Arduino IDE開發(fā)環(huán)境外,我們用一個文本編輯器創(chuàng)建一個新文件,叫做nodelock.js,文件的開頭是導(dǎo)入前面我們用npm安裝的模塊:

  1. var twilio = require('twilio'), 
  2.    SerialPort = require("serialport").SerialPort, 
  3.    express = require('express'); 

下面我們將建立新express web serverserialPort連接

  1. var app = express(); 
  2. var serialPort = new SerialPort("/dev/tty.usbmodem1411", { 
  3.  baudrate: 9600 
  4. }); 

注意,我們指定了要連接的USB端口和波特率。你可能需要根據(jù)你的計算機的情況修改這個USB端口。你可以在Arduino->Tools->Port菜單上找到你的可用的USB端口號。

下面我們要設(shè)定HTTP相關(guān)信息,調(diào)用/sms:

  1. app.use(express.bodyParser()); 
  2.  
  3. app.post('/sms', twilio.webhook('your auth token', { host:'foo.herokuapp.com', protocol:'https' }), function(req, res){ 
  4. }); 

我們需要告訴express服務(wù)器通過/sms地址接受POST請求,使用bodyParser分析請求內(nèi)容,獲取來自Twilio的短信信息。我們使用twilio的webhook方法來驗證請求來源的可靠性。

現(xiàn)在,我們有了接收短信的地址,在試一下之前,我們應(yīng)該檢查一下發(fā)短信的號碼是否是我們用來控制鎖的號碼。

  1. app.post('/sms', twilio.webhook('your auth token', { host:'foo.herokuapp.com', protocol:'https' }), function(req, res){ 
  2.  if (req.body.From == "+12128675309") { 
  3.    console.log("verified number!"); 
  4.  } else { 
  5.    console.log("Wrong number!"); 
  6.    sendMessage(res, "Invalid number!"); 
  7.  } 
  8.  
  9. }); 

在驗證號碼的代碼段里,我們可以加入一個處理發(fā)送和相應(yīng)Arduino微控制器上串口連接的功能。

  1. serialPort.once('data'function(data) { 
  2.      if (data.toString().indexOf('U') > -1) { //check if the Arduino returned a U for unlocking 
  3.        sendMessage(res, 'Unlocking!'); 
  4.      } 
  5.      else if (data.toString().indexOf('L') > -1) { 
  6.        sendMessage(res, 'Locking!'); 
  7.      } 
  8.      else { 
  9.        sendMessage(res, 'ERROR'); 
  10.      } 
  11.      console.log('data received: ' + data); 
  12.    }); 
  13.  
  14.    serialPort.write("V"function(err, results) { 
  15.      if (err) { 
  16.        console.log('err ' + err); 
  17.      } 
  18.      console.log('results ' + results); 
  19.    }); 

這代碼看起來很雜亂,但這是相當(dāng)直接的寫法。我們設(shè)定了事件處理器從微控制器里接受數(shù)據(jù)。這個事件處理器會檢查Arduino微控制器發(fā)送的是 “U” 還是 “L” ,我們獲取這個值,并用sendMessage函數(shù)將信息反饋給用戶。

設(shè)定了事件處理器后,我們向Arduino微控制器里寫入“V”字符,告訴它接收到了短信,它現(xiàn)在應(yīng)該打開/關(guān)閉門鎖。

我們現(xiàn)在往文件中加入sendMessage函數(shù),它有2個參數(shù):res和message。

  1. function sendMessage(res, message) { 
  2.  var resp = new twilio.TwimlResponse(); 
  3.  resp.message(message); 
  4.  res.type('text/xml'); 
  5.  res.send(resp.toString()); 

調(diào)用sendMessage函數(shù)會給用戶發(fā)送TwiML響應(yīng)信息。TwiML是XML的子集,Twilio用它來傳遞短消息指令。在我們這里,我們用它告訴Twilio響應(yīng)我發(fā)送的SMS信息。用戶也許會發(fā)送“unlock”,程序會通過Twilio SMS回復(fù) “Unlocking!”

我們已經(jīng)配置了SMS處理器,最后只需要打開SerialPort,啟動Express web server,我們的應(yīng)用就開發(fā)完了:

  1. serialPort.open( function () { 
  2.  app.listen(3000); 
  3.  console.log('Listening on port 3000'); 
  4. }); 

這就是所有我們需要的代碼。現(xiàn)在,如果你上傳我們之前寫的Arduino代碼,運行nodelock.js,方法是在終端里執(zhí)行node nodelock.js,程序就啟動了。

如果你在開發(fā)的過程中遇到了錯誤,可跟這些代碼對比一下看是什么問題。

在創(chuàng)建并登陸你的Twilio帳號后,到 Twilio控制臺,點擊號碼標簽,選擇你希望用來控制鎖的號碼。你會看到兩個框,語音請求地址(Voice Request URL)和消息請求地址(Messaging Request URL)。我們使用Messaging Request URL來傳遞我們的短信文本信息。

因為Twilio是通過HTTP請求通信的,我們需要有一個能從公網(wǎng)上訪問的地址,當(dāng)有消息到達時,Twilio會將信息傳遞跟這個地址。于是我們之前安裝的ngrok就起作用了。

等你的node.js服務(wù)器起來,開一個終端窗口,在你安裝ngrok的目錄下輸入./ngrok 3000,這里你需要指定一個地址,通過它,外部服務(wù)能訪問你的本地服務(wù)器。在這個地址后面跟上/sms,填入Twilio Messaging Request URL欄里,保存設(shè)置,試著發(fā)送一個短信!你的門鎖應(yīng)該隨著短信自動打開或關(guān)閉。

祝大家玩的愉快,編程開心!

[英文原文:Build Your Own Lockitron With Twilio, Arduino, and Node.js ]

責(zé)任編輯:閆佳明 來源: vaikan
相關(guān)推薦

2014-04-10 09:43:00

Node.jsTwilio

2021-07-16 04:56:03

NodejsAddon

2019-05-05 11:47:09

TypeScript開發(fā)Node.js

2011-12-23 10:51:24

Node.js

2015-07-15 12:53:05

Node.jsSocket.io遠程控制

2013-03-28 14:54:36

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2022-08-28 16:30:34

Node.jsDocker指令

2020-08-07 10:40:56

Node.jsexpress前端

2017-09-07 12:35:39

前端JavascriptNode.js

2023-01-10 14:11:26

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2023-04-18 15:18:10

2011-09-08 13:53:31

Node.js

2021-03-09 08:03:21

Node.js 線程JavaScript

2021-03-03 06:39:05

Nodejs前端開發(fā)

2021-07-30 11:20:53

JavaScriptNode.jsWeb Develop

2016-08-25 21:28:04

前端node截圖

2022-08-22 07:26:32

Node.js微服務(wù)架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

欧美另类综合| 玖草视频在线观看| 欧美黑吊大战白妞| 亚洲1区在线观看| 亚洲一二三四区| 精品国产乱码一区二区三区四区| 亚欧视频在线观看| 超碰成人久久| 91精品国产欧美一区二区| 欧美大片免费播放| 无码国产伦一区二区三区视频| 亚洲在线网站| 在线视频欧美日韩| 色诱av手机版| 午夜欧美巨大性欧美巨大| 国产精品人妖ts系列视频| 亚洲影院高清在线| 91丝袜一区二区三区| 亚洲国产精品综合久久久| 亚洲精品按摩视频| 亚洲天堂国产视频| 高清精品在线| 中文成人av在线| 国产99视频精品免费视频36| 日本丰满少妇做爰爽爽| 国一区二区在线观看| 国产一区二区三区欧美| 免费啪视频在线观看| gogo在线高清视频| 国产色91在线| 国产伦理久久久| 国产精品欧美激情在线| 久久亚洲一区| 高清欧美性猛交xxxx| 成人黄色短视频| 日本一道高清一区二区三区| 欧美一区午夜视频在线观看| 少妇人妻互换不带套| av福利在线导航| 国产精品久久久久天堂| 久久资源亚洲| 性猛交富婆╳xxx乱大交天津| 奇米精品一区二区三区在线观看一| 国内精品国产三级国产在线专| 激情无码人妻又粗又大| 欧美亚洲色图校园春色| 欧美日韩一区久久| 99久久久无码国产精品性色戒| 黄色片免费在线| 成人av片在线观看| www.一区二区三区| 一级特黄aaa| 日韩高清一区在线| 国产91色在线免费| 久久夜色精品国产噜噜亚洲av| 亚洲午夜av| 欧美黄色小视频| 少妇人妻丰满做爰xxx| 91视频综合| 国产一区二区三区在线免费观看| 精品人妻一区二区免费视频| 一区二区三区在线免费看| 欧美一区欧美二区| 黄色片免费网址| 国产精品一区二区精品| 欧美一区二区在线视频| 超碰在线资源站| 高清一区二区三区av| 欧美日韩高清一区二区| 久久人人爽av| 亚瑟国产精品| 5858s免费视频成人| 午夜视频在线网站| 国产午夜久久av| 欧美一二三四区在线| 亚洲精品久久久久久| 9999久久久久| 日韩电影大片中文字幕| 久久国产精品影院| 不卡中文字幕| 欧美成人中文字幕| 国产午夜视频在线播放| 中文一区在线| 国产精品福利在线观看网址| 亚洲中文字幕在线观看| 国产精品主播直播| 国产美女精品在线观看| 欧美女优在线| 国产精品国产三级国产有无不卡| 中文字幕第50页| 女同一区二区免费aⅴ| 午夜精品福利一区二区三区av| 国产精品美女视频网站| 在线看的片片片免费| 欧美日韩综合| 97碰碰碰免费色视频| 区一区二在线观看| 国内精品写真在线观看| 国产高清在线精品一区二区三区| 四虎电影院在线观看| 久久久国产综合精品女国产盗摄| 在线日韩av永久免费观看| 亚洲色图美国十次| 日韩欧美aaa| 亚洲午夜精品一区二区三区| 欧美 日韩 国产 精品| 久久精品视频免费| 先锋影音男人资源| 绿色成人影院| 欧美精品亚洲一区二区在线播放| 久久久久亚洲av无码网站| 一区二区三区人妻| 国产suv精品一区| 国产亚洲a∨片在线观看| 欧美熟妇一区二区| 波多野结衣一区| 欧美黄色免费网站| 中文字幕手机在线视频| 精品无码三级在线观看视频| 国产成人高清激情视频在线观看 | 亚洲天天做日日做天天谢日日欢 | 亚洲精品社区| 国产精品一区二区在线| 国产精品国产一区二区三区四区| av亚洲精华国产精华| 亚欧精品在线| 一二三四视频在线中文| 欧美一区二区三区在| 成人免费无码大片a毛片| 亚洲国产不卡| 国产伦精品一区二区三区精品视频| 刘玥91精选国产在线观看| 亚洲欧美怡红院| 狠狠操精品视频| 成人爽a毛片免费啪啪红桃视频| 国产一区二区三区四区大秀| 亚洲免费电影在线观看| 久久久精品国产sm调教网站| 麻豆专区一区二区三区四区五区| 久久久www免费人成黑人精品| 亚洲午夜色婷婷在线| 成人精品在线看| 粉嫩久久99精品久久久久久夜| 在线天堂一区av电影| 成人软件在线观看| 精品亚洲永久免费精品| 日韩欧美亚洲一区二区三区| 国产精品一品视频| 最新视频 - x88av| 91精品国产自产观看在线| 一本久久综合亚洲鲁鲁| 婷婷激情五月综合| 91色九色蝌蚪| 成人综合视频在线| 国产一区在线电影| 久久久亚洲国产| 国产手机av在线| 中文字幕亚洲精品在线观看| 久久久久久久久久久久91| 精品一级毛片| 国产精品扒开腿做爽爽爽男男 | 欧美性生活久久| 欧美激情视频网站| 国产免费久久久久| 精品一区二区免费视频| 吴梦梦av在线| 精品99re| 色综合久久久888| 成人激情四射网| 午夜视黄欧洲亚洲| 欧美性xxxx图片| 欧美日韩免费| 韩国成人av| 免费亚洲电影| 在线视频中文亚洲| 99久久免费国产精精品| 亚洲一区影音先锋| 中文字幕xxx| 全部av―极品视觉盛宴亚洲| 亚洲毛片aa| 精品国产亚洲一区二区三区在线 | 日韩欧美999| 人人人妻人人澡人人爽欧美一区| 免费看日韩精品| 特级毛片在线免费观看| 911精品国产| 欧美一区二粉嫩精品国产一线天| 国产综合在线观看| 欧美高清激情brazzers| 一区二区三区免费高清视频| 91视频在线看| 欧美午夜精品理论片a级按摩| 91精品国产三级| 激情综合久久| 欧美精品亚洲| 永久免费观看精品视频| 欧美激情视频在线观看| 青青草视频在线观看| 欧美三级电影在线观看| 久久国产免费观看| 2020国产精品| 做a视频在线观看| 9国产精品视频| 亚洲一卡二卡三卡| 久久国产精品免费精品3p| 欧洲美女免费图片一区| 国产理论在线观看| 亚洲美腿欧美激情另类| av中文字幕免费在线观看| 丰满岳妇乱一区二区三区| 亚洲女人久久久| 99久久精品国产毛片| 日韩一级免费片| 亚洲激情综合| 国产精品成人一区二区三区吃奶| 五月天激情在线| 亚洲性69xxxbbb| 韩国av电影在线观看| 欧美午夜精品一区二区蜜桃| 免费日韩一级片| 日韩美女视频一区二区| 中国毛片在线观看| 成人激情文学综合网| 日韩a级在线观看| 午夜欧美在线| 婷婷四房综合激情五月| 日韩影视高清在线观看| 亚洲综合在线小说| 久久不卡日韩美女| 日韩免费观看高清| 92久久精品| 久久艳片www.17c.com| 欧美国产日韩综合| 国产欧美一区二区精品仙草咪| 日韩毛片在线免费看| 国内自拍一区| 影音先锋成人资源网站| 日本欧美肥老太交大片| 只有精品亚洲| 亚洲成人网在线观看| 国产又粗又猛又黄又爽无遮挡| 好吊成人免视频| 日本少妇高清视频| 亚洲日本一区二区三区| 美国一级黄色录像| 国产日韩精品一区二区浪潮av| 欧美日韩一区在线视频| 免费污视频在线一区| 日韩美女视频免费在线观看| 18videosex性欧美麻豆| 久久精品人人爽| 天堂аⅴ在线地址8| 中文字幕在线亚洲| 337p日本欧洲亚洲大胆鲁鲁| 亚洲精品wwww| 草草地址线路①屁屁影院成人| 91久久精品无嫩草影院| 亚洲精品视频在线观看视频| 人妻无码中文字幕| 日韩一区二区三区视频在线| 中文字幕人妻精品一区| 欧美亚洲动漫制服丝袜| 欧美videossex极品| 午夜激情综合网| 一区二区三区免费高清视频| 亚洲一区二区三区四区中文字幕| 青青青在线视频| 亚洲在线视频一区| 日本天堂在线视频| 色综合天天性综合| 波多野结衣视频在线观看| 在线观看中文字幕不卡| 国产精品美女久久久久av爽| 一区二区欧美在线观看| 色偷偷男人天堂| 亚洲人成在线观看一区二区| 日本青青草视频| 亚洲成在人线免费| 欧美性受xxx| 国产婷婷视频在线| 欧美另类老女人| av资源在线播放| 国产97人人超碰caoprom| 亚洲第一影院| 国产日韩欧美在线看| 日韩中文字幕| 欧美12av| 欧美超碰在线| 日产精品久久久久久久蜜臀| 亚洲女同同性videoxma| 日本免费观看网站| 国产一区三区三区| 国产 中文 字幕 日韩 在线| 中文字幕av不卡| 少妇久久久久久被弄高潮| 欧美日韩国产精品一区二区不卡中文| 蜜臀精品一区二区三区| 7777精品伊人久久久大香线蕉| 日本精品久久久久久| 在线播放国产一区二区三区| 超碰在线观看免费版| 性欧美长视频免费观看不卡| 欧美xxxx做受欧美护士| 999在线免费观看视频| 久久综合加勒比| 亚洲欧洲av在线| 91精品国产高潮对白| 欧美日韩亚洲综合一区二区三区| 国产黄色av网站| 亚洲男人天堂2024| 2021国产在线| 国产99在线|中文| 日本一区二区三区视频在线看 | 国产大片免费看| 色综合色狠狠天天综合色| 国内老熟妇对白hdxxxx| 亚洲天堂第二页| free性欧美| 成人午夜小视频| 国产va免费精品观看精品视频| 国产精品三级一区二区| 日本人妖一区二区| 中文在线永久免费观看| 一区二区免费在线| 中文亚洲av片在线观看| 日韩精品免费一线在线观看| 免费在线观看黄| 日本欧美中文字幕| 粉嫩精品导航导航| 男同互操gay射视频在线看| 日韩va亚洲va欧美va久久| 中文字幕在线播放一区| 亚洲精品午夜久久久| 奇米777第四色| 视频精品一区二区| 中文视频在线观看| 一区二区三区日韩欧美| 一级片视频播放| 一夜七次郎国产精品亚洲| 午夜成年人在线免费视频| 成人免费网视频| 久久麻豆精品| 网站一区二区三区| 国产亚洲美州欧州综合国| 亚洲欧美在线视频免费| 精品88久久久久88久久久| 成人黄视频在线观看| 91丨九色丨国产在线| 欧美xxxx中国| 色综合久久久久久久| 国产精品嫩草影院精东| www.亚洲免费视频| 婷婷激情成人| 亚洲一区二区在线看| 在线激情免费视频| 国产亚洲一区二区在线| 欧美私密网站| 久草一区二区| 国产午夜精品一区二区三区欧美| 一级黄色电影片| 亚洲国产精品精华液网站| 亚洲国产av一区二区| 揄拍成人国产精品视频| 韩日一区二区| 亚洲一区影院| 国产一区二区日韩精品| 欧美黄片一区二区三区| 日韩一区二区三区电影在线观看| 亚洲色图美国十次| 黑人另类av| 久久久久国产精品一区二区| www.99热| 5566中文字幕一区二区电影| 三级在线播放| 国产精品第100页| 日韩亚洲一区在线| 天天干天天曰天天操| 亚洲18女电影在线观看| 日批视频在线播放| 国产成人a亚洲精品| 久久在线免费| 国产精品99久久久精品无码| 亚洲午夜精品在线| 免费在线看v| 国产一区深夜福利| 日本大胆欧美| 日本精品一区在线| 亚洲国产乱码最新视频 | 三级黄色录像视频| 精品裸体舞一区二区三区| 无遮挡爽大片在线观看视频| 日韩欧美99| 国产一区999| 麻豆久久久久久久久久| 在线观看国产精品91| 一区二区三区亚洲变态调教大结局| 92看片淫黄大片一级| 中文字幕日韩精品一区| 午夜一区在线观看| 91精品久久久久久久久久入口 |