chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

基于QT的智慧家庭控制中心

ElfBoard ? 2024-02-21 13:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

今天非常榮幸地向各位小伙伴展示并分享共創(chuàng)社中一位成員精心完成的項目成果,該項目依托ElfBoard開發(fā)板為核心硬件平臺,采用Qt框架構建了一套全面的智慧家庭控制中心系統(tǒng)。該系統(tǒng)由四大核心功能模塊整合而成:網絡通信接口、氣象信息展示、室內環(huán)境監(jiān)控及家居智能管理。

網絡連接模塊負責自動掃描并接入周邊可用的Wi-Fi網絡,確保系統(tǒng)與外部數據源的穩(wěn)定互聯。

天氣預報模塊在成功建立網絡連接后,能夠實時獲取并顯示指定地理位置的天氣狀況信息,為用戶提供便捷的氣象服務。

室內環(huán)境監(jiān)測模塊借助集成的溫濕度傳感器設備,實現對居住空間內部環(huán)境參數的實時監(jiān)測和精準記錄,以維護理想的居住環(huán)境條件。

家居控制中心作為系統(tǒng)的核心交互部分,具備對諸如LED照明設備以及蜂鳴器等家居設施的智能化管控能力,用戶可通過該中心輕松實現遠程操控與自動化場景設定。

項目軟硬件需求

1、ELF 1開發(fā)板

2、4.3英寸電容

3、QT

4、實況天氣接口API開發(fā)指南 未來一天天氣預報api - 天氣API

5、Wi-Fi(RTL8723DU)

項目功能

1、網絡連接

網絡連接部分的UI如圖所示:

wKgaomXViFaAZQUlAABK7lvD7xM572.png

本項目使用wpa_supplicant工具連接Wi-Fi,該工具是ElfBorad開發(fā)板的操作系統(tǒng)自帶的。掃描附近的Wi-Fi,然后將數據存儲到wifiname.txt文件中,核心代碼如下:

? system("killall wpa_suppicant"); qDebug()<<"killall wpa_suppicant"; system("rm -rf /var/run/wpa_supplicant"); qDebug() << "rm /var/run/wpa_supplicant"; QThread::msleep(1000); system("killall udhcpc"); qDebug() << "killall udhcpc"; QThread::msleep(1000); system("wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B"); qDebug() << "wpa_supplicant"; QThread::msleep(1000); system("killall wpa_cli"); QThread::msleep(1000); system("wpa_cli -i wlan0 scan"); QThread::msleep(1000); system("wpa_cli -i wlan0 scan_results > ./wifilist"); QThread::msleep(1000); system("cat wifilist |awk -F'\t' '{print $5}'> wifiname.txt");

該部分的代碼的作用是讀取wifiname.txt文件,然后將信息更新到UI中。

while (j<=12) { j++; str = in.readLine(); qDebug()setVisible(true); ui->Wlan1->setText(str); break; case 2:ui->Wlan2->setVisible(true); ui->Wlan2->setText(str); break; case 3:ui->Wlan3->setVisible(true); ui->Wlan3->setText(str); break; case 4:ui->Wlan4->setVisible(true); ui->Wlan4->setText(str); break; case 5:ui->Wlan5->setVisible(true); ui->Wlan5->setText(str); break; case 6:ui->Wlan6->setVisible(true); ui->Wlan6->setText(str); break; case 7:ui->Wlan7->setVisible(true); ui->Wlan7->setText(str); break; case 8:ui->Wlan8->setVisible(true); ui->Wlan8->setText(str); break; case 9:ui->Wlan9->setVisible(true); ui->Wlan9->setText(str); break; case 10:ui->Wlan10->setVisible(true); ui->Wlan10->setText(str); break; case 11:ui->Wlan11->setVisible(true); ui->Wlan11->setText(str); break; case 12:ui->Wlan12->setVisible(true); ui->Wlan12->setText(str); break; default:break; } }

該部分代碼的作用是在用戶選擇好連接的wifi并輸入密碼后連接Wi-Fi。

char set_ssid[64]; char set_password[64]; char select_wlan[64]; if (ui->wifimima->text().isEmpty()) { QMessageBox::warning(this,tr("Connect information"), tr("密碼不能為空")); } else { int i =get_i(); sprintf(set_ssid,"wpa_cli -i wlan0 set_network %d ssid '"%s"'",i,wifiName.toLatin1().data()); sprintf(set_password, "wpa_cli -i wlan0 set_network %d psk '"%s"' ",i,ui->wifimima->text().toLatin1().data()); qDebug() << set_password; sprintf(select_wlan, "wpa_cli -i wlan0 select_network %d ",i); system(set_ssid); system(set_password); system("wpa_cli -i wlan0 list_network"); system(select_wlan); system("udhcpc -i wlan0 -B");

?

2、天氣預報

該頁面的UI如圖所示:

wKgaomXViQ6AOsgJAAC72x-iRUk902.png

準備工作

在實況天氣接口API開發(fā)指南 未來一天天氣預報api - 天氣API網站注冊,注冊好后可以看到如下信息,每個郵箱號有3000次的免費的請求機會。

wKgZomXViSKAZ--WAABlr88huvM037.png

這里使用的是V61接口,https://tianqiapi.com/index/doc?version=v61,該接口下的天氣信息的JSON格式如下所示:

?{ "cityid":"101271201", #城市編號 "date":"2020-07-15", "week":"星期三", "update_time":"10:15", #更新時間 "city":"內江", #城市名稱 "cityEn":"neijiang", "country":"中國", "countryEn":"China", "wea":"陰", #實時天氣情況 "wea_img":"yin", "tem":"25", #實時溫度 "tem1":"29", #高溫 "tem2":"23", #低溫 "win":"西風", #風向 "win_speed":"2級", #風力等級 "win_meter":"小于12km/h", #風速 "humidity":"97%", #濕度 "visibility":"24.22km", #能見度 "pressure":"961", #氣壓 "uvIndex":"3", #紫外線等級 "uvDescription": "中等",#紫外線描述 "air":"15", #空氣質量 "air_pm25":"8", #pm2.5 "air_level":"優(yōu)", "air_tips":"空氣很好,可以外出活動,呼吸新鮮空氣,擁抱大自然!", "rain_pcpn":"2.5",#降雨量2.5mm "alarm":{ "alarm_type":"暴雨", #預警類型 "alarm_level":"橙色", #預警等級 "alarm_content":"內江市氣象臺7月15日5時23分發(fā)布第16號暴雨橙色預警信號: 預計我市市中區(qū)部分地方3小時降雨量將達50毫米以上,并伴有雷電和陣性大風,請加強防范強降水、雷電和大風等帶來的危害。 (預警信息來源:國家預警信息發(fā)布中心)" #預警描述 }, "aqi":{ #空氣質量指數詳情 "air":"15", "air_level":"優(yōu)", "air_tips":"空氣很好,可以外出活動,呼吸新鮮空氣,擁抱大自然!", "pm25":"8", "pm25_desc":"優(yōu)", "pm10":"10", "pm10_desc":"優(yōu)", "o3":"47", "o3_desc":"優(yōu)", "no2":"12", "no2_desc":"優(yōu)", "so2":"8", "so2_desc":"優(yōu)", "co": "1", "co_desc": "優(yōu)", "kouzhao":"無需戴口罩", "waichu":"適宜外出", "yundong":"適宜運動", "kaichuang":"適宜開窗", "jinghuaqi":"關閉凈化器", "cityid":"101271201", "city":"內江", "cityEn":"neijiang", "country":"中國", "countryEn":"China" } }

?

請求數據

請求天氣數據的代碼如下所示,appid后面的數字和appsecret是在注冊時網站給的密匙。

char quest_array[256] = "http://v1.yiketianqi.com/api?unescape=1&version=v61&appid=19311841&appsecret=nAGo24xi&city="; QNetworkRequest quest; sprintf(quest_array, "%s%s", quest_array, cityStr.toUtf8().data()); quest.setUrl(QUrl(quest_array)); quest.setHeader(QNetworkRequest::UserAgentHeader, "RT-Thread ART"); manager->get(quest); /*發(fā)送get網絡請求*/

我們在發(fā)送完請求信息后,會獲得回復信息,信息是json格式,我們只需要解析該json數據就行。主要代碼如下所示。

QJsonDocument json_recv = QJsonDocument::fromJson(all.toUtf8(), &err);//解析json對象 if (!json_recv.isNull() && err.error == QJsonParseError::NoError) { QJsonObject object = json_recv.object(); QStringList keys = object.keys(); foreach (const QString& key,keys){ qDebug() << "Key:" setText(weather_type); ui->label_temperature_2->setText(wendu); ui->label_wind_2->setText(fengli); ui->label_kongqizhiliang->setText(kongqizhiliang); ui->label_uv->setText(ziwaixian); ui->label_recommend_2->setText(tuijian); }

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

3、室內環(huán)境監(jiān)測

該部分的UI如圖所示:

wKgZomXVi7-AS8T5AAC-Mb3rGhE287.png

?

該部分的代碼比較簡單,主要是新建立一個線程,然后不停的讀取傳感器的信息,然后將相關的信息展示即可。核心代碼如下:

void CollentdataThread::run() { int fd = aht20_init(); emit send(temp,hum); while (1) { /*read temp data*/ aht20_read(fd); emit send(temp,hum); sleep(2); } }

4、家居控制中心

該部分的UI如圖所示:

wKgaomXVi-qAfLNGAAB0ULNczjE805.png

該部分主要是利用為了充分的展示開發(fā)板上的硬件而制作,我們假設3個lLED燈就是我們家里的燈,蜂鳴器可以假設為報警器。本身而言沒什么。

軟件編譯

在ElfBoard的官方教程中有詳細介紹如何在ELF 1開發(fā)板上編譯QT程序。在這里需要強調一點的是,在使用arm-gcc編譯完成后的可執(zhí)行文件是不能在X86的電腦上運行的,需要先在電腦上調試軟件,成功之后,再使用arm-gcc編譯,然后移植到ELF 1開發(fā)板上。

項目總結

這款智慧家庭的APP深度整合了ELF 1開發(fā)板硬件資源,包括Wi-Fi模塊、LED照明系統(tǒng)、溫濕度傳感器以及蜂鳴器等組件。項目構建過程中巧妙的利用了Wi-Fi,特別定制了一個功能完備的天氣預報界面,用戶通過該界面能夠輕松獲取不同地區(qū)的實時天氣信息,從而將智慧佳通控制范圍拓展至環(huán)境監(jiān)測及在線信息服務領域。

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

    關注

    5175

    文章

    19973

    瀏覽量

    324379
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5999

    瀏覽量

    110052
  • Qt
    Qt
    +關注

    關注

    2

    文章

    317

    瀏覽量

    39885
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    雷曼光電COB超高清顯示屏亮相第35屆青島國際啤酒節(jié)

    近日,雷曼光電在青島啤酒廠百年歷史的智能化轉型征程中,以雷曼COB超高清解決方案重塑工業(yè)控制中心的“智慧大腦”,助力打造“釀造過程實時數字孿生”的智能控制中心。這一里程碑式項目,恰逢第35屆青島國際啤酒節(jié)開幕,雷曼光電以科技之光
    的頭像 發(fā)表于 08-12 09:36 ?581次閱讀

    CX3無法將固件加載到SPI閃存如何解決?

    我無法將固件加載到 SPI 閃存。 步驟如下: 1. 開機,運行 USB 控制中心, 2.點擊boot loader,點擊FX3,然后選擇“SPI flash”。然后USB控制中心顯示“未找到
    發(fā)表于 07-16 07:37

    在win10系統(tǒng)上,通過控制中心下載MDK編譯的.hex后,硬件能被識別,但讀寫無反應,usb不能工作,是什么原因?

    在win10系統(tǒng)上,通過控制中心下載MDK編譯的.hex后,硬件能被識別,但讀寫無反應,usb不能工作;win7上操作正常,請問這是什么問題呢?
    發(fā)表于 05-30 07:15

    使用USB控制中心下載固件遇到的問題怎么解決?

    我使用 USB 控制中心下載了固件,program-fx3-iic-eeprom。但是當我需要重置新下載固件時,出現了請重置你的設備來下載固件。我不知道怎么解決?求解答
    發(fā)表于 05-27 06:35

    使用USB控制中心通過FX3將數據傳輸到DSP,數據字丟失怎么解決?

    我們正試圖使用 USB 控制中心通過 FX3 將數據傳輸到 DSP。 硬件 數字信號處理器:與 Fx3S 連接的 TMS320C28346ZFE 按鍵連接到地 這是一個定制板 問題: 使用 SDK
    發(fā)表于 05-21 07:31

    求助,關于CX3 USB控制中心和調試問題求解

    CreateProcess error=2,系統(tǒng)無法找到指定文件 有辦法解決這個問題嗎? 我不知道這是否與此有關,但當我打開 USB 控制中心時,沒有設備樹,因此沒有描述符信息,但電路板已插入并接通電源,而且無法編程,FX2、FX3 菜單項被禁用。
    發(fā)表于 05-20 06:37

    [Actor] 通過actor創(chuàng)建控制中心與數據采集工作站來看操作者架構

    :自動生產了“發(fā)送該消息”的VI, (注:這個vi中包含方法中對外連接的端子) 3、至此 actor對象的方法和消息都已創(chuàng)建,可以編程使用了 二、具體到控制中心和數據采集工作站的講解 1、首先創(chuàng)建了一個定時
    發(fā)表于 05-14 18:44

    控制中心開機后無法識別CYUSB3014,除非重新插入USB線,這是怎么回事?

    正如標題所述,我使用 PC 上的控制中心識別 PCBA 上的 CYUSB3014-BZXI 設備,這是沒問題的。 這里的控制中心位于CYPRESS?的 FX3 設備套件中。 但是,當我關閉 PCBA
    發(fā)表于 05-12 06:40

    為什么無法在USB控制中心選擇固件映像文件?

    到 SPI Flash。 但是,在某個時間點之后,我無法再使用 USB 控制中心將新的固件映像文件下載到 SPI Flash 或 EEPROM。 當我從程序選項卡單擊 SPI Flash 或
    發(fā)表于 05-07 06:14

    EtherCAT運動控制器實時數據的Qt示波器

    基于QT開發(fā)調用正運動函數接口實現控制器數據實時監(jiān)測的示波器效果
    的頭像 發(fā)表于 04-17 17:12 ?460次閱讀
    EtherCAT運動<b class='flag-5'>控制</b>器實時數據的<b class='flag-5'>Qt</b>示波器

    【技術案例】Qt 環(huán)境部署 - Ubuntu 篇

    什么是Qt?Qt是一個跨平臺C++圖形用戶界面應用程序開發(fā)框架,可構建高性能的桌面、移動及Web應用程序,也可用于開發(fā)非GUI程序,比如控制臺工具和服務器。Qt是面向對象的框架,使用特
    的頭像 發(fā)表于 04-16 17:17 ?1097次閱讀
    【技術案例】<b class='flag-5'>Qt</b> 環(huán)境部署 - Ubuntu 篇

    星閃破壁,鴻蒙筑家:智慧家庭聚變2025

    鴻蒙+星閃,共繪萬物協同的智慧家庭圖景
    的頭像 發(fā)表于 04-03 09:51 ?909次閱讀
    星閃破壁,鴻蒙筑家:<b class='flag-5'>智慧</b><b class='flag-5'>家庭</b>聚變2025

    上海海思鴻蒙星閃技術引領智慧家庭新體驗

    智慧家庭承載著人們對便捷、舒適生活的無限憧憬。智慧家庭蓬勃發(fā)展的同時,消費者往往遇到家居設備連不上連不穩(wěn)、生態(tài)割裂需要安裝一堆APP、大屏娛樂內容不夠豐富等問題。
    的頭像 發(fā)表于 03-31 10:29 ?933次閱讀

    Qt Group發(fā)布Qt Accelerate,加速數字產品開發(fā)進程

    Qt Group近日正式推出了Qt Accelerate,這是一款專為快速構建數字應用而設計的解決方案,旨在滿足工業(yè)制造、移動出行、消費類電子等多個領域的需求。 Qt Accelerate基于
    的頭像 發(fā)表于 01-13 11:19 ?819次閱讀

    告別繁瑣!盾華物聯網智慧控制中心,讓中小型控制中心建設更簡單!

    告別繁瑣!盾華物聯網智慧控制中心,讓中小型控制中心建設更簡單!
    的頭像 發(fā)表于 11-29 09:41 ?711次閱讀
    告別繁瑣!盾華物聯網<b class='flag-5'>智慧</b><b class='flag-5'>控制中心</b>,讓中小型<b class='flag-5'>控制中心</b>建設更簡單!