999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

具有遠(yuǎn)程控制功能的智能報(bào)警器

2024-06-01 13:58:35宋海濤
現(xiàn)代信息科技 2024年4期
關(guān)鍵詞:智能設(shè)備

收稿日期:2023-07-28

DOI:10.19850/j.cnki.2096-4706.2024.04.038

摘? 要:介紹了一種以ESP32為內(nèi)核的具有遠(yuǎn)程控制功能的智能報(bào)警器的設(shè)計(jì)與實(shí)現(xiàn)方法。其硬件功能單元包括Wi-Fi、藍(lán)牙、存儲(chǔ)器、FM收音機(jī)、充電OTG、揚(yáng)聲器。主要實(shí)現(xiàn)了IPAWS報(bào)警推送功能、斷網(wǎng)斷電情況下FM收聽功能;支持與手機(jī)APP連接,可以響應(yīng)遠(yuǎn)程客戶端控制命令。通過AWS-IoT控制設(shè)備交互,同時(shí)利用OTA技術(shù)實(shí)現(xiàn)了該報(bào)警器的固件文件遠(yuǎn)程升級(jí)。IPAWS系統(tǒng)通過點(diǎn)對面的形式,達(dá)到預(yù)警信息的統(tǒng)一來源和發(fā)布手段的多元化,可有效擴(kuò)大用戶的使用范圍。

關(guān)鍵詞:ESP32;智能報(bào)警器;Wi-Fi;BLE;FM;IPAWS;遠(yuǎn)程控制;遠(yuǎn)程升級(jí)

中圖分類號(hào):TP277? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2024)04-0184-06

Intelligent Alarm with Remote Control Function

SONG Haitao

(Shanghai Chamsion Intelligent Technology Co., Ltd., Shanghai? 201112, China)

Abstract: This paper introduces the design and implementation method of an intelligent alarm with remote control function using ESP32 as the core. Its hardware functional units include Wi-Fi, Bluetooth, memory, FM radio, charging OTG, and speakers. It mainly implements IPAWS alarm push function and FM listening function in case of network interruption and power outage. It supports connection with mobile APP and can respond to remote client control commands. The interaction between devices is controlled through AWS-IoT, and the firmware file of the alarm is remotely upgraded using OTA technology. The IPAWS system achieves a unified source of warning information and diversified means of dissemination through point to surface communication, which can effectively expand the scope of user use.

Keywords: ESP32; intelligent alarm; Wi-Fi; BLE; FM; IPAWS; remote control; remote upgrade

0? 引? 言

IPAWS是美國災(zāi)害預(yù)警系統(tǒng),能通過各種渠道和方式對國民發(fā)出預(yù)警和警示。智能報(bào)警器能夠接收IPAWS警報(bào)服務(wù)信息,這些信息聚合了NOAA(美國國家海洋和大氣管理局)、CAL Fire(加州森林防火廳)等各種來源的警報(bào)。報(bào)警器集成了一個(gè)由外部服務(wù)觸發(fā)的早期預(yù)警系統(tǒng)(燈光、警報(bào)器),內(nèi)置10 000 mAh容量電池,在斷電或緊急情況下提供應(yīng)急燈或者區(qū)域照明,Smart K類音頻功放驅(qū)動(dòng)揚(yáng)聲器進(jìn)行語音播放和告警。該智能報(bào)警器為本公司自主研發(fā)產(chǎn)品并已量產(chǎn)。

1? 系統(tǒng)硬件架構(gòu)

該智能報(bào)警器產(chǎn)品外觀如圖1所示,系統(tǒng)平臺(tái)選用樂鑫公司ESP32方案,ESP32是高度集成的Wi-Fi+藍(lán)牙解決方案,其集成了電源管理模塊、天線開關(guān)、濾波器、低噪聲放大器、射頻Balun、功率放大器,以及先進(jìn)的自校準(zhǔn)電路,采用CMOS工藝實(shí)現(xiàn)單芯片集成射頻和基帶,還實(shí)現(xiàn)了動(dòng)態(tài)自動(dòng)調(diào)整,可更好地適應(yīng)外部環(huán)境的變化,消除外部電路的缺陷。同時(shí),ESP32采用臺(tái)積電(TSMC)超低功耗的40 nm工藝,具有超高的射頻性能、穩(wěn)定性、通用性和可靠性,以及超低的功耗[1]。ESP32管腳布局如圖2所示。

1.1? 硬件組成原理

硬件功能單元:Wi-Fi、藍(lán)牙、存儲(chǔ)器、FM收音機(jī)、充電OTG、揚(yáng)聲器單元。主要實(shí)現(xiàn)了IPAWS報(bào)警推送功能和斷網(wǎng)斷電情況下FM收聽功能;并支持與手機(jī)APP連接,能夠響應(yīng)遠(yuǎn)程客戶端控制命令[2]。硬件組成原理如圖3所示。

圖1? 智能報(bào)警器外觀圖

圖2? ESP32管腳布局圖

圖3? 硬件組成原理

Wi-Fi支持802.11b/g/n協(xié)議,速度150 Mbit/s。藍(lán)牙支持V4.2協(xié)議棧,含有藍(lán)牙(BR/EDR)和低功耗(BLE)藍(lán)牙[3,4]。

1.2? FM收音模塊

RDA5802是一種具有全集成合成器、中頻選擇性和MPX譯碼器的單片調(diào)頻立體聲收音機(jī)調(diào)諧器,其特點(diǎn)如下:

1)靈敏度高、噪聲小、抗干擾能力強(qiáng)、外接元件極少、體積小(最大11 mm×11.2 mm)。

2)76~108 MHz全球FM頻段兼容(包括日本76~91 MHz和歐美87.5~108.5 MHz)。

3)I2C串行數(shù)據(jù)總線接口通信,支持外部基準(zhǔn)時(shí)鐘輸入方式。

4)完全整合的COMS工藝單晶片集成電路,功耗極小。

5)內(nèi)置高精度A/D(模數(shù)轉(zhuǎn)換器)及數(shù)字頻率合成器。

6)內(nèi)置LDO調(diào)整、低功耗、超寬電壓使用范圍(2.7~3.6VDC)。

7)內(nèi)置噪聲消除、軟靜音、低音增強(qiáng)電路設(shè)計(jì)。

FM硬件原理如圖4所示。

1.3? 充電與OTG電路

BQ25601是TI公司高度集成的3 A開關(guān)模式鋰電池充電管理單元和系統(tǒng)主供電源路徑管理器件。該器件可針對各種智能手機(jī)、平板電腦和便攜式設(shè)備實(shí)現(xiàn)快速充電,并提供高輸入電壓支持。其低阻抗電源路徑對開關(guān)模式運(yùn)行效率進(jìn)行了優(yōu)化、縮短了電池充電時(shí)間并延長了放電階段的電池使用壽命。其輸入電壓和電流調(diào)節(jié)可以為電池提供最大的充電功率。該解決方案在系統(tǒng)和電池之間高度集成輸入反向阻斷場FET、高側(cè)開關(guān)FET、低側(cè)開關(guān)FET以及電池FET。它還集成了自舉二極管以進(jìn)行高側(cè)柵極驅(qū)動(dòng),具有充電和反向充電功能[5]。充電OTG硬件原理如圖5所示。

圖5? 充電OTG硬件原理圖

2? 軟件系統(tǒng)架構(gòu)

2.1? AWS-IoT控制設(shè)備原理

AWS-IoT可以理解為一個(gè)物聯(lián)網(wǎng)平臺(tái),任何硬件都可以加入這個(gè)平臺(tái)并控制相應(yīng)的設(shè)備。目前ESP32平臺(tái)內(nèi)部有支持接入AWS-IoT的SDK。主要由3個(gè)模塊組成,硬件、硬件平臺(tái)的AWS-IoT SDK、AWS云服務(wù)。AWS-IoT SDK與AWS云服務(wù)的通信協(xié)議是MQTT,硬件代表一個(gè)設(shè)備,需要先把這個(gè)設(shè)備注冊到AWS平臺(tái),每一個(gè)注冊的設(shè)備會(huì)生成一個(gè)Shadow,AWS-IoT通過這個(gè)Shadow來改變這個(gè)設(shè)備的狀態(tài)[6]。AWS-IoT控制設(shè)備原理圖如圖6所示[7]。

圖6? AWS-IoT控制設(shè)備原理

2.2? MQTT簡介

MQTT(消息隊(duì)列遙測傳輸協(xié)議)是基于發(fā)布/訂閱模式的“輕量級(jí)”通信協(xié)議,構(gòu)建在TCP/IP協(xié)議之上,并由IBM在1999年成功發(fā)布。MQTT優(yōu)勢在于可以使用較小的代碼和較有限的需求帶寬,使用該協(xié)議可以為遠(yuǎn)程設(shè)備提供可靠的實(shí)時(shí)消息服務(wù),其在小型設(shè)備、物聯(lián)網(wǎng)、移動(dòng)通信等方面具有廣泛的應(yīng)用。它含有以下主要特性:

1)使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布。

2)對負(fù)載內(nèi)容屏蔽的消息傳輸。

3)使用TCP/IP提供網(wǎng)絡(luò)連接。

4)MQTT協(xié)議分為:發(fā)布者、代理(服務(wù)器)、訂閱者。客戶端是消息的發(fā)布者和訂閱者,服務(wù)器是消息代理,消息發(fā)布者同時(shí)可以是訂閱者[8]。

5)MQTT傳輸消息:主題和負(fù)載兩類。主題是指消息的類型,訂閱者訂閱后就會(huì)收到該主題的消息內(nèi)容。負(fù)載是指消息的內(nèi)容,訂閱者要使用的具體內(nèi)容[9]。

MQTT流程如圖7所示。

3? 程序介紹

3.1? 主函數(shù)

voidapp_main()

{

/*輸出log 相關(guān)配置我們不需要關(guān)心*/

ESP_LOGI(TAG, "[APP] Startup..");

/*獲取空閑內(nèi)存大小*/

ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());

/*打印當(dāng)前idf的版本*/

ESP_LOGI(TAG, "[APP] IDF version: %s", esp_get_idf_version());

/*配置打印信息*/

esp_log_level_set("*", ESP_LOG_INFO);

/*flash 初始化,tcp/ip通信時(shí)需要使用flash*/

nvs_flash_init();

/*wifi初始化*/

wifi_init();

/*mqtt開始運(yùn)行*/

mqtt_app_start();

}

3.2? Wi-Fi函數(shù)

static void wifi_init(void)

{

tcpip_adapter_init();//tcpip 協(xié)議棧初始化,使用網(wǎng)絡(luò)時(shí)必須調(diào)用此函數(shù)

/*創(chuàng)建一個(gè)freeRTOS的事件標(biāo)志組,用于當(dāng)wifi沒有連接時(shí)將程序停下,只有wifi連接成功了才能繼續(xù)運(yùn)行程序*/

wifi_event_group = xEventGroupCreate();

/*配置 wifi的回調(diào)函數(shù),用于連接wifi*/

/*

* ESP_ERROR_CHECK檢查函數(shù)返回值

*/

ESP_ERROR_CHECK(esp_event_loop_init

(wifi_event_handler, NULL));

/*wifi配置*/

wifi_init_config_tcfg = WIFI_INIT_CONFIG_DEFAULT();

ESP_ERROR_CHECK(esp_wifi_init(&cfg));

wifi_config_twifi_config = {

.sta = {

.ssid = CONFIG_WIFI_SSID,

.password = CONFIG_WIFI_PASSWORD,

},

};

/*設(shè)置wifi 為sta模式*/

ESP_ERROR_CHECK(esp_wifi_set_mode

(WIFI_MODE_STA));

/*開始運(yùn)行wifi*/

ESP_ERROR_CHECK(esp_wifi_start());

ESP_LOGI(TAG, "Waiting for wifi");

/*等待事件標(biāo)志,成功獲取到事件標(biāo)志位后才繼續(xù)執(zhí)行,否則一直等在這里*/

xEventGroupWaitBits(wifi_event_group, CONNECTED_BIT, false, true, portMAX_DELAY);

}

/*wifi 的中斷回調(diào)函數(shù),檢測wifi的事件標(biāo)志位*/

static esp_err_twifi_event_handler(void *ctx, system_event_t *event)

{

switch (event->event_id) {

case SYSTEM_EVENT_STA_START://開始執(zhí)行station

esp_wifi_connect();//根據(jù)wifi配置,連接wifi

break;

case SYSTEM_EVENT_STA_GOT_IP://成功獲取到ip,表示聯(lián)網(wǎng)成功

xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);//設(shè)置事件標(biāo)志位,程序繼續(xù)運(yùn)行

break;

case SYSTEM_EVENT_STA_DISCONNECTED:

//station 已經(jīng)斷開了,重新連接wifi

esp_wifi_connect();

xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);

break;

default:

break;

}

return ESP_OK;

}

3.3? MQTT函數(shù)

static void mqtt_app_start(void)

{

/*配置mqtt ,broker 地址和mqtt的事件回調(diào)函數(shù)*/

esp_mqtt_client_config_tmqtt_cfg = {

.uri = CONFIG_BROKER_URL,

.event_handle = mqtt_event_handler,

// .user_context = (void *)your_context

};

esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);//出事mqtt的相關(guān)配置

esp_mqtt_client_start(client);//開始執(zhí)行mqtt

}

static esp_err_tmqtt_event_handler(esp_mqtt_event_handle_t event)

{

esp_mqtt_client_handle_t client = event->client;

int msg_id;

// your_context_t *context = event->context;

switch (event->event_id) {

case MQTT_EVENT_CONNECTED://MQTT 已連接

/*發(fā)布主題/topic/qos1*/

msg_id = esp_mqtt_client_publish(client, "/topic/qos1", "data_3", 0, 1, 0);

ESP_LOGI(TAG, "sent publish successful, msg_id=%d", msg_id);

/*訂閱主題/topic/qos0 */

msg_id = esp_mqtt_client_subscribe(client, "/topic/qos0", 0);

/*取消訂閱/topic/qos1*/

msg_id = esp_mqtt_client_unsubscribe(client, "/topic/qos1");

break;

case MQTT_EVENT_DISCONNECTED://MQTT斷開連接

break;

case MQTT_EVENT_SUBSCRIBED://MQTT收到訂閱信息

msg_id = esp_mqtt_client_publish(client, "/topic/qos0", "data", 0, 0, 0); break;

case MQTT_EVENT_UNSUBSCRIBED:

break;

case MQTT_EVENT_PUBLISHED:

break;

case MQTT_EVENT_DATA://

printf("TOPIC=%.*s\r\n", event->topic_len, event->topic);//主題名稱

printf("DATA=%.*s\r\n", event->data_len, event->data);//負(fù)載信息

break;

case MQTT_EVENT_ERROR:

break;

default:

break;

}

return ESP_OK;

}

4? 智能報(bào)警器OTA升級(jí)

智能報(bào)警器支持無線升級(jí)方式,對當(dāng)前的固件文件進(jìn)行更新。連接HTTP服務(wù)器,發(fā)送請求Get升級(jí)固件,每次讀取1 KB固件數(shù)據(jù),寫入Flash:

While(flag)

{

Recv(socket_id,text,TEXT_BUFFSIZE,0);

if (recv_len<0)

task_fatal_error? //停止

else if (recv_len>0)&&(!resp_body_start)? //解析 http response

resp_body_start = read_past_http_header

else if (recv_len>0)&&(!resp_body_start)? //寫入數(shù)據(jù)到Flash

esp_ota_write(update_handle,(const void *)ota_write_data,buff_len);

else if (buff_len == 0)? //升級(jí)完畢

close(socket_id)

break

else

unknow case

}

智能報(bào)警器OTA流程如圖8所示。

圖8? OTA流程圖

4.1? Flash空間分區(qū)配置

智能報(bào)警器集成4M SPI Flash。有三種分區(qū)選擇:工廠程序(無OTA分區(qū))、工廠程序(雙OTA分區(qū))、

用戶自定義分區(qū)。智能報(bào)警器使用partitions_two_ota_coredump配置分區(qū)時(shí),4M SPI Flash的分區(qū)情況如圖9所示。

圖9? Flash空間分區(qū)

4.2? OTA升級(jí)策略

智能報(bào)警器升級(jí)策略:報(bào)警器SPI Flash內(nèi)有與升級(jí)相關(guān)的至少4個(gè)分區(qū):OTA data、Factory App、OTA_0、OTA_1。其中Factory App內(nèi)存有出廠時(shí)的默認(rèn)固件。

首次進(jìn)行OTA升級(jí)時(shí),OTA向OTA_0分區(qū)燒錄目標(biāo)固件,并在燒錄完成后,更新OTA data分區(qū)數(shù)據(jù)并重啟。系統(tǒng)重啟時(shí)獲取OTA data分區(qū)數(shù)據(jù)進(jìn)行計(jì)算,決定此后加載OTA_0分區(qū)的固件執(zhí)行(而不是默認(rèn)的Factory App分區(qū)內(nèi)的固件),從而實(shí)現(xiàn)升級(jí)[10]。

同理,若某次升級(jí)后智能報(bào)警器已經(jīng)在執(zhí)行OTA_0內(nèi)的固件,此時(shí)再升級(jí)時(shí)OTA就會(huì)向OTA_1分區(qū)寫入目標(biāo)固件。再次啟動(dòng)后,執(zhí)行OTA_1分區(qū)實(shí)現(xiàn)升級(jí)。以此類推。升級(jí)的目標(biāo)固件始終在OTA_0 OTA_1兩個(gè)分區(qū)之間交互燒錄,不會(huì)影響到出廠時(shí)的Factory App固件。

這樣做的好處是,即使新的固件文件被損壞,也可以通過重啟恢復(fù)到舊的固件文件當(dāng)中運(yùn)行。Dual Bank Flash布局如圖10所示。

5? 結(jié)? 論

IPAWS系統(tǒng)通過點(diǎn)對面的形式,達(dá)到預(yù)警信息的統(tǒng)一來源和發(fā)布手段的多元化。經(jīng)過北美客戶實(shí)際測試運(yùn)行,智能報(bào)警器可以成功接收IPAWS服務(wù),緊急情況下可以拓展人們接收信息的來源,也能提供基本的照明與告警提醒,其對我國突發(fā)事件預(yù)警與警示系統(tǒng)的建設(shè)具有重要的啟發(fā)價(jià)值。

參考文獻(xiàn):

[1] 裘炯濤,陳眾賢.物聯(lián)網(wǎng),So Easy!基于Blynk平臺(tái)的IOT項(xiàng)目實(shí)踐 [M].北京:人民郵電出版社,2019.

[2] 趙英杰.完美圖解物聯(lián)網(wǎng)IoT實(shí)操 [M].北京:電子工業(yè)出版社,2017.

[3] 夏保成.美國IPAWS系統(tǒng)及對我國預(yù)警系統(tǒng)建設(shè)的啟示 [J].電子科技大學(xué)學(xué)報(bào):社科版,2011,13(4):2-5.

[4] 姚文祥.ARM Cortex-M3與Cortex-M4權(quán)威指南:第3版 [M].吳常玉,曹孟娟,王麗紅 譯.北京:清華大學(xué)出版社,2015.

[5] 金純,李婭萍,曾偉,等.BLE低功耗藍(lán)牙技術(shù)開發(fā)指南 [M].北京:國防工業(yè)出版社,2016.

[6] 派珀,克林頓.AWS解決方案架構(gòu)師學(xué)習(xí)與備考:第3版 SAA-C02 [M].殷海英,譯.北京:清華大學(xué)出版社,2022.

[7] 海登.低功耗藍(lán)牙開發(fā)權(quán)威指南 [M].陳燦峰,劉嘉,譯,北京:機(jī)械工業(yè)出版社,2014:345.

[8] 柯思悅,劉思龍,劉佳.基于TOF距離傳感器的疫情防控距離控制器 [J].計(jì)算機(jī)科學(xué)與應(yīng)用,2022,12(1):72-82.

[9] 周汗,迪瓦恩,哈拉克米.AWS高級(jí)網(wǎng)絡(luò)官方學(xué)習(xí)指南 [M].姚力,譯.北京:清華大學(xué)出版社,2020.

[10] 瓦厄.物聯(lián)網(wǎng)實(shí)戰(zhàn)指南 [M].黃峰達(dá),王小兵,譯.北京:機(jī)械工業(yè)出版社,2016:175.

作者簡介:宋海濤(1982—),男,漢族,遼寧鐵嶺人,工程師,本科,主要研究方向:產(chǎn)品開發(fā)設(shè)計(jì)。

猜你喜歡
智能設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
智能制造 反思與期望
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
主站蜘蛛池模板: 国产精品亚洲va在线观看| 国产精品爽爽va在线无码观看 | 成人在线观看一区| 国产毛片不卡| 毛片免费视频| 亚洲人成网18禁| a色毛片免费视频| 五月婷婷欧美| 亚洲人免费视频| 精品国产成人a在线观看| 国产菊爆视频在线观看| 成人在线不卡视频| 蜜桃视频一区| 天堂网国产| 99在线视频精品| 国产成在线观看免费视频| 亚洲欧美日韩成人在线| 亚洲色图欧美在线| 亚洲一区波多野结衣二区三区| 国产区精品高清在线观看| 精品福利视频网| 色天堂无毒不卡| 亚洲精品无码不卡在线播放| 国产中文一区二区苍井空| 激情无码字幕综合| AV熟女乱| 九色在线视频导航91| 手机成人午夜在线视频| 欧美日韩成人| 天天躁夜夜躁狠狠躁躁88| 欧美 国产 人人视频| 全部免费毛片免费播放| 欧美精品亚洲精品日韩专| 精品少妇三级亚洲| 欧美激情视频在线观看一区| 色噜噜狠狠色综合网图区| 人人爽人人爽人人片| 四虎精品国产AV二区| 制服丝袜亚洲| 呦女精品网站| 国产在线97| 人人看人人鲁狠狠高清| www.亚洲一区二区三区| 青青草国产精品久久久久| 中文字幕第4页| 91免费观看视频| 欧美亚洲激情| 99re视频在线| swag国产精品| 欧美精品不卡| 永久免费AⅤ无码网站在线观看| 国产黄色爱视频| 午夜限制老子影院888| 国产成人久视频免费| 免费在线色| 尤物特级无码毛片免费| 高潮毛片无遮挡高清视频播放| 自拍亚洲欧美精品| 找国产毛片看| 亚洲欧洲天堂色AV| 亚洲性一区| 九色在线观看视频| 视频国产精品丝袜第一页| 国产精品漂亮美女在线观看| 亚洲欧美日韩动漫| 小蝌蚪亚洲精品国产| 欧美激情视频二区| 亚洲精品免费网站| 亚洲国产精品一区二区高清无码久久| 午夜国产在线观看| 亚洲天堂视频网| 在线国产综合一区二区三区| 国模极品一区二区三区| 亚洲日韩精品欧美中文字幕| 成人免费黄色小视频| 国产精品大白天新婚身材| 99在线国产| 亚洲欧美国产视频| 久久窝窝国产精品午夜看片| 日本在线亚洲| 国产乱人视频免费观看| www.99精品视频在线播放|