在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用M5Stack設(shè)計(jì)一個(gè)BLE保溫杯

科技觀察員 ? 來(lái)源:Pradeep ? 作者:Pradeep ? 2022-05-25 16:46 ? 次閱讀

這個(gè)保溫瓶可感應(yīng)內(nèi)部溫度并通過(guò)藍(lán)牙信息發(fā)送到接收器

在本文中,我將向您展示如何在兩個(gè) ESP32 板之間傳輸傳感器的藍(lán)牙協(xié)議。

pYYBAGKN61aATlc_AAPKy41aNZ0183.png

你需要的東西:

M5Stick C

M5Stamp Pico

LM35溫度傳感器

M5棒C:

pYYBAGKN7iGAejPIAAJFFSSEDUA961.png

M5StickC 是迷你 M ESP32 提供的。它是一個(gè)可以實(shí)現(xiàn)你的 Stack55、開(kāi)源的物聯(lián)網(wǎng)。它是做什么的? M5stickC是M5Stack產(chǎn)品系列的核心設(shè)備之一,并幫助您進(jìn)行過(guò)程中的產(chǎn)品原型設(shè)計(jì)。

電源開(kāi)關(guān)操作:

引導(dǎo):長(zhǎng)按電源鍵2秒

電視:長(zhǎng)按電源鍵6秒

注意:

M5StickC支持的波特率:1200~115200、250K、500K、750K、1500K

產(chǎn)品特點(diǎn)

基于ESP32

組合6軸IMU

紅色 LED

紅外線發(fā)射器

麥克風(fēng)

按鈕,LCD(0.96英寸)

壓縮鋰電池

可伸縮

可穿戴和壁掛式

游戲多平臺(tái)開(kāi)發(fā):

UIFlow

微蟒

阿杜諾

.NET納米框架

M5Stamp Pico:

poYBAGKN7i6AdNyyAAN6rE7Xxc0376.png

它的 STAMP-P 超設(shè)計(jì)尺寸,在 PCB 上像具有低 32 位 ICOX 接口的 LXLX 6 微處理器,40MHz 打印機(jī)一樣精確。例如可穿戴設(shè)備、醫(yī)療設(shè)備、傳感器和其他物聯(lián)網(wǎng)設(shè)備。

多種安裝方式,實(shí)現(xiàn)無(wú)限可能!(SMT、DIP、飛線接口),采用耐高溫塑料外殼,3D天線和5號(hào)天線可以更好的保護(hù)。

LOW-CODE DEV OPMENT:STAMP-MP-編程,腳本化編程平臺(tái);全面Arduino免編程3-2-微型圖形開(kāi)發(fā)等開(kāi)發(fā)平臺(tái),快速支持Python等開(kāi)發(fā)、Python等各類應(yīng)用程序開(kāi)發(fā)。

HIGH: 1P-ICO5V STA->3V DC/MP-1DC/1P-ICO5V STA-3V DC/12GR,全RGB燈,接口x1x1,xx電路,通訊穩(wěn)定,提供可靠的無(wú)線無(wú)線。

強(qiáng)大的擴(kuò)展性:接入M5軟硬件生態(tài):豐富的傳感器、執(zhí)行、功能、配件選擇,極速系統(tǒng)接入模塊。

產(chǎn)品特點(diǎn):

芯片組:ESP32-PICO-D4(2.4GHz Wi-Fi雙模)

支持 UIFlow 圖形化編程

多IO引出線,支持多種應(yīng)用形式(SMT、DIP、fly-by-wire)

集成嵌入式RGB LED和按鈕

微型模塊

LM35溫度傳感器:

poYBAGKN7jyAVGtvAAFAVcmerus761.png

LM35 35 模擬溫度模擬輸出與成比35,其傳感器單獨(dú)外接LM35 或LM 正時(shí)揚(yáng)聲器。專門針對(duì)LM35 的外接光源或正向LM 自動(dòng)精確輸出,提供和正常輸出和適當(dāng)?shù)奶匦?5 模擬模擬溫度與輸出與成比35。控制電路連接。

硬件連接:

pYYBAGKN7kmAN4aRAAJ9jsF9_OI308.png

將 GND 的輸出端連接到 LM3 的第 36 Stamp 端,將 LM3 的電源連接到 LM3 的 5 V 和 GND。

VOUT -> G36

接地點(diǎn) - > 接地點(diǎn)

VCC - > 5V

對(duì)發(fā)射器進(jìn)行編程:

在本文中,微型發(fā)射器將發(fā)射器發(fā)射到中部,并連接發(fā)射器,向發(fā)射器發(fā)射紅外發(fā)射器。

#include
#include
#include
#include
#include

// LED 計(jì)數(shù)
#define NUM_LEDS 1
#define DATA_PIN 27

// 定義 LED 的數(shù)組
CRGB leds[NUM_LEDS];

#define Button 39
//BLE 服務(wù)器名稱
#define bleServerName "M5"

//LM35
#define ADC_VREF_mV 3300.0 // 以毫伏
為單位 #define ADC_RESOLUTION 4096.0
#define PIN_LM35 36 // ESP32 引腳 GIOP36 (ADC0) 連接到 LM35

浮動(dòng)溫度;
浮動(dòng)溫度F;
浮動(dòng)嗡嗡聲;

// 定時(shí)器變量
unsigned long lastTime = 0;
無(wú)符號(hào)長(zhǎng)定時(shí)器延遲 = 30000;

布爾設(shè)備連接 = 假;

#define SERVICE_UUID "91bad492-b950-4226-aa2b-4ede9fa42f59"

// 溫度特性和描述符
BLECharacteristic bmeTemperatureCelsiusCharacteristics("cba1d466-344c-4be3-ab3f-189f80dd7518", BLECharacteristic::PROPERTY_NOTIFY);
BLEDescriptor bmeTemperatureCelsiusDescriptor(BLEUUID((uint16_t)0x2902));

//設(shè)置回調(diào) onConnect 和 onDisconnect
類 MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
無(wú)效 onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};


void setup() {
// 開(kāi)始串行通信
Serial.begin(115200);

FastLED.addLeds(leds, NUM_LEDS);

pinMode(按鈕,輸入);

// 創(chuàng)建 BLE 設(shè)備
BLEDevice::init(bleServerName);

// 創(chuàng)建 BLE 服務(wù)器
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());

// 創(chuàng)建 BLE 服務(wù)
BLEService *bmeService = pServer->createService(SERVICE_UUID);

// 創(chuàng)建 BLE 特征并創(chuàng)建 BLE 描述符
bmeService->addCharacteristic(&bmeTemperatureCelsiusCharacteristics);
bmeTemperatureCelsiusDescriptor.setValue("BME 溫度攝氏");
bmeTemperatureCelsiusCharacteristics.addDescriptor(&bmeTemperatureCelsiusDescriptor);


// 啟動(dòng)服務(wù)
bmeService->start();

// 開(kāi)始廣告
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pServer->getAdvertising()->start();
Serial.println("等待客戶端連接通知...");
}

無(wú)效循環(huán)(){
靜態(tài)布爾狀態(tài);
狀態(tài) = 數(shù)字讀取(按鈕);
if (State == 0)
{
ESP.restart();
}
if (deviceConnected) {
if ((millis() - lastTime) > timerDelay) {

// 打開(kāi) LED,然后暫停
leds[0] = 0xf00000;
FastLED.show();
延遲(2000);

// 從溫度傳感器讀取 ADC 值
int adcVal = analogRead(PIN_LM35);
// 將 ADC 值轉(zhuǎn)換為以毫伏為單位的電壓
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
// 將電壓轉(zhuǎn)換為溫度,單位為°C
temp = milliVolt / 10;

靜態(tài)字符溫度CTemp[6];
dtostrf(temp, 6, 2, temperatureCTemp);
//設(shè)置溫度特征值并通知連接的客戶端
bmeTemperatureCelsiusCharacteristics.setValue(temperatureCTemp);
bmeTemperatureCelsiusCharacteristics.notify();

// 現(xiàn)在關(guān)閉 LED,然后暫停
leds[0] = 0x00f000;
FastLED.show();

Serial.print("攝氏溫度:");
串行打印(溫度);
Serial.println("oC");

最后時(shí)間 = 毫秒();
}
}


在此代碼中,如果您需要更改 BLE 服務(wù)器名稱,請(qǐng)根據(jù)需要更改此行:

poYBAGKN7lmAGyI6AABGDmW1f5k292.png

基本代碼 LM35 包含讀數(shù)這行的,不要更改這些。

poYBAGKN7mWAKIJgAAD4DysjYoc788.png

這是發(fā)送器的 BLE 服務(wù) ID:

pYYBAGKN7nGAM8vnAABpEoAugOk083.png

這是溫度數(shù)據(jù)的服務(wù)ID:

pYYBAGKN7n2AQ75iAACpNulSWbg324.png

M5 沒(méi)有使用任何重置按鈕,但它有一個(gè)在這里定義的按鈕,我重置了電路板 Pico。

poYBAGKN7omAWYWNAAB_SBAdd2k548.png

最后,將代碼上傳到 M5Stamp Pico,確保您選擇了正確的板設(shè)置:

poYBAGKN7pWAVhn_AAGf4RFgeVk889.png

對(duì)預(yù)測(cè):

在本文中,將發(fā)射器中的5個(gè)發(fā)射器接收來(lái)自發(fā)射器的溫度。

#include
#include "BLEDevice.h"

//BLE 服務(wù)器名稱
#define bleServerName "M5"

/* 服務(wù)的 UUID,我們要讀取的特征 */
// BLE 服務(wù)
static BLEUUID bmeServiceUUID("91bad492-b950-4226-aa2b-4ede9fa42f59");

//溫度攝氏特性
靜態(tài)BLEUUID temperatureCharacteristicUUID("cba1d466-344c-4be3-ab3f-189f80dd7518");


//標(biāo)志說(shuō)明是否應(yīng)該開(kāi)始連接以及連接是否正常
static boolean doConnect = false;
靜態(tài)布爾連接=假;

//外圍設(shè)備的地址。地址將在掃描過(guò)程中找到...
static BLEAddress *pServerAddress;

//我們要讀取的特征
值 static BLERemoteCharacteristic* temperatureCharacteristic;

//激活通知
const uint8_t notificationOn[] = {0x1, 0x0};
const uint8_t notificationOff[] = {0x0, 0x0};


//存儲(chǔ)溫濕度的變量
char* temperatureChar;

//檢查新的溫度和濕度讀數(shù)是否可用的標(biāo)志
boolean newTemperature = false;


//連接到具有名稱、服務(wù)和特征的 BLE 服務(wù)器
bool connectToServer(BLEAddress pAddress) {
BLEClient* pClient = BLEDevice::createClient();

// 連接到移除的 BLE 服務(wù)器。
pClient->connect(pAddress);
Serial.println(" - 連接到服務(wù)器");

// 在遠(yuǎn)程 BLE 服務(wù)器中獲取對(duì)我們所追求的服務(wù)的引用。
BLERemoteService* pRemoteService = pClient->getService(bmeServiceUUID);
if (pRemoteService == nullptr) {
Serial.print("未能找到我們的服務(wù) UUID:");
Serial.println(bmeServiceUUID.toString().c_str());
返回(假);
}

// 獲取遠(yuǎn)程BLE服務(wù)器服務(wù)中的特征引用。
temperatureCharacteristic = pRemoteService->getCharacteristic(temperatureCharacteristicUUID);

if (temperatureCharacteristic == nullptr) {
Serial.print("未能找到我們的特征 UUID");
返回假;
}
Serial.println(" - 找到我們的特征");

//為特征分配回調(diào)函數(shù)
temperatureCharacteristic->registerForNotify(temperatureNotifyCallback);
返回真;
}

//當(dāng)收到另一個(gè)設(shè)備的廣告時(shí)調(diào)用的回調(diào)函數(shù)
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
if (advertisedDevice.getName() == bleServerName) { //檢查廣告商的名稱是否匹配
廣告設(shè)備.getScan()->stop();//可以停止掃描,我們找到了我們要找的
東西 pServerAddress = new BLEAddress(advertisedDevice.getAddress());//廣告客戶的地址就是我們需要的
那個(gè) doConnect = true;//設(shè)置指標(biāo),說(shuō)明我們已經(jīng)準(zhǔn)備好連接
Serial.println("Device found. Connecting!");
}
}
};

//當(dāng)BLE Server發(fā)送一個(gè)帶有notify屬性的新溫度讀數(shù)時(shí)
static void temperatureNotifyCallback(BLERemoteCharacteristic* pBLERemoteCharacteristic,
uint8_t* pData, size_t length, bool isNotify) {
//存儲(chǔ)溫度值
temperatureChar = (char*)pData;
新溫度=真;
}


//在 OLED 顯示屏中打印最新傳感器讀數(shù)的函數(shù)
void printReadings() {
M5.update();

//擦除顯示器中之前的內(nèi)容
M5.Lcd.fillScreen(BLACK);

M5.Lcd.setTextColor(紅色);
M5.Lcd.setCursor(20, 18);
M5.Lcd.setTextSize(1.8);
M5.Lcd.print("[");
M5.Lcd.setTextColor(綠色);
M5.Lcd.print("BLE 智能燒瓶");
M5.Lcd.setTextColor(紅色);
M5.Lcd.print(" ]");
M5.Lcd.setCursor(18, 40);
M5.Lcd.setTextColor(綠色);
Serial.print("溫度:");
M5.Lcd.print("溫度:");
Serial.println(溫度字符);
M5.Lcd.print(溫度字符);
M5.Lcd.print("C");

M5.Lcd.setCursor(15, 55);
M5.Lcd.setTextColor(紅色);
M5.Lcd.print("---------");

浮動(dòng) x = atof(溫度字符);
if (x >= 35.0)
{
Serial.println("可能是過(guò)熱");
M5.Lcd.setCursor(15, 65);
M5.Lcd.setTextColor(紅色);

M5.Lcd.print("可能過(guò)熱");
}
else {
Serial.println("可以喝");
M5.Lcd.setCursor(30, 65);
M5.Lcd.setTextColor(綠色);
M5.Lcd.print("可以喝了");
}

M5.Lcd.setCursor(15, 75);
M5.Lcd.setTextColor(紅色);
M5.Lcd.print("---------");
}
無(wú)效設(shè)置() {

M5.begin();
M5.Lcd.setRotation(3);
M5.Axp.ScreenBreath(10);
M5.Lcd.setTextColor(RED);
M5.Lcd.setCursor(10, 35);
M5.Lcd.setTextSize(1.8);

//Start serial communication
Serial.begin(115200);
Serial.println("Starting Arduino BLE Client application...");

//Init BLE device
BLEDevice::init("");

BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->start(30);
}

void loop() {

if (doConnect == true) {
if (connectToServer(*pServerAddress)) {
Serial.println("我們現(xiàn)在連接到 BLE 服務(wù)器。");
M5.Lcd.print("連接到BLE服務(wù)器");
//激活每個(gè)Characteristic的Notify屬性
temperatureCharacteristic->getDescriptor(BLEUUID((uint16_t)0x2902))->writeValue((uint8_t*)notificationOn, 2, true);
連接=真;
} else {
Serial.println("我們連接服務(wù)器失敗;重啟您的設(shè)備再次掃描附近的BLE服務(wù)器。");
M5.Lcd.print("未連接");
}
連接 = 假;
}
//如果有新的溫度讀數(shù)可用,則在 OLED 中打印
if (newTemperature) {
newTemperature = false;
打印讀數(shù)();
}
}
請(qǐng)確保您在此服務(wù)名稱重命名為與相同的名稱,并在設(shè)備名稱和溫度數(shù)據(jù) ID 中與匹配匹配。

pYYBAGKN7qWAAj3jAAGZZI9kO-I811.png

一些代碼行來(lái)顯示我添加到 TFT 顯示器。

pYYBAGKN7raAA95RAAJ5gu4WpI4351.png

完成后,進(jìn)行所需的更改,將代碼上傳到 M5Stick C。

pYYBAGKN7sOAIFZhAAHk2mWIEK8739.png

poYBAGKN7tOANxAhAAEoUeoPI-0843.png

上傳一次代碼后,就可以點(diǎn)擊發(fā)射器和器上的按鈕并接收監(jiān)控輸出。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51395

    瀏覽量

    756606
  • 藍(lán)牙協(xié)議
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    11464
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    978

    瀏覽量

    17529
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    今天收到Litepoint下載活動(dòng)的保溫杯,有圖片哦

    ` 本帖最后由 maoshen 于 2014-4-9 14:12 編輯 Litepoint送的保溫杯質(zhì)量很好,,,而且耐收藏{:4_95:}`
    發(fā)表于 04-01 12:41

    個(gè)用單片機(jī)+NTC來(lái)測(cè)溫的保溫杯設(shè)計(jì)

    之前看到過(guò)蓋子可以顯示溫度的保溫杯,好奇之下買了個(gè)拆開(kāi)來(lái)看了下,發(fā)現(xiàn)是個(gè)單片機(jī)+NTC來(lái)測(cè)
    發(fā)表于 02-28 07:17

    星巴克的杯子多少錢?智能保溫杯為什么價(jià)值千元

    星巴克在美國(guó)最新上架了款價(jià)值千元的智能保溫杯,簡(jiǎn)潔的工業(yè)設(shè)計(jì)和實(shí)用的功能絕對(duì)是星巴克粉絲們的必備之物!是款可以充電,可以調(diào)節(jié)溫度的智能保溫杯,但整個(gè)
    發(fā)表于 11-25 17:19 ?3949次閱讀

    如何將ArduinoEsplora和M5Stack組合成個(gè)NES游戲機(jī)

     Esplora右側(cè)引腳接頭的最多2個(gè)底部引腳是GND和5V,它可以匹配M5Stack核心基準(zhǔn)引腳。因此我們可以彎曲個(gè)2針公 - 母針腳接
    的頭像 發(fā)表于 08-23 10:37 ?6162次閱讀
    如何將ArduinoEsplora和<b class='flag-5'>M5Stack</b>組合成<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>NES游戲機(jī)

    氣密性檢測(cè)保溫杯蓋測(cè)試實(shí)例的介紹

    人到中年不得已,保溫杯里泡枸杞。快節(jié)奏的生活讓更多的人開(kāi)始養(yǎng)生,那么養(yǎng)生的第步就是人手個(gè)保溫杯。除了中老年朋友以外,如今的佛系青年,甚至
    發(fā)表于 01-29 16:43 ?763次閱讀

    簡(jiǎn)易的電子保溫杯pcb設(shè)計(jì)原理圖

    保溫杯PCB 保溫杯原理圖 以上是個(gè)簡(jiǎn)易電子保溫杯的PCB和原理圖。此保溫杯的功能很簡(jiǎn)單,就是
    的頭像 發(fā)表于 12-08 11:04 ?1.3w次閱讀

    如何知道保溫杯蓋的防水性能

    現(xiàn)在保溫杯的保冷保熱已經(jīng)是基本功能,有些廠家更是推出了智能型保溫杯,主要電子元器件元件都集成在保溫杯蓋中,可以顯示溫度,還能定時(shí)提醒喝水,還可以電加熱
    發(fā)表于 06-15 10:33 ?1031次閱讀

    直線電機(jī)模組激光打標(biāo)技術(shù)在保溫杯加工中的應(yīng)用

    隨著時(shí)代的進(jìn)步,保溫杯的功能越來(lái)越多樣,“一杯多用”已成為新款保溫杯的流行做法
    發(fā)表于 12-29 09:50 ?533次閱讀

    智能保溫杯的工作原理及功能特點(diǎn)

    夏天就要來(lái)了,個(gè)好用的水杯當(dāng)然就成了人們的第選擇。在選購(gòu)款水杯產(chǎn)品時(shí)很多人的第選擇就是保溫杯
    的頭像 發(fā)表于 04-22 11:44 ?2.5w次閱讀

    帶有M5Stack的電報(bào)控制無(wú)人機(jī)

    電子發(fā)燒友網(wǎng)站提供《帶有M5Stack的電報(bào)控制無(wú)人機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-14 10:53 ?0次下載
    帶有<b class='flag-5'>M5Stack</b>的電報(bào)控制無(wú)人機(jī)

    配備M5Stack的智能工廠

    電子發(fā)燒友網(wǎng)站提供《配備M5Stack的智能工廠.zip》資料免費(fèi)下載
    發(fā)表于 12-09 10:19 ?0次下載
    配備<b class='flag-5'>M5Stack</b>的智能工廠

    M5Stack的音頻頻譜顯示

    電子發(fā)燒友網(wǎng)站提供《帶M5Stack的音頻頻譜顯示.zip》資料免費(fèi)下載
    發(fā)表于 12-28 11:32 ?0次下載
    帶<b class='flag-5'>M5Stack</b>的音頻頻譜顯示

    Bareboat Necessities的M5Stack堅(jiān)韌Arduino船展示

    電子發(fā)燒友網(wǎng)站提供《Bareboat Necessities的M5Stack堅(jiān)韌Arduino船展示.zip》資料免費(fèi)下載
    發(fā)表于 06-12 14:30 ?0次下載
    Bareboat Necessities的<b class='flag-5'>M5Stack</b>堅(jiān)韌Arduino船展示

    M5Stack圣誕雪球開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《M5Stack圣誕雪球開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-28 10:26 ?0次下載
    <b class='flag-5'>M5Stack</b>圣誕雪球開(kāi)源分享

    StickC M5Stack LED閃爍

    電子發(fā)燒友網(wǎng)站提供《StickC M5Stack LED閃爍.zip》資料免費(fèi)下載
    發(fā)表于 06-29 11:35 ?0次下載
    StickC <b class='flag-5'>M5Stack</b> LED閃爍
    主站蜘蛛池模板: 欧美综合国产精品日韩一 | 亚洲综合精品一区二区三区中文 | 中文天堂网 | 美女视频永久黄网站在线观看 | yy6080三级理论韩国日本 | 毛片免费观看 | 免费h视频网站 | 亚洲福利一区二区三区 | 欧美a在线 | 午夜国产在线观看 | 午夜在线播放视频在线观看视频 | 亚洲成网777777国产精品 | 四虎影院在线视频 | 特黄特a级特别特级特毛片 特黄特色大片免费播放路01 | 日本口工禁漫画无遮挡全彩 | 资源新版在线天堂 | 在线观看日本免费视频大片一区 | 国产caob| 亚洲综合一区二区三区 | 99久久精品国产自免费 | 狠狠色噜噜狠狠狠狠888奇米 | 天天综合网天天综合色 | 曰韩一级 | 日日噜噜噜夜夜爽爽狠狠图片 | 欧美乱xxxxxxxxx | 亚洲免费一级视频 | 欧美一级特黄aaaaaa在线看首页 | 欧美性free免费 | 黄色美女网站免费 | 国产亚洲一区二区三区啪 | 久久免费公开视频 | 国产真实乱偷人视频 | 色天使色婷婷在线影院亚洲 | 五月天激情丁香 | 黄色的视频免费看 | 午夜免费网站 | 五月开心六月伊人色婷婷 | 天天看a| 在线不卡一区 | 人人草人人爽 | 午夜免费理论片在线看 |