移動物聯網專案搭建(五) 採集端開發設計

2021-09-25 15:42:06 字數 2188 閱讀 1716

採集端的主要功能與監控端大同小異不過多贅述,主要講不同的地方。

監控端的功能採集端也都要有,而相對於監控端採集端要加入與arduino的串列埠通訊部分以及多乙個採集執行緒。

故在mainwindow類中額外要定義乙個執行緒物件

threadsensor sensorcollector;
且於建構函式中初始化時啟動該執行緒且連線槽函式與訊號

connect(&

(this->sensorcollector)

,signal

(collected

(int))

,this,

slot

(delcollection

(int))

);sensorcollector.

start()

;

#define dht11_pin 0

byte read_dht11_dat()

return result;

}void

setup()

void

loop()

delaymicroseconds(80

);dht11_in = pinc &

_bv(dht11_pin);if

(!dht11_in)

delaymicroseconds(80

);for(i=

0;i<

5;i++

) dht11_dat[i]

=read_dht11_dat()

; ddrc |

=_bv

(dht11_pin)

; portc |

=_bv

(dht11_pin)

;

byte dht11_check_sum = dht11_dat[0]

+dht11_dat[1]

+dht11_dat[2]

+dht11_dat[3]

;if(dht11_dat[4]

!=dht11_check_sum)

serial.

println

(dht11_dat[2]

,dec)

;delay

(5000);

}

class threadsensor : public qthread

;

開始採集函式startsensor,在run函式中呼叫

void threadsensor:

:startsensor()

fseek

(fp, g_curr_offset,

seek_set);

while(!

feof

(fp));

hal_snprintf

(property_payload,

sizeof

(property_payload),""

, num);if

(num!=0)

}fclose

(fp)

;return

;}

採集到資料後先通過iot_linkkit_report函式傳送至雲端屬性物模型中,更新裝置狀態,之後再emit collected,傳送採集訊號給主線程,這邊加了個不等於0的判斷條件,是因為讀取的時候可能由於讀的大小不對會有0資料出現,故這裡去掉錯誤資料。

主線程對應槽函式:

void mainwindow:

:delcollection

(int n)

該函式來更新面板顯示,並將溫度資料發布到指定topic再通過規則引擎**至監控端topic。

阿里雲溫度狀態改變:

移動物聯網專案搭建(一)——起步

移動物聯網專案搭建(二)——雲端配置

移動物聯網專案搭建(三)——sdk抽取與qt工程建立

移動物聯網專案搭建(四)——監控端開發設計

移動端專案開發總結

對於這次移動端頁面開發,新接觸到的東西不少,首要的乙個就是響應式布局,在移動頁面開發中,需要考慮到移動端各種不同的螢幕大小而使用不同的布局來呈現出想要的效果.在小螢幕的移動裝置中.可能需要減少頁面中的資訊量,並且改變原有的布局方案,採用適用於移動端的布局方案.而在中等螢幕大小的移動裝置中,如平板,則...

移動端專案開發心得

通過這次專案開發,使我對布局有了更深層次的理解,對float和position的運用也更得心應手。體會到float和position對頁面的負面影響。其中,position absoulte fiexd會讓元素脫離文件流,其後面的元素 暫且稱為候補元素吧 會佔據原來的位置,需要對候補元素的margi...

工信部公布44個專案入選移動物聯網應用優秀案例

程式設計客棧 www.cppcns.com 5月8日 訊息 工信部近日公布44 個專案入選移動物聯網應用優秀案例,其中包括移動 電信 聯通 中國鐵塔等公司的應用平台。根據工信部的介紹,經企業自主申報 地方擇優推薦 專家綜合評審 網上公示等環節,工信kmrucr部近日確定 三一重工智慧型工廠 等 44...