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

具有遠程控制功能的智能報警器

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

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

中圖分類號:TP277? 文獻標識碼:A? 文章編號: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ù)警和警示。智能報警器能夠接收IPAWS警報服務(wù)信息,這些信息聚合了NOAA(美國國家海洋和大氣管理局)、CAL Fire(加州森林防火廳)等各種來源的警報。報警器集成了一個由外部服務(wù)觸發(fā)的早期預(yù)警系統(tǒng)(燈光、警報器),內(nèi)置10 000 mAh容量電池,在斷電或緊急情況下提供應(yīng)急燈或者區(qū)域照明,Smart K類音頻功放驅(qū)動揚聲器進行語音播放和告警。該智能報警器為本公司自主研發(fā)產(chǎn)品并已量產(chǎn)。

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

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

1.1? 硬件組成原理

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

圖1? 智能報警器外觀圖

圖2? ESP32管腳布局圖

圖3? 硬件組成原理

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

1.2? FM收音模塊

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

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

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

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

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

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

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

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

FM硬件原理如圖4所示。

1.3? 充電與OTG電路

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

圖5? 充電OTG硬件原理圖

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

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

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

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

2.2? MQTT簡介

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

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

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

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

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

5)MQTT傳輸消息:主題和負載兩類。主題是指消息的類型,訂閱者訂閱后就會收到該主題的消息內(nèi)容。負載是指消息的內(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());

/*打印當前idf的版本*/

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

/*配置打印信息*/

esp_log_level_set("*", ESP_LOG_INFO);

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

nvs_flash_init();

/*wifi初始化*/

wifi_init();

/*mqtt開始運行*/

mqtt_app_start();

}

3.2? Wi-Fi函數(shù)

static void wifi_init(void)

{

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

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

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));

/*開始運行wifi*/

ESP_ERROR_CHECK(esp_wifi_start());

ESP_LOGI(TAG, "Waiting for wifi");

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

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

}

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

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è)置事件標志位,程序繼續(xù)運行

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);//負載信息

break;

case MQTT_EVENT_ERROR:

break;

default:

break;

}

return ESP_OK;

}

4? 智能報警器OTA升級

智能報警器支持無線升級方式,對當前的固件文件進行更新。連接HTTP服務(wù)器,發(fā)送請求Get升級固件,每次讀取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)? //升級完畢

close(socket_id)

break

else

unknow case

}

智能報警器OTA流程如圖8所示。

圖8? OTA流程圖

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

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

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

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

4.2? OTA升級策略

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

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

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

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

5? 結(jié)? 論

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

參考文獻:

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

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

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

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

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

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

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

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

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

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

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

猜你喜歡
智能設(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è)備運行維護探討
主站蜘蛛池模板: 久久久91人妻无码精品蜜桃HD| 中文字幕亚洲综久久2021| 永久成人无码激情视频免费| 亚洲av中文无码乱人伦在线r| 自拍欧美亚洲| 国产成a人片在线播放| 最新日本中文字幕| 五月婷婷伊人网| 日韩欧美国产精品| 亚洲成在人线av品善网好看| 无码中文字幕加勒比高清| 99热最新网址| 国产爽爽视频| 亚洲欧美h| 日本AⅤ精品一区二区三区日| 99视频在线看| 久久精品国产精品青草app| 无码精油按摩潮喷在线播放 | 免费国产黄线在线观看| 人妻中文字幕无码久久一区| 操国产美女| 日韩精品高清自在线| 国产欧美日韩资源在线观看| 久久福利网| 亚洲免费播放| 蜜芽一区二区国产精品| 曰韩人妻一区二区三区| 女人毛片a级大学毛片免费| 国产一级毛片高清完整视频版| 日韩av手机在线| 亚洲男人的天堂网| 中字无码精油按摩中出视频| 中文字幕亚洲乱码熟女1区2区| 超碰精品无码一区二区| 在线国产你懂的| 在线va视频| 亚洲国产日韩在线观看| 一本一道波多野结衣av黑人在线| 午夜高清国产拍精品| 免费网站成人亚洲| 国产老女人精品免费视频| 日本在线国产| 亚洲国产精品不卡在线| 久久中文字幕av不卡一区二区| 国产日韩精品欧美一区喷| 国产永久在线视频| 老汉色老汉首页a亚洲| 亚洲色图欧美激情| 又黄又湿又爽的视频| 精品偷拍一区二区| 九九这里只有精品视频| 亚洲国产日韩一区| 国产一级妓女av网站| 免费看久久精品99| V一区无码内射国产| 亚洲成A人V欧美综合天堂| 亚洲男女在线| 国产色婷婷| 日本成人在线不卡视频| 青青青视频免费一区二区| 亚洲一区二区三区中文字幕5566| 日韩中文欧美| 国产在线精品99一区不卡| 亚洲天堂啪啪| 亚洲国产日韩欧美在线| 国产黑丝视频在线观看| 秋霞一区二区三区| 亚洲日韩精品欧美中文字幕| 欧美日韩动态图| 午夜视频免费一区二区在线看| 中文字幕在线免费看| 久久精品丝袜| 国产在线观看成人91| 国产精品理论片| 日本在线亚洲| 色屁屁一区二区三区视频国产| 国产一区二区三区免费观看| 91 九色视频丝袜| 亚洲AV色香蕉一区二区| 亚洲一区毛片| 欧美日一级片| 天天激情综合|