精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国精产品乱码一区一区三区四区| 日韩精品欧美大片| 国产精久久一区二区| 中文字幕无码毛片免费看| 亚洲成av人片在线观看香蕉| 欧美精品少妇一区二区三区| 在线最新版中文在线| 无码成人精品区在线观看| 美女久久久久久久| 国产综合久久久久久久久久久久| 国产精品福利电影| 国产成人三级视频| 91精品国产91热久久久做人人| 久久国产小视频| 中文字幕在线观看高清| 秋霞在线一区二区| 亚洲国产精品系列| 石原莉奈在线亚洲三区| 91啦中文在线| 亚洲v在线观看| 欧美国产先锋| 中国美女黄色一级片| 久久久国产精彩视频美女艺术照福利 | 欧美熟妇激情一区二区三区| 久久精品99久久香蕉国产色戒| 久久精品免费| 日韩精品视频在线观看一区二区三区| 毛片在线视频观看| 欧美日韩一区二区三区在线| 美国一区二区| 欧美日韩偷拍视频| 91免费在线视频| 中文字幕不卡三区| 欧亚在线中文字幕免费| 中文国产在线观看| 色婷婷av一区二区三区久久| 国产精品草草| 草逼视频免费看| 欧美在线一区视频| 中国china体内裑精亚洲片| 另类小说视频一区二区| jizz性欧美| 999精品免费视频| 欧美综合第一页| 国产精品素人一区二区| 高清一区二区| 99久在线精品99re8热| 久久久久久久久久久久久久一区| 91国偷自产一区二区开放时间 | 亚洲乱码中文字幕| 成人福利免费在线观看| 国产做受高潮漫动| 亚洲一区二区三区欧美| 欧美v亚洲v综合ⅴ国产v| 亚洲国产国产亚洲一二三| 四虎久久免费| 美女脱光内衣内裤| 成人欧美一区二区三区视频| 欧美日韩久久一区二区| 国产精品亚洲综合久久| www.xxxx国产| 五月婷婷六月丁香激情| 午夜欧美不卡精品aaaaa| 欧美国产亚洲另类动漫| 私拍精品福利视频在线一区| 国产精品久久久久久免费播放| 久久国产精品免费观看| 亚洲精品日韩欧美| 国产精品自拍av| 在线中文字幕播放| 91视频免费网址| 国产妇女馒头高清泬20p多| 久久夜色撩人精品| 亚洲日本在线a| 在线电影一区二区| 2020国产在线视频| 久草网视频在线观看| 欧美日韩中文国产一区发布| 精品亚洲国产成av人片传媒 | 国产丝袜高跟一区| 国产成人av电影在线| 韩国精品视频在线观看| www.五月婷婷.com| 国产福利在线免费| www.久久久| 亚洲成人激情图| 91丝袜呻吟高潮美腿白嫩在线观看| 台湾佬综合网| 在线国产91| 天天天天天天天天操| 国产精品www在线观看| 91精品国产91久久久久久最新| 亚洲香肠在线观看| 国产欧美综合一区二区三区| 操人在线观看| 中文字幕乱码视频| 亚洲欧美一区二区三区不卡| 久久精品一区二区三区不卡免费视频| 国产亚洲精品美女| 亚洲激情av在线| 日韩av二区在线播放| 精品一区二区三区在线观看视频| 视频午夜在线| 欧美极品aaaaabbbbb| 亚洲精品自拍网| 欧美日韩在线观看一区二区三区| www.日韩视频| 欧美色视频日本版| 成人免费视频网站在线观看| 国产精品一区二区av交换| 黄av在线播放| www.日本精品| 狠狠人妻久久久久久综合蜜桃| 亚洲欧洲国产精品久久| 午夜精品久久久99热福利| 日韩欧美综合一区| 亚洲欧美成aⅴ人在线观看| 蜜桃视频免费观看一区| 亚洲区小说区图片区qvod| 久久99亚洲网美利坚合众国| 亚洲综合精品视频| 国产又粗又硬视频| 六月丁香婷婷在线| 国产美女精品在线观看| 久久精品人人做人人爽| 欧美视频完全免费看| 国产精品无遮挡| 国产v综合v亚洲欧| 午夜一级久久| 国产精品欧美日韩一区| 福利一区二区免费视频| 快射视频在线观看| 亚洲精品久久久久久久久久| 国产小视频在线观看免费| 亚州av综合色区无码一区| 国产精品久久中文字幕| 国产乱码精品一区二区三区中文 | 午夜视黄欧洲亚洲| 国产69精品久久99不卡| 奇米综合一区二区三区精品视频| 天天综合国产| 日韩成人一级| 粉嫩av国产一区二区三区| a级网站在线播放| 国精品人妻无码一区二区三区喝尿 | 免费久久99精品国产自| 国产ts人妖一区二区三区| 最新69国产成人精品视频免费| 欧美三级一区二区| 亚洲一区二区三区精品在线| 国产三级欧美三级日产三级99| 国产一区二区在线观看视频| 久久亚洲二区| 在线不卡欧美| 日韩欧美高清| 蜜臀av免费一区二区三区| 日日夜夜综合| 婷婷六月国产精品久久不卡| 欧美三级黄网| 国产综合在线观看| 免费观看黄色av| 蜜臀尤物一区二区三区直播| 欧美成人精品欧美一级| 四季av中文字幕| 瑟瑟视频在线观看| 娇妻高潮浓精白浆xxⅹ| 亚洲色图久久久| 嫩草av久久伊人妇女超级a| 久久av秘一区二区三区| 欧美裸体网站| 日本福利一区二区三区| www.久久草| 成人黄色av免费在线观看| 2019精品视频| 日韩美女激情视频| 国产精品男女猛烈高潮激情| 国产精品久久久久久久久久| 国产日韩在线看| 成人在线国产精品| 91精品婷婷国产综合久久蝌蚪| 国产精品高潮粉嫩av| 欧洲日韩成人av| 98精品国产自产在线观看 | 中文字幕中文字幕在线十八区 | 日韩免费观看在线观看| 日韩av电影中文字幕| 国产精品露脸av在线| 国产在线不卡精品| 91九色蝌蚪成人| 91亚洲va在线va天堂va国| 国产精品视频播放| 国产乱码精品一区二区三区卡 | 久久精品久久精品亚洲人| 欧美日韩成人综合| 欧美三级韩国三级日本一级| 精品免费在线观看| 国产乱人伦偷精品视频不卡| 狠狠网亚洲精品| 国产成人免费网站| 丁香桃色午夜亚洲一区二区三区| 麻豆成人av在线| 一本一道久久综合狠狠老精东影业| 秋霞一区二区三区| 345成人影院| 成人国产二区| 91tv亚洲精品香蕉国产一区| 警花av一区二区三区| 日韩高清一区| 欧美aaa级| 高清av不卡| 日韩新的三级电影| 黄视频免费在线看| 超碰个人在线| 91在线不卡| 丝袜国产在线| 青春草视频在线| 黑人精品视频| yw.尤物在线精品视频| 日韩欧美另类中文字幕| 激情综合闲人网| 国产丝袜精品丝袜| 在线观看福利电影| 96sao精品免费视频观看| 精品三级久久久| 国产成人aa在线观看网站站| 在线成人超碰| 久久 天天综合| 欧美一区二区视频观看视频 | 精品日韩免费| 免费av一区| 奇米色777欧美一区二区| 国产精品一品视频| 国产欧美视频一区二区| 欧美国产亚洲另类动漫| 一区二区三区不卡视频| 欧美在线视频日韩| 日韩亚洲精品视频| 亚洲欧美制服中文字幕| 在线视频日韩精品| 国产99在线|中文| 国产精品theporn88| 欧美日韩中文字幕在线播放| 三级视频中文字幕| 免费黄色在线视频| 欧美日韩一二三四区| 亚洲色大成网站www| free性欧美hd另类精品| 美腿丝袜亚洲图片| 国内精品麻豆美女在线播放视频| 大型av综合网站| 欧美久久九九| 麻豆国产精品官网| 亚洲国产高清在线观看视频| 欧美婷婷六月丁香综合色| 伊人久久久久久久久久久久久| 九色91av视频| caoporn国产精品免费公开| 国产大尺度在线观看| 日本老熟妇毛茸茸| 亚洲色图 激情小说| 亚洲免费黄色网址| 精品美女视频在线观看免费软件| 懂色av色香蕉一区二区蜜桃| 国产探花一区在线观看| 激情文学综合丁香| 综合分类小说区另类春色亚洲小说欧美 | 日本在线高清| 精品入口麻豆88视频| 亚洲国产精品日韩专区av有中文| 国产在线不卡一卡二卡三卡四卡| av网站免费线看精品| 偷窥少妇高潮呻吟av久久免费| 日韩欧美卡一卡二| 久久久在线视频| 欧美日韩免费观看一区| 亚洲性图第一页| 99久久一区二区| 欧美第一精品| 精品女同一区二区三区在线播放| 欧美美女一区二区在线观看| 2019中文字幕全在线观看| 一区二区三区四区欧美| 欧美成人aaa片一区国产精品| 96日本xxxxxⅹxxx17| 精品亚洲a∨一区二区三区18| 国产视频一区在线观看| 国产精品九九视频| aaa国产精品视频| 国产一区二区女| 97婷婷涩涩精品一区| 青青草原av在线| 91精品国产乱码久久久久久蜜臀| av资源中文在线| 国产成人在线亚洲欧美| 国产高清日韩| 国产伦精品一区二区三区在线 | 欧美刺激性大交免费视频| 超碰在线无需免费| 午夜精品一区二区三区在线视频| 理论在线观看| 国产精品91一区二区| 4438x全国最大成人| 91美女蜜桃在线| 中文字幕精品亚洲| 一区二区三区中文字幕| 欧美一级片免费在线观看| 欧美午夜一区二区| 亚洲av无码专区在线| 一区二区亚洲欧洲国产日韩| jizzjizz亚洲| 亚洲三级观看| 久久99蜜桃综合影院免费观看| 99亚洲伊人久久精品影院| 成人爱爱电影网址| 亚洲欧洲偷拍精品| 伊人久久大香线蕉午夜av| 久久国产柳州莫菁门| 最爽无遮挡行房视频在线| 免费看欧美女人艹b| 一区二区激情视频| 国产精品丝袜高跟| 无码国产精品一区二区高潮| 91啦中文在线| 欧美激情成人在线| 色婷婷亚洲精品| 成人做爰66片免费看网站| 超碰97av在线| 鲁鲁在线中文| 久久国产精品第一页| 久久视频精品在线| 日本www.色| 1区2区3区在线视频| 亚洲黄网站黄| 欧美日韩在线亚洲一区蜜芽| 中文字幕中文字幕99| 日本成人不卡| 国产一区二区三区四| 日韩风俗一区 二区| 国产男女裸体做爰爽爽| 亚洲欧洲免费视频| 国模精品视频| 国产精品一区二区三区不卡 | 青青草视频在线视频| 久久人人爽人人爽人人| 日韩一区二区三区高清在线观看| 午夜精品视频一区| 日韩一区不卡| 亚洲区小说区图片区| 日韩在线a电影| 影音先锋欧美精品| 波多野吉衣在线视频| 国产精品刘玥久久一区| 国产乱人伦偷精品视频不卡| 97碰在线观看| 永久免费av无码网站性色av| 在线毛片观看| 国产精品久久国产精麻豆99网站| 波多野结衣久草一区| 精产国品一区二区| 蜜桃视频第一区免费观看| 国产在线视频一区| www.国产黄色| 久久99精品久久久| 国产91精品网站| 性爱在线免费视频| jazzjazz国产精品久久| 日韩欧中文字幕| 日本天堂免费a| se在线电影| 91美女片黄在线| 国产精品二区视频| 国产一区福利| 一区高清视频| 国产精品99久久久久| 精品午夜福利在线观看| 日韩精品极品视频| 欧美在线va视频| 国产精品美女在线播放| 国产区在线看| 国产精品久久久久影院亚瑟| 久久99精品久久久久子伦| 在线免费观看日韩视频| 欧州一区二区| 亚洲国产精品一区二区久| 高潮一区二区三区| 日韩色淫视频| 51久久夜色精品国产麻豆| 成人免费看片视频在线观看| 天堂av中文在线资源库| 成人一区在线观看| 99www免费人成精品| 神马一区二区三区| 久久蜜桃资源一区二区老牛| 91精品91久久久久久| 国产一级片免费| 国产精品毛片在线| 亚洲最大成人网色| 国产一区二区三区影院| 亚洲片区在线| 91精品久久久久久久久青青 |