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

久久99久久久久久久噜噜| 另类欧美日韩国产在线| 欧美mv和日韩mv的网站| 国产淫片免费看| av在线电影网| 国产成人av一区二区三区在线观看| 久久久亚洲精选| 人妻av无码一区二区三区 | 欧美国产日本高清在线| 中文字幕在线播放一区| 成人在线视频免费| 夜夜嗨av一区二区三区四季av| 精品国产一区二区三区日日嗨| 青青国产在线视频| 国产精品hd| 日韩一区二区在线播放| 欧美成人免费高清视频| 国产成人无吗| 久久久99免费| 国产精品久久久久久久久久久久午夜片 | 91在线第一页| 在线一区av| 亚洲免费观看高清完整版在线| 精品国产_亚洲人成在线| 亚洲视频一区二区三区四区| 国产视频欧美| 色婷婷综合久久久久| 亚洲久久久久久| 精品一区91| 欧美视频自拍偷拍| 国产 日韩 亚洲 欧美| 国产美女福利在线| 亚洲国产精品v| 久久免费一区| 少妇人妻偷人精品一区二区| 激情av综合网| 国产精品午夜一区二区欲梦| 国产在线视频在线观看| 91精品国产自产在线观看永久∴| 亚洲午夜久久久影院| 国产日韩视频一区| 视频成人永久免费视频| 欧美日韩国产综合久久| 精品国产成人av在线免| 欧美久久天堂| 亚洲图片有声小说| 91国在线高清视频| 成人福利网站| 亚洲色图19p| 一区二区三区一级片| av网站大全在线观看| 久久精品一区二区三区不卡| 久久久影院一区二区三区| 婷婷在线免费视频| 不卡在线视频中文字幕| 精品免费国产| 青春草在线观看| 久久久久久久久久久电影| 欧美精品久久久| 欧洲毛片在线| 国产日韩v精品一区二区| 免费国产一区| 极品白浆推特女神在线观看 | 亚洲激情图片| 幼a在线观看| 国产精品国产自产拍在线| 亚洲成人自拍视频| 超碰公开在线| 亚洲人被黑人高潮完整版| 国产免费xxx| 男人添女人下部高潮视频在线观看| 亚洲精品免费一二三区| 久操网在线观看| 韩日成人影院| 欧美色视频在线| 一本之道在线视频| 久久91在线| 亚洲欧美日韩中文在线| 很污很黄的网站| 狠狠综合久久av一区二区老牛| 久久久欧美一区二区| 天堂а√在线中文在线新版 | 国产精品色婷婷视频| 91丨porny丨在线中文 | 一本色道久久综合亚洲精品图片| 少妇一区二区视频| 俺去啦;欧美日韩| 日本三级片在线观看| 视频一区在线视频| 91精品在线一区| 手机av在线免费观看| 国产日韩欧美一区二区三区乱码| 中文字幕一区二区三区有限公司 | 欧美色区777第一页| 亚洲精品一区二区18漫画| 日韩理论电影中文字幕| 日韩在线观看免费全集电视剧网站| 丝袜美腿小色网| 亚洲一区欧美激情| 91手机视频在线观看| 天天av天天翘| 亚洲欧美色综合| 国产男女在线观看| 国产精品xnxxcom| 日韩av最新在线| 精品国产视频一区二区三区| 香蕉久久国产| 国产成人av一区二区三区| 在线视频自拍| 懂色aⅴ精品一区二区三区蜜月| 国产三级精品三级在线| 综合亚洲自拍| 欧美激情免费视频| 一区二区三区免费在线视频| 91丝袜呻吟高潮美腿白嫩在线观看| 一本一本a久久| 中文不卡1区2区3区| 日韩视频一区二区| 欧美成人短视频| 男人的天堂成人在线| 99精彩视频在线观看免费| 国产高清自拍视频在线观看| 五月天网站亚洲| 亚洲综合伊人久久| 欧美精品一二| 欧美综合激情网| 国产成人自拍一区| 亚洲日本护士毛茸茸| 色哟哟精品视频| 免费一区二区| 4p变态网欧美系列| 天天舔天天干天天操| 一区二区三区蜜桃| 日韩高清在线一区二区| 99久久综合狠狠综合久久aⅴ| 日韩av电影手机在线观看| 午夜福利一区二区三区| 亚洲高清免费观看| 97中文字幕在线观看| 欧美成人一品| 亚洲iv一区二区三区| 日本中文字幕在线看| 欧美日韩亚洲综合在线| 中文字幕欧美激情极品| 秋霞电影一区二区| 午夜欧美一区二区三区免费观看| 亚洲同志男男gay1069网站| 亚洲精品91美女久久久久久久| 久久免费播放视频| 成人久久视频在线观看| 草b视频在线观看| 精品女人视频| 欧美亚洲视频在线观看| 毛片在线能看| 91国偷自产一区二区开放时间| 天堂久久精品忘忧草| 日韩高清不卡一区| 亚洲欧美日韩另类精品一区二区三区| 成人做爰免费视频免费看| 色av吧综合网| av小说天堂网| 亚洲成人高清在线| 搡老熟女老女人一区二区| 国产精品毛片一区二区三区| 免费毛片一区二区三区久久久| 你懂得影院夜精品a| 最近2019好看的中文字幕免费| 91精品国产乱码久久久| 亚洲美女精品一区| 亚洲欧美高清在线| 国产精品毛片在线看| 日韩电影免费观看在| 日韩午夜电影免费看| 欧美日本精品在线| 四虎影视2018在线播放alocalhost| 日韩欧美亚洲综合| 性色国产成人久久久精品| 国产一区二区在线视频| 国内精品在线观看视频| av一区二区在线播放| 亚洲综合日韩在线| 午夜不卡影院| 色偷偷偷亚洲综合网另类| 亚洲第一大网站| 色综合久久天天| 亚洲欧美精品aaaaaa片| 成人av在线资源网站| 日本www高清视频| 在线精品小视频| 久久大香伊蕉在人线观看热2| 99久久久国产精品免费调教网站| 欧美成年人视频网站欧美| 青青草超碰在线| 欧美一区2区视频在线观看| 精品国产免费观看| 亚洲欧洲精品一区二区精品久久久| 两性午夜免费视频| 日韩在线a电影| av片在线免费| 久久麻豆精品| 久久精品一区二区三区不卡免费视频 | 日韩在线观看一区| 国产视频在线观看一区| 久久99国产精品二区高清软件| 久久久噜噜噜久久中文字免| 欧美日本高清| 亚洲男人天堂网| 性做久久久久久久久久| 欧美亚洲高清一区| 91精品国产乱码在线观看| 亚洲欧美综合另类在线卡通| 最新中文字幕视频| 成人在线综合网站| 拔插拔插华人永久免费| 噜噜噜躁狠狠躁狠狠精品视频 | 国内在线免费视频| 中文字幕免费精品一区高清| 熟妇人妻av无码一区二区三区| 欧美日韩精品福利| 免费的毛片视频| 亚洲高清在线精品| 毛片a片免费观看| 亚洲欧美自拍偷拍| 无码少妇一区二区| 91麻豆精东视频| 精品一区二区视频在线观看| 国产一区二区不卡| 天堂一区在线观看| 日韩精品午夜视频| 黄色动漫在线免费看| 亚洲茄子视频| 欧日韩免费视频| 国产精品mm| 一本色道久久88亚洲精品综合| 99久久国产综合精品成人影院| 日韩久久在线| 欧美亚洲激情| 欧美一区二视频在线免费观看| 欧美91在线| 免费在线观看一区二区| 欧美男人操女人视频| 精品久久久三级| 欧美wwwsss9999| 精品视频导航| 日韩欧美中文字幕电影| 精品无码久久久久国产| 加勒比久久高清| 精品久久久久久一区| 欧美一区二区三区红桃小说| 久久超碰亚洲| 国产一区二区观看| 视频一区视频二区视频三区视频四区国产 | 国产成人在线免费看| 在线综合亚洲| 成人黄色片视频| 日韩电影一区二区三区四区| 在线视频日韩一区| 久久99国产精品久久| 五月天婷婷影视| 国产成人在线视频免费播放| 99免费观看视频| 不卡的av在线| 99久久人妻无码精品系列| 欧美国产日韩精品免费观看| 亚洲色图第四色| 亚洲激情图片一区| 久久久综合久久久| 一本到不卡精品视频在线观看 | 竹内纱里奈兽皇系列在线观看 | 日日摸日日碰夜夜爽无码| 日韩一级网站| 中文字幕第21页| 国产一区二区三区在线观看免费 | 日韩成人影院| 自拍偷拍视频在线| 国产一区清纯| 欧美亚洲另类色图| 精品一区二区三区免费| 熟妇高潮一区二区| 国产亚洲制服色| 精品自拍偷拍视频| 欧美日韩在线视频首页| 中文字幕网址在线| 精品久久久久久最新网址| 蜜桃视频在线播放| 欧美成人三级视频网站| 小草在线视频免费播放| 91日韩在线播放| 婷婷综合福利| 日本一道在线观看| 日韩不卡一区二区| 日本五十肥熟交尾| 国产精品妹子av| 国产成人免费观看视频| 欧美日韩精品一区二区三区| 蜜臀久久99精品久久久| 俺去了亚洲欧美日韩| 天堂av中文在线观看| 91精品国产高清久久久久久91裸体| 天堂俺去俺来也www久久婷婷| 中文字幕精品一区日韩| 美女精品一区| 成年女人免费视频| 中文字幕亚洲精品在线观看| 亚洲 欧美 视频| 欧美精品粉嫩高潮一区二区| 天堂成人在线| 欧美国产日韩一区二区在线观看| 成人自拍视频网| 久久综合九色99| 欧美日韩视频| 8x8x成人免费视频| 久久久91精品国产一区二区精品| 免费在线观看黄色av| 欧美日韩国产综合久久| 久久国产精品高清一区二区三区| 欧美精品久久久久久久久| 国产成人午夜性a一级毛片| 久久精品日产第一区二区三区乱码 | 黄色a级片免费| 成人av手机在线观看| 国产女人18水真多毛片18精品 | www黄色在线观看| 中文字幕九色91在线| 高清不卡av| 久久精品国产精品国产精品污 | 欧美男男激情freegay| 欧美极度另类性三渗透| 欧美视频二区欧美影视| 中国成人亚色综合网站| 日韩av在线播放中文字幕| 美国黄色一级毛片| 婷婷开心激情综合| 好男人www在线视频| 欧美另类极品videosbest最新版本 | 欧美日韩欧美一区二区| 猫咪在线永久网站| 热久久视久久精品18亚洲精品| 牛牛视频精品一区二区不卡| 国产妇女馒头高清泬20p多| 成人午夜激情影院| 国产日韩av在线播放| 国产精品免费看一区二区三区| 天天久久综合| 91视频这里只有精品| 国产午夜精品久久| 日本视频网站在线观看| 日韩经典第一页| 亚洲欧美小说色综合小说一区| 激情小说综合区| 国产精品久久久久9999高清| av无码av天天av天天爽| 疯狂做受xxxx高潮欧美日本| 黄色在线免费观看大全| 国产精品69av| 久久国产电影| www.欧美激情.com| 一区二区三区**美女毛片| 好吊视频一区二区三区| 97超级碰碰碰久久久| 伊人成综合网伊人222| 国产主播中文字幕| 亚洲三级在线免费| 粉嫩av一区二区夜夜嗨| 1769国产精品| 欧美色图一区| 久久精品一二三四| 午夜亚洲福利老司机| 欧美色18zzzzxxxxx| 国产在线播放不卡| 国产精品多人| 中文精品在线观看| 欧美精品在线视频| 暖暖在线中文免费日本| 欧美日韩日本网| 韩国成人在线视频| 日韩成人免费在线观看| 国产小视频91| 日韩激情精品| 777久久久精品一区二区三区| 国产午夜精品一区二区三区视频 | 成人福利网站| 久久精品国产精品青草色艺| 麻豆精品久久精品色综合| 久久99久久98精品免观看软件| 亚洲欧美另类国产| 国产精品视频一区视频二区| 内射国产内射夫妻免费频道| 中文字幕乱码亚洲精品一区| 性猛交富婆╳xxx乱大交天津| 日av在线播放中文不卡| 在线成人直播| 中文字幕 自拍| 精品欧美久久久| www.久久.com| 国产原创中文在线观看| 成人免费在线视频观看| 日本福利在线观看| 91青青草免费观看| 免费视频最近日韩|