一、概述
當(dāng)前基于STM32和華為云,設(shè)計(jì)了一種智慧煙感系統(tǒng),該系統(tǒng)可以檢測(cè)煙霧,同時(shí)將檢測(cè)到的數(shù)據(jù)上傳到云端進(jìn)行處理和分析。系統(tǒng)可用于家庭、辦公室等需要安裝煙霧報(bào)警器場(chǎng)所。
二、系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)硬件設(shè)計(jì)
【1】硬件平臺(tái)
該系統(tǒng)主要使用STM32F103ZET6微控制器作為核心控制器,并搭配數(shù)碼顯示器、蜂鳴器、MQ4煙霧傳感器、WiFi模塊等作為輔助組件。
【2】系統(tǒng)連接
STM32F103ZET6微控制器通過GPIO連接數(shù)碼顯示器、蜂鳴器、MQ4煙霧傳感器等外設(shè)。通過UART連接WiFi模塊,將讀取到的數(shù)據(jù)上傳到云端。
【3】系統(tǒng)工作流程
系統(tǒng)在啟動(dòng)時(shí),首先進(jìn)行硬件初始化和WiFi連接操作。之后,通過煙霧傳感器實(shí)時(shí)檢測(cè)室內(nèi)環(huán)境中的煙霧濃度,當(dāng)煙霧濃度超出一定閾值時(shí),蜂鳴器會(huì)發(fā)出警報(bào),同時(shí)將警報(bào)信息上傳到云端。在云端,系統(tǒng)可以對(duì)上傳的數(shù)據(jù)進(jìn)行處理和分析,如通過分析歷史數(shù)據(jù)預(yù)測(cè)煙霧濃度的變化趨勢(shì)等。
2.2 系統(tǒng)軟件設(shè)計(jì)
【1】軟件平臺(tái)
系統(tǒng)的軟件平臺(tái)主要由STM32的HAL庫(kù)和華為云平臺(tái)的API組成。
【2】軟件流程
系統(tǒng)在啟動(dòng)時(shí),首先進(jìn)行硬件初始化和WiFi連接操作。之后,通過HAL庫(kù)讀取MQ4煙霧傳感器的數(shù)據(jù),并根據(jù)數(shù)據(jù)判斷是否觸發(fā)煙霧警報(bào)。如果觸發(fā)了煙霧警報(bào),則蜂鳴器發(fā)出警報(bào),并通過WiFi模塊將警報(bào)信息上傳到云端。在云端,系統(tǒng)通過華為云平臺(tái)的API接口獲取上傳的數(shù)據(jù),并進(jìn)行處理和分析。
三、華為云IOT平臺(tái)開發(fā)
在華為云IOT平臺(tái)上,需要進(jìn)行設(shè)備接入、數(shù)據(jù)模型定義、規(guī)則引擎配置和應(yīng)用開發(fā)等四個(gè)核心模塊的開發(fā)。其中,設(shè)備接入模塊包括設(shè)備注冊(cè)、獲取設(shè)備證書、建立連接等步驟,以保障設(shè)備與云平臺(tái)之間的安全通信;數(shù)據(jù)模型定義模塊需要根據(jù)實(shí)際需求定義相應(yīng)的數(shù)據(jù)模型,包括上傳數(shù)據(jù)格式、設(shè)備屬性和服務(wù)等。規(guī)則引擎配置模塊需要完成實(shí)時(shí)消息推送、遠(yuǎn)程控制和告警等功能。應(yīng)用開發(fā)模塊則是將完整的智能井蓋系統(tǒng)進(jìn)行打包,為用戶提供統(tǒng)一的操作接口。
華為云官網(wǎng): https://www.huaweicloud.com/
打開官網(wǎng),搜索物聯(lián)網(wǎng),就能快速找到 設(shè)備接入IoTDA。
3.1 物聯(lián)網(wǎng)平臺(tái)介紹
華為云物聯(lián)網(wǎng)平臺(tái)(IoT 設(shè)備接入云服務(wù))提供海量設(shè)備的接入和管理能力,將物理設(shè)備聯(lián)接到云,支撐設(shè)備數(shù)據(jù)采集上云和云端下發(fā)命令給設(shè)備進(jìn)行遠(yuǎn)程控制,配合華為云其他產(chǎn)品,幫助我們快速構(gòu)筑物聯(lián)網(wǎng)解決方案。
使用物聯(lián)網(wǎng)平臺(tái)構(gòu)建一個(gè)完整的物聯(lián)網(wǎng)解決方案主要包括3部分:物聯(lián)網(wǎng)平臺(tái)、業(yè)務(wù)應(yīng)用和設(shè)備。
物聯(lián)網(wǎng)平臺(tái)作為連接業(yè)務(wù)應(yīng)用和設(shè)備的中間層,屏蔽了各種復(fù)雜的設(shè)備接口,實(shí)現(xiàn)設(shè)備的快速接入;同時(shí)提供強(qiáng)大的開放能力,支撐行業(yè)用戶構(gòu)建各種物聯(lián)網(wǎng)解決方案。
設(shè)備可以通過固網(wǎng)、2G/3G/4G/5G、NB-IoT、Wifi等多種網(wǎng)絡(luò)接入物聯(lián)網(wǎng)平臺(tái),并使用LWM2M/CoAP、MQTT、HTTPS協(xié)議將業(yè)務(wù)數(shù)據(jù)上報(bào)到平臺(tái),平臺(tái)也可以將控制命令下發(fā)給設(shè)備。
業(yè)務(wù)應(yīng)用通過調(diào)用物聯(lián)網(wǎng)平臺(tái)提供的API,實(shí)現(xiàn)設(shè)備數(shù)據(jù)采集、命令下發(fā)、設(shè)備管理等業(yè)務(wù)場(chǎng)景。
3.2 開通物聯(lián)網(wǎng)服務(wù)
地址: https://www.huaweicloud.com/product/iothub.html
開通標(biāo)準(zhǔn)版免費(fèi)單元。
開通之后,點(diǎn)擊總覽,查看接入信息。 我們當(dāng)前設(shè)備準(zhǔn)備采用MQTT協(xié)議接入華為云平臺(tái),這里可以看到MQTT協(xié)議的地址和端口號(hào)等信息。
總結(jié):
端口號(hào): MQTT (1883)| MQTTS (8883) 接入地址: a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com
根據(jù)域名地址得到IP地址信息:
Microsoft Windows [版本 10.0.19044.2846] (c) Microsoft Corporation。保留所有權(quán)利。 ? C:Users11266>ping a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com ? 正在 Ping a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com [121.36.42.100] 具有 32 字節(jié)的數(shù)據(jù): 來自 121.36.42.100 的回復(fù): 字節(jié)=32 時(shí)間=37ms TTL=31 來自 121.36.42.100 的回復(fù): 字節(jié)=32 時(shí)間=37ms TTL=31 來自 121.36.42.100 的回復(fù): 字節(jié)=32 時(shí)間=36ms TTL=31 來自 121.36.42.100 的回復(fù): 字節(jié)=32 時(shí)間=37ms TTL=31 ? 121.36.42.100 的 Ping 統(tǒng)計(jì)信息: 數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失), 往返行程的估計(jì)時(shí)間(以毫秒為單位): 最短 = 36ms,最長(zhǎng) = 37ms,平均 = 36ms ? C:Users11266>

MQTT協(xié)議接入端口號(hào)有兩個(gè),1883是非加密端口,8883是證書加密端口,單片機(jī)無法加載證書,所以使用1883端口比較合適。 接下來的ESP8266就采用1883端口連接華為云物聯(lián)網(wǎng)平臺(tái)。
3.3 創(chuàng)建產(chǎn)品
(1)創(chuàng)建產(chǎn)品
點(diǎn)擊右上角創(chuàng)建產(chǎn)品。
(2)填寫產(chǎn)品信息
根據(jù)自己產(chǎn)品名字填寫,設(shè)備類型選擇自定義類型。
(3)添加自定義模型
產(chǎn)品創(chuàng)建完成之后,點(diǎn)擊進(jìn)入產(chǎn)品詳情頁(yè)面,翻到最下面可以看到模型定義。
模型簡(jiǎn)單來說: 就是存放設(shè)備上傳到云平臺(tái)的數(shù)據(jù)。比如:環(huán)境溫度、環(huán)境濕度、環(huán)境煙霧濃度、火焰檢測(cè)狀態(tài)圖等等,這些我們都可以單獨(dú)創(chuàng)建一個(gè)模型保存。
3.4 添加設(shè)備
產(chǎn)品是屬于上層的抽象模型,接下來在產(chǎn)品模型下添加實(shí)際的設(shè)備。添加的設(shè)備最終需要與真實(shí)的設(shè)備關(guān)聯(lián)在一起,完成數(shù)據(jù)交互。
(1)注冊(cè)設(shè)備
點(diǎn)擊右上角注冊(cè)設(shè)備。
(2)根據(jù)自己的設(shè)備填寫
在彈出的對(duì)話框里填寫自己設(shè)備的信息。根據(jù)自己設(shè)備詳細(xì)情況填寫。
(3)保存設(shè)備信息
創(chuàng)建完畢之后,點(diǎn)擊保存并關(guān)閉,得到創(chuàng)建的設(shè)備密匙信息。該信息在后續(xù)生成MQTT三元組的時(shí)候需要使用。
3.5 MQTT協(xié)議主題訂閱與發(fā)布
(1)MQTT協(xié)議介紹
當(dāng)前的設(shè)備是采用MQTT協(xié)議與華為云平臺(tái)進(jìn)行通信。
MQTT是一個(gè)物聯(lián)網(wǎng)傳輸協(xié)議,它被設(shè)計(jì)用于輕量級(jí)的發(fā)布/訂閱式消息傳輸,旨在為低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中的物聯(lián)網(wǎng)設(shè)備提供可靠的網(wǎng)絡(luò)服務(wù)。MQTT是專門針對(duì)物聯(lián)網(wǎng)開發(fā)的輕量級(jí)傳輸協(xié)議。MQTT協(xié)議針對(duì)低帶寬網(wǎng)絡(luò),低計(jì)算能力的設(shè)備,做了特殊的優(yōu)化,使得其能適應(yīng)各種物聯(lián)網(wǎng)應(yīng)用場(chǎng)景。目前MQTT擁有各種平臺(tái)和設(shè)備上的客戶端,已經(jīng)形成了初步的生態(tài)系統(tǒng)。
MQTT是一種消息隊(duì)列協(xié)議,使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合,相對(duì)于其他協(xié)議,開發(fā)更簡(jiǎn)單;MQTT協(xié)議是工作在TCP/IP協(xié)議上;由TCP/IP協(xié)議提供穩(wěn)定的網(wǎng)絡(luò)連接;所以,只要具備TCP協(xié)議棧的網(wǎng)絡(luò)設(shè)備都可以使用MQTT協(xié)議。 本次設(shè)備采用的ESP8266就具備TCP協(xié)議棧,能夠建立TCP連接,所以,配合STM32代碼里封裝的MQTT協(xié)議,就可以與華為云平臺(tái)完成通信。
華為云的MQTT協(xié)議接入幫助文檔在這里: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html
業(yè)務(wù)流程:
(2)華為云平臺(tái)MQTT協(xié)議使用限制
描述 | 限制 |
---|---|
支持的MQTT協(xié)議版本 | 3.1.1 |
與標(biāo)準(zhǔn)MQTT協(xié)議的區(qū)別 | 支持Qos 0和Qos 1支持Topic自定義不支持QoS2不支持will、retain msg |
MQTTS支持的安全等級(jí) | 采用TCP通道基礎(chǔ) + TLS協(xié)議(最高TLSv1.3版本) |
單帳號(hào)每秒最大MQTT連接請(qǐng)求數(shù) | 無限制 |
單個(gè)設(shè)備每分鐘支持的最大MQTT連接數(shù) | 1 |
單個(gè)MQTT連接每秒的吞吐量,即帶寬,包含直連設(shè)備和網(wǎng)關(guān) | 3KB/s |
MQTT單個(gè)發(fā)布消息最大長(zhǎng)度,超過此大小的發(fā)布請(qǐng)求將被直接拒絕 | 1MB |
MQTT連接心跳時(shí)間建議值 | 心跳時(shí)間限定為30至1200秒,推薦設(shè)置為120秒 |
產(chǎn)品是否支持自定義Topic | 支持 |
消息發(fā)布與訂閱 | 設(shè)備只能對(duì)自己的Topic進(jìn)行消息發(fā)布與訂閱 |
每個(gè)訂閱請(qǐng)求的最大訂閱數(shù) | 無限制 |
(3)主題訂閱格式
幫助文檔地址:https://support.huaweicloud.com/devg-iothub/iot_02_2200.html
對(duì)于設(shè)備而言,一般會(huì)訂閱平臺(tái)下發(fā)消息給設(shè)備 這個(gè)主題。
設(shè)備想接收平臺(tái)下發(fā)的消息,就需要訂閱平臺(tái)下發(fā)消息給設(shè)備 的主題,訂閱后,平臺(tái)下發(fā)消息給設(shè)備,設(shè)備就會(huì)收到消息。
(4)主題發(fā)布格式
對(duì)于設(shè)備來說,主題發(fā)布表示向云平臺(tái)上傳數(shù)據(jù),將最新的傳感器數(shù)據(jù),設(shè)備狀態(tài)上傳到云平臺(tái)。
這個(gè)操作稱為:屬性上報(bào)。
幫助文檔地址:https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html
3.6 MQTT三元組
MQTT協(xié)議登錄需要填用戶ID,設(shè)備ID,設(shè)備密碼等信息,就像我們平時(shí)登錄QQ,微信一樣要輸入賬號(hào)密碼才能登錄。MQTT協(xié)議登錄的這3個(gè)參數(shù),一般稱為MQTT三元組。
接下來介紹,華為云平臺(tái)的MQTT三元組參數(shù)如何得到。
(1)MQTT服務(wù)器地址
要登錄MQTT服務(wù)器,首先記得先知道服務(wù)器的地址是多少,端口是多少。
幫助文檔地址:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/home
MQTT協(xié)議的端口支持1883和8883,它們的區(qū)別是:8883 是加密端口更加安全。但是單片機(jī)上使用比較困難,所以當(dāng)前的設(shè)備是采用1883端口進(jìn)連接的。
根據(jù)上面的域名和端口號(hào),得到下面的IP地址和端口號(hào)信息: 如果設(shè)備支持填寫域名可以直接填域名,不支持就直接填寫IP地址。 (IP地址就是域名解析得到的)
華為云的MQTT服務(wù)器地址:121.36.42.100 華為云的MQTT端口號(hào):1883
(2)生成MQTT三元組
華為云提供了一個(gè)在線工具,用來生成MQTT鑒權(quán)三元組: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
打開這個(gè)工具,填入設(shè)備的信息(也就是剛才創(chuàng)建完設(shè)備之后保存的信息),點(diǎn)擊生成,就可以得到MQTT的登錄信息了。
下面是打開的頁(yè)面:
3.7 參考案例
華為云平臺(tái)部署開發(fā)也可以參考這里:
https://bbs.huaweicloud.com/blogs/381072
【基于華為云IOT平臺(tái)實(shí)現(xiàn)多節(jié)點(diǎn)溫度采集(STM32+NBIOT)】
四、煙感核心代碼
【1】MQ2傳感器
以下是一個(gè)讀取MQ2傳感器數(shù)據(jù),并轉(zhuǎn)換為煙霧濃度的示例代碼,
#include "stm32f10x.h" #include ? int main(void) { // 初始化ADC ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ? // 配置ADC通道1的GPIO引腳 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); ? // 啟動(dòng)ADC校準(zhǔn) ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1); while (ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while (ADC_GetCalibrationStatus(ADC1)); ? // 讀取ADC值 ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_28Cycles5); ADC_SoftwareStartConvCmd(ADC1, ENABLE); while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); uint16_t adc_value = ADC_GetConversionValue(ADC1); ? // 計(jì)算煙霧濃度 float voltage = (float)adc_value / 4096.0f * 3.3f; float density = (voltage - 0.4f) / 0.4f * 10000.0f; ? // 打印出煙霧濃度 printf("MQ2 Smoke Density: %.2f ppmn", density); } ? ? ? ? float adc_average() { const int num_discarded = 3; // 剔除的最大/最小值數(shù)量 float samples[20]; // 存儲(chǔ)采樣結(jié)果的數(shù)組 // 采集數(shù)據(jù) for (int i = 0; i < num_samples; i++) { ? ? ? ? ?samples[i] = ADC_GET(); ? ? } ? ? ? ? ? ?// 對(duì)采樣結(jié)果進(jìn)行排序(升序) ? ? ?for (int i = 0; i < num_samples - 1; i++) { ? ? ? ? ?for (int j = i + 1; j < num_samples; j++) { ? ? ? ? ? ? ?if (samples[i] > samples[j]) { float temp = samples[i]; samples[i] = samples[j]; samples[j] = temp; } } } // 計(jì)算剩下的平均值 float sum = 0; for (int i = num_discarded; i < num_samples - num_discarded; i++) { ? ? ? ? ?sum += samples[i]; ? ? } ? ? ?return sum / (num_samples - 2 * num_discarded); ?// 返回計(jì)算結(jié)果 ?}
【2】MQ4傳感器
以下是基于HAL庫(kù)的STM32F103ZET6讀取MQ4煙霧傳感器的代碼:
#include "gpio.h" ? /* MQ4傳感器的引腳定義 */ #define MQ4_PORT GPIOA #define MQ4_PIN GPIO_PIN_0 ? /* MQ4傳感器的校準(zhǔn)電壓 */ #define MQ4_RL_VALUE 10 // RL值為10kΩ #define MQ4_CALCULATE_RO_CLEAN(adcValue) ((float)(RL_VALUE*(4096-adcValue)/adcValue)) ? /* 獲取MQ4傳感器的數(shù)據(jù) */ float get_mq4_value() { uint32_t adc_value = HAL_ADC_GetValue(&hadc1); float ro = MQ4_CALCULATE_RO_CLEAN(adc_value); float sensor_volt = HAL_ADC_GetValue(&hadc2) * (3.3 /4096.0); float sensor_rsr = (3.3 - sensor_volt) / sensor_volt * ro; float mq4_ppm = pow(10, ((log10(sensor_rsr / 2.5) - 0.3420) / (-0.6162))); return mq4_ppm; } ? /* 主函數(shù) */ int main() { HAL_Init(); MX_GPIO_Init(); MX_ADC1_Init(); MX_ADC2_Init(); /* 讀取MQ4傳感器數(shù)據(jù) */ float mq4_value = get_mq4_value(); ? printf("MQ4傳感器值:%.2f PPMrn", mq4_value); ? while (1); }
在該示例代碼中,我們用到了ADC1和ADC2來分別讀取MQ4傳感器的數(shù)據(jù)引腳和校準(zhǔn)電壓。函數(shù)get_mq4_value()中使用了MQ4傳感器的電路計(jì)算公式,將讀取的傳感器數(shù)據(jù)轉(zhuǎn)化成對(duì)應(yīng)的PPM值。
五、系統(tǒng)優(yōu)化設(shè)計(jì)
為了提高系統(tǒng)的準(zhǔn)確性和實(shí)用性,采取以下優(yōu)化方案:
【1】使用多個(gè)傳感器
在實(shí)際應(yīng)用中,可以通過使用多個(gè)煙霧傳感器來提高系統(tǒng)的準(zhǔn)確性。安裝多個(gè)傳感器,可以檢測(cè)到更多的區(qū)域,從而更準(zhǔn)確地判斷室內(nèi)是否有煙霧濃度超標(biāo)的情況。
【2】使用專業(yè)的云平臺(tái)
為了更好地管理和分析數(shù)據(jù),可以選擇一個(gè)專業(yè)的云平臺(tái),如華為云。使用云平臺(tái),可以更方便地對(duì)數(shù)據(jù)進(jìn)行分析和處理,并實(shí)現(xiàn)更多的智能化管理功能。
【3】提高警報(bào)效果
為了更好地提高警報(bào)效果,除了使用蜂鳴器外,還可以考慮使用其他類型的報(bào)警器,如閃光燈、震動(dòng)器等。這些報(bào)警器可以在不同場(chǎng)合下提供更好的報(bào)警效果。
【4】引入云服務(wù)
將數(shù)據(jù)上傳到云端,不僅可以對(duì)數(shù)據(jù)進(jìn)行分析和處理,還可以通過云平臺(tái)提供的服務(wù),如語音警報(bào)、郵件通知等方式及時(shí)向用戶通報(bào)警情,讓用戶第一時(shí)間采取措施。
【5】實(shí)現(xiàn)遠(yuǎn)程控制
若在系統(tǒng)中加入控制模塊,用戶就可以在遠(yuǎn)程控制平臺(tái)上通過云端控制系統(tǒng),如關(guān)閉報(bào)警器、打開風(fēng)扇等。對(duì)于需要海量數(shù)據(jù)處理和智能控制的復(fù)雜系統(tǒng),基于云服務(wù)的遠(yuǎn)程控制就顯得尤為重要。
六、總結(jié)
本文基于STM32和華為云平臺(tái),設(shè)計(jì)了一種智慧煙感系統(tǒng)。該系統(tǒng)可以檢測(cè)煙霧濃度并上傳數(shù)據(jù)到云端,通過云端進(jìn)行分析和處理,實(shí)現(xiàn)報(bào)警和遠(yuǎn)程控制功能。通過不斷地優(yōu)化系統(tǒng),可以不斷提高系統(tǒng)的準(zhǔn)確性和實(shí)用性,將其應(yīng)用到更廣泛的領(lǐng)域中。
審核編輯黃宇
-
微控制器
+關(guān)注
關(guān)注
48文章
7831瀏覽量
153192 -
STM32
+關(guān)注
關(guān)注
2282文章
10980瀏覽量
360806 -
STM32F103ZET6
+關(guān)注
關(guān)注
9文章
67瀏覽量
21503 -
華為云
+關(guān)注
關(guān)注
3文章
2755瀏覽量
17981
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
智慧煙感能完成消防哨兵的任務(wù)嗎?
華為與德國(guó)聯(lián)合打造智慧城市
物聯(lián)網(wǎng)NB-IOT智慧煙感,沒有它怎么行
零死角玩轉(zhuǎn)STM32+初級(jí)篇+中級(jí)篇+系統(tǒng)篇分享
【STM32+機(jī)智云】機(jī)智云手機(jī)APP點(diǎn)燈實(shí)驗(yàn)踩坑記錄 精選資料分享
STm32與RT-thread操作系統(tǒng)的配合使用
設(shè)計(jì)基于STM32+機(jī)智云的手機(jī)APP點(diǎn)燈遇到哪些問題
基于OpenHarmony的華為云IoT智慧路燈實(shí)現(xiàn)
基于OpenHarmony的華為云IoT智慧路燈
【小凌派RK2206開發(fā)板試用體驗(yàn)】OpenHarmony華為云IoT應(yīng)用開發(fā)-智慧井蓋
NB-IoT在智慧煙感中的特性及解決方案分享
基于STM32+華為云IOT設(shè)計(jì)的智慧路燈

智慧煙感器的種類 光電式煙感探測(cè)器的工作原理
AIoT之智慧煙感芯片方案詳解

IoT畢業(yè)設(shè)計(jì) | STM32+機(jī)智云AIoT云平臺(tái)實(shí)現(xiàn)智能鴿籠控制

評(píng)論