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

使用Node.js、Twilio實現(xiàn)手機(jī)控制門鎖

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

 [[111313]]

8

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

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

步驟1:設(shè)備

部件

1. 一把門鎖

2. 膠帶,紙板

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

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

準(zhǔ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微處理器進(jìn)行通信,利用Express web框架發(fā)送請求和相應(yīng)請求。最后,我們使用ngrok將這個Express web Server暴露到外網(wǎng),這樣我們就可以通過短信讓Twilio通信給你的微控制器。

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

步驟2:裝配

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

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

1

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

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

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

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

2

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

3

4

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

5

6

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

7

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

8

#p#

步驟3:編寫控制程序

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

  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波特的串口連接,跟伺服馬達(dá)接通(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); 

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

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

  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ù)你的計算機(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代碼,運(yùn)行nodelock.js,方法是在終端里執(zhí)行node nodelock.js,程序就啟動了。

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

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

因為Twilio是通過HTTP請求通信的,我們需要有一個能從公網(wǎng)上訪問的地址,當(dāng)有消息到達(dá)時,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

譯文鏈接:http://www.vaikan.com/lockitron-with-twilio-arduino-and-node-js/

責(zé)任編輯:林師授 來源: 外刊IT評論 編譯
相關(guān)推薦

2014-04-10 09:55:46

手機(jī)Node.jswilio

2021-07-16 04:56:03

NodejsAddon

2022-08-28 16:30:34

Node.jsDocker指令

2020-08-07 10:40:56

Node.jsexpress前端

2015-03-10 10:59:18

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

2013-11-01 09:34:56

Node.js技術(shù)

2023-01-10 14:11:26

2011-09-08 13:53:31

Node.js

2021-03-09 08:03:21

Node.js 線程JavaScript

2015-07-15 12:53:05

Node.jsSocket.io遠(yuǎn)程控制

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)

2012-09-29 11:13:15

Node.JS前端開發(fā)Node.js打包

2021-03-03 06:39:05

Nodejs前端開發(fā)

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2012-10-24 14:56:30

IBMdw
點贊
收藏

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

亚洲欧美网站在线观看| 8888四色奇米在线观看| 欧美福利电影在线观看| 5858s免费视频成人| 一区二区三区视频| 中文字幕在线播放av| 婷婷国产精品| 亚洲国产成人av网| 精品麻豆av| 在线观看国产亚洲| 免费成人av| 在线欧美一区二区| 亚洲黄色成人久久久| 伊人网视频在线| 婷婷另类小说| 日韩欧美一级二级| 东北少妇不带套对白| 色网站在线免费观看| 丝瓜av网站精品一区二区| 在线观看欧美成人| 91福利国产成人精品播放| 亚乱亚乱亚洲乱妇| 男女激情视频一区| 欧美xxxx18国产| 精品国产免费久久久久久婷婷| 国产精品186在线观看在线播放| av中文字幕一区| 欧美一级在线亚洲天堂| 亚洲黄色免费视频| 成人在线日韩| 亚洲第一福利视频在线| 日本免费一区二区三区| 国产精品熟女久久久久久| 欧美日韩亚洲一区| 97人妻天天摸天天爽天天| 成人午夜电影在线观看| 日本中文字幕一区二区有限公司| 日韩中文字幕在线看| 国产成人精品一区二区三区在线观看| 黄色18在线观看| 久久久久国产精品人| 国产免费一区视频观看免费| 久久久久亚洲天堂| 最新亚洲精品| 日韩一区二区电影网| 69堂免费视频| 男人天堂手机在线| 99久久99久久综合| 国产日韩欧美中文在线播放| 香蕉免费毛片视频| 超碰成人久久| 亚洲国产成人精品女人久久久| www.涩涩涩| av免费不卡国产观看| 欧美激情一区二区在线| 99电影网电视剧在线观看| 亚洲欧美自拍视频| 欧美国产精品| 最近2019中文字幕mv免费看 | 成人免费网站在线看| 日韩久久久久久久久| 手机亚洲手机国产手机日韩| 亚洲精品456在线播放狼人| 99色精品视频| 久久99亚洲网美利坚合众国| 国产精品成人网| 精品视频一区二区| 精品黑人一区二区三区在线观看| 首页亚洲欧美制服丝腿| 992tv在线成人免费观看| 国产一区二区三区在线视频观看| 精品欧美久久| 亚洲精品日韩丝袜精品| 精品1卡二卡三卡四卡老狼| **国产精品| 欧美色视频日本版| 欧洲金发美女大战黑人| 米奇精品一区二区三区| 国产精品无人区| 日韩福利二区| 飘雪影院手机免费高清版在线观看 | 欧美成人一二三区| 99热精品久久| 自拍偷拍亚洲区| av黄色在线免费观看| 亚洲永久精品唐人导航网址| 亚洲激情在线观看| 制服丝袜第一页在线观看| 成人性生交大片免费看96| 69堂成人精品免费视频| av免费一区二区| 美女网站视频一区| 在线观看一区二区视频| 美女黄色片视频| 日韩av首页| 欧美在线观看禁18| 在线免费视频a| 亚洲天堂一区二区| 在线观看91视频| 欧美一级裸体视频| 日韩欧美色视频| 精品自拍偷拍视频| 久久精品一区二区不卡| 中文字幕欧美日韩精品| 老司机精品免费视频| 欧美gayvideo| 日韩在线免费视频| 亚洲人成电影在线| 少妇伦子伦精品无吗| 91免费精品国偷自产在线在线| 欧美精品乱人伦久久久久久| av在线网址导航| 日韩有码欧美| 日韩亚洲欧美中文三级| 天天躁日日躁狠狠躁av麻豆男男 | 欧美一区高清| 欧美xxxx综合视频| 中文字幕人妻一区二| 综合久久婷婷| 韩国三级电影久久久久久| 国语对白永久免费| 毛片av中文字幕一区二区| 国产综合在线观看视频| 精品国产亚洲AV| www.久久久久久久久| 欧美日本韩国国产| 日韩免费网站| 亚洲精品免费在线观看| 国产精品专区在线| yy6080久久伦理一区二区| 欧美一区二区三区视频在线| 香港三日本8a三级少妇三级99| 视频一区欧美| 美女扒开尿口让男人操亚洲视频网站| 国产女同在线观看| 麻豆一区二区在线| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 亚洲日本在线a| 久艹视频在线免费观看| 日韩制服诱惑| 欧美tk丨vk视频| 中文字幕在线1| 欧美精选在线| 日本三级韩国三级久久| 国产喷水福利在线视频| 久久女同精品一区二区| 日本福利视频网站| 久久精品 人人爱| 亚洲激情久久久| 夫妇交换中文字幕| 欧美激情一级片一区二区| 国产盗摄xxxx视频xxx69| 国产精品久久久久久久久久久久| 亚洲午夜在线播放| 成人动漫在线一区| 宅男一区二区三区| 自拍一区在线观看| 日韩亚洲电影在线| 调教驯服丰满美艳麻麻在线视频| 亚洲黄色一区| 成人午夜在线视频一区| 男人的天堂在线视频| 一区二区三区四区在线免费观看 | 99精品在线免费| 亚洲精品偷拍视频| 97精品国产综合久久久动漫日韩| 欧美一区二区在线不卡| 人与嘼交av免费| 国产精品三上| 国产91社区| 顶级网黄在线播放| 欧美人成免费网站| 黄色三级生活片| 国产精品久久久久久模特| 99精品在线直播| 麻豆影院在线| 色婷婷综合久久久久中文一区二区 | 婷婷久久综合网| 欧美a级一区二区| 精品一区二区三区视频日产| av日韩国产| 日韩精品一区二区在线| 亚洲色图综合区| 韩国av一区二区三区四区| 亚洲精品日韩成人| 国产亚洲欧美日韩精品一区二区三区 | 一本色道久久| 国产一区二区三区免费不卡| 爱看av在线| 欧美精品一区二区久久婷婷| 国产第一页在线播放| 99视频有精品| 九一国产精品视频| 加勒比视频一区| 7m精品福利视频导航| 偷拍25位美女撒尿视频在线观看| 欧美性猛交xxxx偷拍洗澡| 欧美精品黑人猛交高潮| 免费精品视频| 日产国产精品精品a∨| 91亚洲视频| 日韩中文字幕网| 国产片高清在线观看| 亚洲在线观看免费视频| 国产十八熟妇av成人一区| 亚洲综合小说| 丁香五月网久久综合| h片在线观看视频免费| 日韩电影中文字幕一区| 黄色片视频免费| 亚洲国产精品传媒在线观看| 污污视频网站免费观看| 99久久这里只有精品| 亚洲综合成人婷婷小说| 波多野结依一区| 亚洲男人的天堂在线| 中文字幕在线播放日韩| 亚洲图片你懂的| 伊人影院在线观看视频| 性欧美精品高清| 一区二区三区四区五区精品| 亚洲国产高清在线观看| 青草成人免费视频| 天堂а√在线资源在线| 欧美成人精品3d动漫h| 黄色片中文字幕| 一区二区中文视频| av免费观看不卡| 日本一不卡视频| 三区精品视频| 亚洲三区欧美一区国产二区| 人人做人人澡人人爽欧美| 黄色成人影院| 精品在线小视频| ,一级淫片a看免费| 欧美日韩色婷婷| 精品人妻中文无码av在线| 国产69精品久久99不卡| 亚洲黄色av网址| 一本久道久久综合狠狠爱| 在线视频91| 日韩有码一区| 91在线视频九色| 97se综合| 久精品免费视频| 精品99又大又爽又硬少妇毛片| 日韩三级在线免费观看| 91在线视频免费播放| 亚洲色图丝袜美腿| xxxx日本黄色| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 成人夜色视频网站在线观看| 国产美女18xxxx免费视频| 久久99伊人| 欧美大黑帍在线播放| 爽成人777777婷婷| 欧美日韩电影一区二区三区| 免费一级欧美片在线观看网站| 国产suv精品一区二区| sm久久捆绑调教精品一区| 久热99视频在线观看| 经典三级在线| 亚洲精品久久久久久久久| 国产成a人亚洲精v品无码| 欧美午夜宅男影院| 久久久久久少妇| 亚洲男人的天堂一区二区| 九九热久久免费视频| 国产91丝袜在线播放九色| 国产一级片中文字幕| 久久国产欧美日韩精品| 免费看a级黄色片| 国产欧美日本| 欧美日韩一道本| 99av国产精品欲麻豆| 性高湖久久久久久久久aaaaa| 欧美va天堂在线| 日韩最新中文字幕| 99精品电影| 一区二区不卡视频| 国产精品久久久久无码av| 日韩视频精品| 日韩欧美高清| 一本久久a久久精品vr综合| 久久中文字幕av| youjizz.com亚洲| 99精品在线观看| 色播亚洲视频在线观看| 欧美手机视频| 婷婷四月色综合| 人人狠狠综合久久亚洲婷| 亚洲高清123| 97人人精品| 男人j进女人j| 国产一区二区三区自拍| 日韩日韩日韩日韩日韩| 国产一区二区三区的电影| 久久免费视频3| 青青草视频一区| 日本黄色的视频| 国内精品伊人久久久久av一坑| 成人免费黄色av| 国产成人在线色| 欧产日产国产精品98| 久久久久久久免费视频了| 夫妇交换中文字幕| 亚洲欧美一区二区三区极速播放| 久久精品人妻一区二区三区| 精品久久久久久亚洲精品| www.国产毛片| 欧美日韩小视频| www.av黄色| 精品视频中文字幕| av在线电影院| 欧美理论片在线观看| 日本在线播放一二三区| 国产精品视频最多的网站| 99精品女人在线观看免费视频| 国产精品国产三级欧美二区| 国产一区毛片| 久久综合亚洲精品| 美女爽到呻吟久久久久| 麻豆一区二区三区视频| 亚洲精品a区| 精品国产免费人成电影在线观...| 日韩大片在线播放| 131美女爱做视频| 久久99精品久久只有精品| 欧美肉大捧一进一出免费视频| 国产精品不卡在线| 日本中文字幕第一页| 亚洲成人亚洲激情| 老司机在线视频二区| 国产精品吹潮在线观看| 欧美尿孔扩张虐视频| 中文精品无码中文字幕无码专区| 美女在线观看视频一区二区| 丰满少妇一区二区三区| 亚洲综合一区二区三区| 亚洲天堂手机版| 亚洲网站在线播放| 男人av在线播放| 国产精品一区二区三区在线观| 亚洲综合色网| 久久久精品高清| 国产精品视频你懂的| 日韩在线播放中文字幕| 亚洲激情视频在线播放| www.youjizz.com在线| 91精品天堂| 香蕉久久网站| av网站在线不卡| 国产女主播视频一区二区| 看黄色一级大片| 亚洲欧美国产高清va在线播| 成人一级福利| 国产精品对白一区二区三区| 综合一区在线| 91精产国品一二三产区别沈先生| 中文一区二区在线观看| 最近中文字幕免费在线观看| 一级做a爰片久久毛片美女图片| 韩国成人漫画| 久久婷婷开心| 新狼窝色av性久久久久久| 国产特级黄色录像| 在线视频一区二区三| 国产鲁鲁视频在线观看免费| 国产精品久久久久av免费| 日韩欧美自拍| 久久久久xxxx| 亚洲欧洲日本在线| 99视频在线观看免费| 欧美俄罗斯性视频| 加勒比久久高清| 日本精品免费在线观看| 国产日韩精品一区二区三区| 中国女人真人一级毛片| www日韩中文字幕在线看| 国产一区二区久久久久| 91.com在线| jlzzjlzz国产精品久久| 青青青国产在线| 尤物tv国产一区| 成人免费观看49www在线观看| 久久精品xxx| av激情综合网| 精品久久久久久久久久久久久久久久久久| 中文字幕av一区二区| 精品视频成人| 欧美三级在线观看视频| 国产女同互慰高潮91漫画| 国产欧美一区二区三区视频在线观看| 欧美黄色片免费观看| 日韩精品丝袜美腿| 人人干人人干人人| 亚洲一二三区在线观看| 三级视频在线播放| 成人h片在线播放免费网站| 欧美日韩三级电影在线|