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

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

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

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

ElfBoard開源項目|“智慧教室”開源項目技術(shù)文檔

ElfBoard ? 2024-09-11 10:51 ? 次閱讀

“智慧教室”項目的目標是實現(xiàn)實時采集環(huán)境中的溫度、濕度及光照信息,并將這些數(shù)據(jù)可視化地呈現(xiàn)在Qt圖形界面上。用戶既可以選擇手動控制風(fēng)扇與窗簾的開關(guān),也可以設(shè)置系統(tǒng)根據(jù)所采集的環(huán)境參數(shù)自動調(diào)節(jié),以達到舒適的室內(nèi)環(huán)境。接下來,將和各位小伙伴深入探討這一項目的具體實現(xiàn)方式。

一、 功能特性

1、數(shù)據(jù)監(jiān)測與顯示:實時監(jiān)測室內(nèi)溫度、濕度和光照強度,并直觀地顯示在Qt界面上。

2、手動/感應(yīng)控制:用戶可以通過切換界面按鈕選擇手動控制風(fēng)扇和窗簾的狀態(tài),或者根據(jù)實時監(jiān)測到的環(huán)境數(shù)據(jù),自動的調(diào)節(jié)風(fēng)扇和窗簾的狀態(tài),以提供最佳的舒適度和能源利用效率。

3、節(jié)能優(yōu)化:自動調(diào)節(jié)功能可實時調(diào)整設(shè)備狀態(tài),以減少能源消耗并提高設(shè)備壽命。

二、 環(huán)境說明

1、開發(fā)環(huán)境操作系統(tǒng):Ubuntu18.04 64位版

2、交叉編譯工具鏈:arm-poky-linux-gnueabi-gcc 5.3.0

3、開發(fā)板使用Bootloader版本:u-boot-2016.03

4、開發(fā)板內(nèi)核版本:linux-4.1.15

5、開發(fā)板移植QT版本:qt5.6.2

三、 硬件連接

1、風(fēng)扇與板卡的連接

wKgaombg_OCACyXdAAJECmwSncQ098.png

2、步進電機與板卡的連接

wKgZombg_MqAMZdKAANO_8WH06Y162.png

四、 內(nèi)核適配

ELF 1開發(fā)板已集成溫濕度傳感器與光線傳感器,實現(xiàn)環(huán)境溫度、濕度和光照強度的采集。為支持智慧教室系統(tǒng)的其它功能,需要對內(nèi)核源碼進行以下適配步驟。

1、實現(xiàn)風(fēng)扇轉(zhuǎn)動的功能

風(fēng)扇采用pwm的方式來控制,需要在設(shè)備樹中進行pwm7的復(fù)用。

(1)拷貝ELF1開發(fā)板資料包\02-Linux 源代碼\02-0 出廠內(nèi)核和uboot源碼\內(nèi)核源碼\linux-4.1.15-elf1.tar.bz2內(nèi)核源碼到開發(fā)環(huán)境/home/elf/work/目錄下解壓。

elf@ubuntu:~/work$ tar -xvf linux-4.1.15-elf1.tar.bz2

(2)修改頂層設(shè)備樹文件arch/arm/boot/dts/imx6ull.dtsi

elf@ubuntu:~/work$ cd linux-4.1.15-elf1/ elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull.dtsi

wKgZombg_S2AQLlfAAXVGkRy0_s628.png

(3)修改設(shè)備樹文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts

elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull-elf1-emmc.dts

添加pwm7設(shè)備節(jié)點

&pwm7 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm7>; status = "okay"; };

wKgZombg_WWAPSD4AAN9HPriB70074.png

在iomux節(jié)點下面添加pwm7引腳復(fù)用

pinctrl_pwm7: pwm7grp { fsl,pins = < MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x110b0 >; };

wKgaombg_h2AMQC5AASICkuEBUU451.png

取消其它用到csi功能的地方

wKgZombg_kSAFRXUAAOZ4JatwUs726.pngwKgaombg_lqAewehAAQSkZ0lfVo466.png

至此pwm7已經(jīng)復(fù)用完成。

2、實現(xiàn)控制窗簾開合的功能

該項目選用28BYJ-48步進電機實現(xiàn)窗簾的開合操作,28BYJ-48電機需要4個GPIO來控制,需要在設(shè)備樹中進行GPIO的復(fù)用并在內(nèi)核中添加電機驅(qū)動。(1)修改設(shè)備樹文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts。

elf@ubuntu:~/work$ cd linux-4.1.15-elf1/ elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull-elf1-emmc.dts

添加設(shè)備節(jié)點

mymotor { compatible = "motor"; pinctrl-names = "default"; pinctrl-0 = <&mymotor>; status = "okay"; motorA-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>; motorB-gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>; motorC-gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; motorD-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; };

wKgaombg_qOAZJOaAATRxK0wbnY310.png

在iomux節(jié)點下面添加引腳復(fù)用

mymotor: mymotorgrp { fsl,pins = < MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x10b0 MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x10b0 MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x10b0 MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x10b0 >; };

wKgaombg_saAUrGWAATV-6ALB6k044.png

(2)添加電機驅(qū)動

拷貝motor.c到內(nèi)核源碼的drivers/gpio目錄下,修改drivers/gpio目錄下的Makefile文件,添加如下內(nèi)容:

obj-y += motor.o

wKgZombg_veAfTYvAAmxUaLDuDg818.png

3、編譯并替換設(shè)備樹和內(nèi)核

(1)執(zhí)行環(huán)境變量

elf@ubuntu:~/work/linux-4.1.15-elf1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

(2)編譯設(shè)備樹和內(nèi)核

elf@ubuntu:~/work/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig elf@ubuntu:~/work/linux-4.1.15-elf1$ make dtbs elf@ubuntu:~/work/linux-4.1.15-elf1$ make zImage

(3)將arch/arm/boot/路徑下的zImage和arch/arm/boot/dts/路徑下的imx6ull-elf1-emmc.dtb放到U盤,通過U盤拷貝到開發(fā)板。

root@ELF1:~# cp /run/media/sda1/imx6ull-elf1-emmc.dtb /run/media/mmcblk1p1/ root@ELF1:~# cp /run/media/sda1/zImage /run/media/mmcblk1p1/

(4)保存并重啟開發(fā)板

root@ELF1:~# sync root@ELF1:~# reboot

五、基于Qt界面的數(shù)據(jù)采集和控制

1、程序設(shè)計

wKgZombhAlaAMEpfAAKabUVYMOU641.png

主函數(shù)的實現(xiàn)main.cpp

int main(int argc, char* argv[]) { QApplication a(argc, argv); if(!ControllerHandler::instance()->startController()) { return 0; } a.setStyle("Fusion"); QFont f = a.font(); f.setPointSize(20); f.setPixelSize(16); a.setFont(f); MWainWindow w; w.setWindowFlags(Qt::FramelessWindowHint); if(a.primaryScreen()) { w.resize(a.primaryScreen()->size()); } w.show(); int ret = a.exec(); return ret; }

設(shè)置顯示的時間的樣式和位置

void MWainWindow::showtime() { /* 實例化與設(shè)置顯示的位置大小*/ lcdNumber = new QLCDNumber(this); QScreen *screen = QGuiApplication::primaryScreen(); // 獲取屏幕分辨率的大小 QSize screenSize = screen->size(); int screenWidth = screenSize.width(); int screenHeight = screenSize.height(); // 根據(jù)屏幕分辨率的大小執(zhí)行不同的操作 if (screenWidth == 1024 && screenHeight == 600) { lcdNumber->setGeometry( 850, 9, 100, 40); } else if (screenWidth == 800 && screenHeight == 480) { lcdNumber->setGeometry( 650, 9, 100, 40); } else { qDebug() << "Performing other operation";} /* 設(shè)置顯示的位數(shù) 8 位 */ lcdNumber->setDigitCount(8); /* 設(shè)置樣式 */ lcdNumber->setFrameStyle(QFrame::NoFrame); /* 設(shè)置 lcd 顯示為當前系統(tǒng)時間 */ QTime time = QTime::currentTime(); /* 設(shè)置顯示的樣式 */ lcdNumber->display(time.toString("hh:mm:ss")); lcdNumber->setStyleSheet("color: black"); }

設(shè)置顯示的圖片的大小和位置

void MWainWindow::showphoto() { /* 設(shè)置大小與位置 */ this->setGeometry(0, 0, 1024, 600); /* 使用資源里的文件時格式是 :+前綴+文件路徑 */ QPixmap pixmap(":images/res.png"); labelImage = new QLabel(this); QScreen *screen = QGuiApplication::primaryScreen(); // 獲取屏幕分辨率的大小 QSize screenSize = screen->size(); int screenWidth = screenSize.width(); int screenHeight = screenSize.height(); // 根據(jù)屏幕分辨率的大小執(zhí)行不同的操作 if (screenWidth == 1024 && screenHeight == 600) { labelImage->setGeometry(14, 61, 343, 524); } else if (screenWidth == 800 && screenHeight == 480) { labelImage->setGeometry(14, 61, 343, 403); } else { qDebug() << "Performing other operation"; } /* 設(shè)置圖像 */ labelImage->setPixmap(pixmap); /* 開啟允許縮放填充 */ labelImage->setScaledContents(true); }

獲取設(shè)備的狀態(tài)

void MWainWindow::readData() { /* 當定時器計時 1000 毫秒后,刷新 lcd 顯示當前系統(tǒng)時間 */ QTime time = QTime::currentTime(); /* 設(shè)置顯示的樣式 */ lcdNumber->display(time.toString("hh:mm:ss")); ControllerHandler* pInstance =ControllerHandler::instance(); float value=-100; int curtainstate = targetCurtainState; pInstance->getValue(TEMPERATURE_SENSOR,value); ui->widget_temp->setData("溫度", QString::number(value) +"°"); if(bOpen==1) { if(value > 31) { ControllerHandler::instance()->setValue(FAN, 10, ' ', ' '); } else { ControllerHandler::instance()->setValue(FAN, 0, ' ', ' '); } } pInstance->getValue(HUMIDITY_SENSOR,value); ui->widget_hum->setData("濕度", QString::number(value) +"%"); pInstance->getValue(LIGHT_SENSOR,value); ui->widget_light->setData("亮度", QString::number(value) +" lt"); if(bOpen==1) { if (value >= 0 && value < 100) { if (curtainstate == 0) { printf("Automatic curtain opening!!!\n"); //ControllerHandler::instance()->setValue(MYMOTOR, ' ', 'R', 2048); targetCurtainState = 1; } } else if (value >= 100 && value < 500) { if (curtainstate == 1) { printf("Automatic curtain closing!!!\n"); //ControllerHandler::instance()->setValue(MYMOTOR, ' ', 'L', 2048); targetCurtainState = 0; } } } if(bOpen==0) { if(bOpen2==1) { //printf("Fan open!!!\n"); ControllerHandler::instance()->setValue(FAN, 10, ' ', ' '); } if(bOpen2==0) { //printf("Fan close!!!\n"); ControllerHandler::instance()->setValue(FAN, 0, ' ', ' '); } } if(bOpen == 0){ if (isFirstCheck) { lastbOpen3 = bOpen3; isFirstCheck = false; } else if (bOpen3 != lastbOpen3) { if(bOpen3 == 1){ printf("Curtain open!!!\n"); //ControllerHandler::instance()->setValue(MYMOTOR, ' ', 'R', 2048); } else { printf("Curtain close!!!\n"); //ControllerHandler::instance()->setValue(MYMOTOR, ' ', 'L', 2048); } lastbOpen3 = bOpen3; } } }

設(shè)置界面樣式

void MWainWindow::Style() { QString qssFileName; qssFileName = ":/green.qss"; QFile file(qssFileName); if(file.open(QFile::ReadOnly| QFile::Text)){ QString qss =file.readAll(); QApplication *app = dynamic_cast(qApp); if(!qss.isEmpty()){ app->setStyleSheet(qss); } file.close(); } }

2、應(yīng)用編譯

(1)拷貝smartclassroom.tar.bz2到開發(fā)環(huán)境/home/elf/work目錄下解壓

elf@ubuntu:~/work$ tar xvf smartclassroom.tar.bz2

(2)執(zhí)行環(huán)境變量

elf@ubuntu:~/work/adc$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

(3)編譯

elf@ubuntu:~/work$ cd smartclassroom/ elf@ubuntu:~/work/smartclassroom$ qmake elf@ubuntu:~/work/smartclassroom$ make

(4)壓縮

elf@ubuntu:~/work/smartclassroom$ cd ../smartclassroom_output/release/ elf@ubuntu:~/work/smartclassroom_output/release$ tar -cjvf smartclassroom.tar.bz2 *

(5)拷貝smartclassroom.tar.bz2壓縮包到開發(fā)板/home/root路徑下解壓

root@ELF1:~# cp /run/media/sda1/smartclassroom.tar.bz2 ./ root@ELF1:~# tar xvf smartclassroom.tar.bz2 root@ELF1:~# chmod 777 * root@ELF1:~# cp lib* /usr/lib root@ELF1:~# sync

六、項目測試

1、確保開發(fā)板已正確連接風(fēng)扇、步進電機和屏幕

2、執(zhí)行應(yīng)用

root@ELF1:~# export DISPLAY=:0.0 root@ELF1:~# ./app

應(yīng)用執(zhí)行成功后,Qt界面顯示如下,此時可以通過切換按鈕選擇手動控制或者感應(yīng)控制風(fēng)扇開關(guān)以及窗簾開合。

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

    關(guān)注

    6043

    文章

    44621

    瀏覽量

    638624
  • 嵌入式
    +關(guān)注

    關(guān)注

    5094

    文章

    19178

    瀏覽量

    307732
  • 開源代碼
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    3010
  • 學(xué)習(xí)開發(fā)板

    關(guān)注

    0

    文章

    10

    瀏覽量

    304
收藏 人收藏

    評論

    相關(guān)推薦

    ElfBoard開源項目|智能消防車項目

    項目——利用ELF 1開發(fā)板打造的智慧消防車。該項目展現(xiàn)了物聯(lián)網(wǎng)、數(shù)據(jù)處理等前沿技術(shù)在消防領(lǐng)域的應(yīng)用潛力,下面就和各位小伙伴展示一下這個開源
    的頭像 發(fā)表于 01-04 16:43 ?324次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|智能消防車<b class='flag-5'>項目</b>

    RISC-V在MCU中有哪些知名的開源項目

    RISC-V在MCU中有哪些知名的開源項目
    發(fā)表于 12-30 19:48

    開源鴻蒙榮獲開放原子“2024年度操作系統(tǒng)領(lǐng)域國內(nèi)活躍開源項目

    開源鴻蒙”或“OpenHarmony”)榮獲“2024年度操作系統(tǒng)領(lǐng)域國內(nèi)活躍開源項目”。 活躍的開源項目
    的頭像 發(fā)表于 12-28 15:39 ?482次閱讀

    開放原子開源基金會與三個開源項目舉行捐贈簽約儀式

    近日,在2024開放原子開發(fā)者大會暨首屆開源技術(shù)學(xué)術(shù)大會開幕式上,開放原子開源基金會秘書長助理李博與openKylin、EasyAda、KWDB開源
    的頭像 發(fā)表于 12-23 11:29 ?323次閱讀

    2024年度國內(nèi)活躍開源項目和開發(fā)者在武漢揭曉

    近日,2024年度國內(nèi)活躍開源項目&開發(fā)者致謝儀式,亮相2024開放原子開發(fā)者大會暨首屆開源技術(shù)學(xué)術(shù)大會開幕式。
    的頭像 發(fā)表于 12-23 11:25 ?287次閱讀

    ElfBoard開源項目|車牌識別項目技術(shù)文檔

    車牌識別項目基于百度智能云平臺,旨在利用其強大的OCR服務(wù)實現(xiàn)車牌號碼的自動識別。選擇百度智能云的原因是其高效的API接口和穩(wěn)定的服務(wù)質(zhì)量,能夠幫助開發(fā)者快速實現(xiàn)車牌識別應(yīng)用。這個開源項目使用攝像頭
    的頭像 發(fā)表于 12-06 10:30 ?316次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|車牌識別<b class='flag-5'>項目</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>文檔</b>

    凌蒙派OpenHarmony開源項目榮獲本期Gitee官方推薦

    近日,我司凌蒙派OpenHarmony開源項目榮獲本期Gitee官方推薦。本期Gitee官方推薦不僅是對凌蒙派OpenHarmony開源項目的高度認可,也是對我司在推動
    的頭像 發(fā)表于 11-20 01:04 ?434次閱讀
    凌蒙派OpenHarmony<b class='flag-5'>開源</b><b class='flag-5'>項目</b>榮獲本期Gitee官方推薦

    ElfBoard開源項目|“智慧光伏”開源項目技術(shù)文檔

    【基于ELF1開發(fā)板完成的“智慧光伏”項目】“智慧光伏”項目能夠智能追蹤陽光的移動軌跡。通過內(nèi)置的光敏傳感器和智能控制系統(tǒng),實時感知周圍光源的變化,并驅(qū)動太陽能板精準調(diào)整角度,確保每一
    的頭像 發(fā)表于 10-11 15:52 ?463次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|“<b class='flag-5'>智慧</b>光伏”<b class='flag-5'>開源</b><b class='flag-5'>項目</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>文檔</b>

    真格基金宣布捐贈開源AI項目vLLM

    開源技術(shù)處于 AI 革命的中心。Llama 3、Mistral 等開源大模型迅速追趕 GPT-4,TensorFlow、Pytorch 等開源深度學(xué)習(xí)框架提供了豐富的庫和工具。GitH
    的頭像 發(fā)表于 09-24 16:13 ?447次閱讀

    Matepad pro12.2 已上市半個月,但是還沒有在開源網(wǎng)站看到該項目開源信息,違背開源精神

    Matepad pro12.2 已上市半個月,本人自己也購買了同款12+256的pad,想要同步學(xué)習(xí)下這款pad的一些體驗還不錯的功能點,但是目前為止還沒有在開源網(wǎng)站看到該項目開源信息,也查詢不到
    發(fā)表于 08-27 17:25

    迅龍軟件加入甲辰計劃“開源實習(xí)生聯(lián)合招聘培養(yǎng)”項目,共建RISC-V?開源生態(tài)

    近日,迅龍軟件宣布加入甲辰計劃“開源實習(xí)生聯(lián)合招聘培養(yǎng)項目”。該項目致力于RISC-V相關(guān)人才的培養(yǎng),同時推動企業(yè)加速RISC-V生態(tài)建設(shè)目標。加入該項目后,迅龍軟件將作為用人單位面向
    的頭像 發(fā)表于 07-22 16:23 ?456次閱讀
    迅龍軟件加入甲辰計劃“<b class='flag-5'>開源</b>實習(xí)生聯(lián)合招聘培養(yǎng)”<b class='flag-5'>項目</b>,共建RISC-V?<b class='flag-5'>開源</b>生態(tài)

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard-項目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項目

    工程師借助ELF 1S開發(fā)板完成的嵌入式物聯(lián)網(wǎng)項目,見證智慧技術(shù)的火花。 關(guān)于這個項目的思維導(dǎo)圖,如下圖所示: 接下來,將會從云-網(wǎng)-邊-端的物聯(lián)網(wǎng)體系架構(gòu)出發(fā),描述整個
    發(fā)表于 05-16 09:19

    飛凌嵌入式-ElfBoard-項目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項目

    工程師借助ELF 1S開發(fā)板完成的嵌入式物聯(lián)網(wǎng)項目,見證智慧技術(shù)的火花。 關(guān)于這個項目的思維導(dǎo)圖,如下圖所示: 接下來,將會從云-網(wǎng)-邊-端的物聯(lián)網(wǎng)體系架構(gòu)出發(fā),描述整個
    發(fā)表于 05-16 09:12

    項目分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)開源項目

    ElfBoard作為飛凌嵌入式旗下教育品牌,自成立以來,持續(xù)吸引著各界的矚目,其中也贏得了一些工程師的青睞。今天,就和各位小伙伴分享一位杰出工程師借助ELF1S開發(fā)板完成的嵌入式物聯(lián)網(wǎng)項目,見證智慧
    的頭像 發(fā)表于 05-14 09:03 ?1420次閱讀
    <b class='flag-5'>項目</b>分享|基于ELF 1S開發(fā)板完成的物聯(lián)網(wǎng)<b class='flag-5'>開源</b><b class='flag-5'>項目</b>

    瑞薩正式加入Zephyr項目,攜手共建開源實時操作系統(tǒng)新生態(tài)

    近日,業(yè)界領(lǐng)先的半導(dǎo)體解決方案提供商瑞薩宣布正式加入Zephyr?項目,并榮升為銀級會員。Zephyr作為Linux基金會的開源項目,致力于面向未來、資源受限的設(shè)備打造安全、互聯(lián)且靈活的實時操作系統(tǒng)(RTOS)。瑞薩的加入無疑將
    的頭像 發(fā)表于 03-12 09:18 ?771次閱讀
    主站蜘蛛池模板: 国模私拍在线观看 | 操欧洲美女| 台湾香港澳门三级在线 | 国产综合色精品一区二区三区 | 国产欧美视频在线 | 天天做人人爱夜夜爽2020 | 久久婷五月综合 | 人人玩人人干 | 久久婷五月综合 | 久久精品国产免费高清 | 欧美成人黄色 | 2018天天拍拍拍免费视频 | 中文字幕亚洲一区二区v@在线 | 美女黄18 | 轻点灬大ji巴太粗太大了小说 | 99pao在线视频精品免费 | 亚洲羞羞裸色私人影院 | 四虎在线免费视频 | 糖心vlog麻豆精东影业传媒 | 四虎最新免费观看网址 | 免费国产不卡午夜福在线 | 日日噜噜夜夜狠狠tv视频免费 | 亚洲人成电影在在线观看网色 | 国产精品美女在线观看 | 性生活一区 | 32pao强力打造免费高速高清 | 夜夜爽8888| 精品久久久久国产免费 | 天天做天天爱天天综合网 | 免费在线黄网站 | 天天综合天天做 | www.xxx国产| 嗯!啊!使劲用力在线观看 | 色天使美国 | 免费福利午夜影视网 | 欧美影院一区 | 成人爽爽激情在线观看 | 国产福利午夜自产拍视频在线 | 牛牛a级毛片在线播放 | 久久国产美女 | 欧美人成在线观看 |