在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于 NB-IoT 通信模組的低功耗智能門磁傳感器

智能物聯研習社 ? 來源:智能物聯研習社 ? 作者:智能物聯研習社 ? 2021-01-27 16:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

智能門磁傳感器在智能安防領域扮演著重要的角色,應用的場合也越來越多。離家后不確定家中門窗是否關閉?不妨打開手機確認一下。文介紹如何使用涂鴉三明治開發板快速完成一個基于 NB-IoT 通信模組的低功耗智能門磁傳感器產品原型,實現門磁電池電量兩個基礎功能。

MCU 方案與 SoC 方案不同,傳感器和聯網模組的驅動代碼寫在 MCU 中,您可以自行開發 MCU 代碼,擁有更多的可玩性。涂鴉三明治開發板門磁傳感套件中,傳感器板干簧管根據開合狀態輸出高低電平給 MCU 控制板,MCU 通過串口 與 NB-IoT 通信板連接,使用涂鴉智能 App 配網。您可以將門磁狀態展現在手機端,并與其他智能設備聯動。本教程中:

  • MCU 型號為 STM32G071RB

  • Demo 例程以 Keil(MDK-ARM)為開發環境,使用 STM32CubeMX 配置生成初始化代碼

物料清單

硬件 (3)

  • 涂鴉三明治 NB-IoT 通信板(NM1)數量:1

配合 MCU 使用,提供聯網能力。

  • 涂鴉三明治門磁傳感器功能板數量:1

通過磁鐵靠近或遠離干簧管使干簧管通斷產生的高低電平信號來判斷當前的門窗磁狀態是開啟或關閉。

  • NUCLEO-G71RB數量:1

第 1 步:硬件連接

本次使用的涂鴉三明治開發板門磁傳感套件主要包含:

門磁傳感器功能板,板載兩路干簧管一路觸發輸出為低,一路觸發輸出為高,您可以根據實際情況選用。

NB-IoT MCU 通信板,板載涂鴉 NM1 模組,負責智能化連接。模組已燒錄通用固件,MCU 對接涂鴉串口協議,即可使用模組+App+云涂鴉一站式智能化服務。

MCU控制板,采用ST官方 NUCLEO-G071RB 開發板,負責傳感數據接收和模組通訊控制。將三明治開發板套件控制板、通訊板、功能板拼接組裝,實物效果如下圖。

  • 第 2 步:例程環境

軟件開發過程主要使用 STM32CubeMX 來配置初始化 MCU,以 Keil5 為開發環境實現 MCU 與傳感器和模組協議對接。首先調通 MCU 和模組的通訊,可以實現 App 配網,MCU 數據傳輸到 App。

第 3 步:創建工程和產品

您可以根據以下步驟,快速在涂鴉 IoT 平臺上開發一個智能門磁。

  1. 進入 涂鴉智能IoT平臺。

  2. 參考 選品類創建產品 創建一款門磁產品。其中產品屬性如下:

開發方式:自定義方案

聯網方式:NB-IoT

功耗類型:PSM

84508060ce274f70b7443ffcba9def5a~tplv-tt-shrink:640:0.image

3、根據頁面提示選擇產品的標準功能和自定義功能。功能選擇門磁電池電量,本DEMO例程只支持這兩個基本功能,如需其它功能需要自行實現。

3b0b27c9c18942059d490b8adf7fef2e~tplv-tt-shrink:640:0.image

4、選擇您喜歡的面板,第一次開始調試也可以選擇為開發調試面板,便于調試,后面也可以更換面板。

5、面板選擇完后,進入硬件開發階段,在頁面拉到最下面,下載開發資料。

cbe862897b6e4354b0d54b1d801c9e8a~tplv-tt-shrink:640:0.image

6、硬件測試。

下載到 MCU 開發包后,使用開發包中的涂鴉模組調試助手,您可以使用助手模擬 MCU 模式,配合調試模組通訊板,驗證模組是否通訊正常,同時也可以熟悉涂鴉串口協議提高對接效率。確定通信板正常可用的,可以跳過此步驟。若調試過程中對協議收發有疑問,也可以使用此助手協助查看正確數據交互格式。 使用步驟可參考 涂鴉模組調試助手使用說明。

第 4 步:移植 MCU SDK

在使用 STM32CubeMX 生產初始化工程代碼后,即可開始移植 MCU_SDK。本章節簡單介紹了移植過程和功能實現,將mcu_sdk中的文件加入工程后,編譯根據報錯提示,進行修改。如需查看詳細的移植調試教程,請參考 MCU SDK 移植。

  1. uart_transmit_output()函數按照#error中的提示信息處理,處理后注釋掉。

3f7cc3efc97d477db45ddac562f14c8e~tplv-tt-shrink:640:0.image

2、完善uart_receive_input()函數按照#error中的提示信息處理,處理后注釋掉。

ad6451379b5c47b3bc1fb767731372ff~tplv-tt-shrink:640:0.image

3、將nbiot_uart_service()函數按照#error中的提示信息處理,處理后注釋掉。

35bebbeb056847fda67ce1b3e1e3cb89~tplv-tt-shrink:640:0.image

4、nbiot_protocol_init()函數按照#error中的提示信息處理,處理后注釋掉。

接下來便是all_data_update()函數,該函數會自動上報系統中所有 DP 信息,您不要調用該函數。

第 5 步:編寫嵌入式程序

  1. 新建一個user_func.h文件,在其中定 + 義一個結構體,用來記錄門磁設備的各種狀態。

//傳感器上報標志typedefenum{
	STATE_IDLE=0,
	STATE_DOOR_NEED_UP=1	}sensor_state_t;//門開關狀態typedefenum{
	STATE_CLOSE=0,
	STATE_OPEN=1	}door_state_t;typedefstruct{
door_state_tdoor_state;
	sensor_state_tsensor_state;	unsignedchardoor_up_lock;//門狀態上報鎖
	unsignedcharremaining_power;//設備剩余電量,單位百分比}device_status_t;
  1. 在新建的user_func.c文件中實現一些自定義的功能函數,同時在nbiot.h文件中添加頭文件#include "user_func.h"。

  2. main.c文件中,添加頭文件#include "nbiot.h"。MCU上電啟動后,進入while(1){}循環前,除了常規的配置IO口、串口、ADC以外還需要執行的:

nbiot_protocol_init();//使能低功耗模式時鐘__HAL_RCC_PWR_CLK_ENABLE();//初始化NB模組喚醒腳的電平HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_SET);

while(1){}循環內:

while(1)
{nbiot_uart_service();
power_detect_poll();
user_sensor_up_poll();
}
  • nbiot_uart_service()是SDK提供的串口數據處理函數,解析并處理NB-IoT模組返回的數據。

  • power_detect_poll()是電池電量檢測函數,在函數內通過ADC采樣和換算得出大概的剩余電量并保存。由您自行實現。

  • user_sensor_up_poll()是傳感器上報任務處理函數,根據NB模組的設備狀態等多種因素判讀是否做上報數據發送處理以及是否需要讓MCU進入STOP低功耗模式。由您自行實現。

voiduser_sensor_up_poll(void){	
	//	當NB模組為已綁定連接狀態且門狀態上報鎖打開的情況下。門狀態上報鎖在收到模組上報成功回碼后會打開
	if((NB_STATE_DEVICE_BINDED==mcu_get_nbiot_work_state())&&(device_status_s.door_up_lock)){		//判讀有未處理的門狀態上報任務,開始向NB模組發送上報數據。
		if(STATE_DOOR_NEED_UP==device_status_s.sensor_state){
			device_status_s.sensor_state=STATE_IDLE;
mcu_dp_bool_update(DPID_DOORCONTACT_STATE,device_status_s.door_state);
			device_status_s.door_up_lock=0;				
		}else{			
			//判斷剩余電量是否低于電量上報閾值,發送電量上報數據并降低閾值
			if(device_status_s.remaining_power<=?power_threshold)?{
				mcu_dp_value_update(DPID_BATTERY_PERCENTAGE,?device_status_s.remaining_power);				if(power_threshold?>=25){
					power_threshold-=25;	
				}
			}			//打開NB模組PSM休眠鎖
			mcu_set_nbiot_sleeplock(0);			//MCU進入低功耗模式
			enter_lowpower_mode();							
		}
	}
}

實現進入和退出低功耗模式兩個函數:

voidenter_lowpower_mode(){	
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_SET);

	lowpower_gpio_init();

	HAL_ADC_Stop(&hadc1);
	HAL_ADC_DeInit(&hadc1);

	HAL_UART_DeInit(&huart3);	//HAL_TIM_Base_DeInit(&htim3);

	//關閉時鐘
	__HAL_RCC_DMA1_CLK_DISABLE();
	__HAL_RCC_GPIOB_CLK_DISABLE();
	__HAL_RCC_GPIOC_CLK_DISABLE();
	__HAL_RCC_GPIOC_CLK_DISABLE();
	__HAL_RCC_GPIOD_CLK_DISABLE();
	__HAL_RCC_GPIOF_CLK_DISABLE();

	HAL_SuspendTick();	//進入stop模式	
	HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);
}voidleave_lowpower_mode(){
	SystemClock_Config();

	MX_GPIO_Init();	//MX_TIM3_Init();

	MX_USART3_UART_Init();
	__HAL_UART_ENABLE_IT(&huart3,UART_IT_RXNE);

	MX_ADC1_Init();
	HAL_ADC_Start(&hadc1);	//拉低引腳喚醒NB模組
	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,GPIO_PIN_RESET);	//傳感器需要上報門開關狀態
	device_status_s.sensor_state=STATE_DOOR_NEED_UP;
}

MCU的Stop低功耗模式主要由中斷來喚醒,所以需要在中斷回調函數中調用nbiot_uart_service()并記錄門的開關狀態:

voidHAL_GPIO_EXTI_Falling_Callback(uint16_tGPIO_Pin){
	leave_lowpower_mode();
	device_status_s.door_state=STATE_OPEN;
}voidHAL_GPIO_EXTI_Rising_Callback(uint16_tGPIO_Pin){
	leave_lowpower_mode();
	device_status_s.door_state=STATE_CLOSE;
}

由于NB模組從PSM模式中喚醒需要重新連接涂鴉云,喚醒時第一次門狀態上報會失敗,所以需要在模組連接成功并返回工作狀態回碼時重新發送一次上報狀態,即在system.c文件下data_handle函數的工作狀態回碼處理case中添加代碼實現:

//工作狀態	caseNBIOT_STATE_CMD:
nbiot_work_state=nbiot_uart_rx_buf[offset+DATA_START];
nbiot_uart_write_frame(NBIOT_STATE_CMD,0);	if(STATE_DOOR_NEED_UP==mcu_get_nbiot_work_state()){	
mcu_dp_bool_update(DPID_DOORCONTACT_STATE,device_status_s.door_state);
device_status_s.sensor_state=STATE_IDLE;
	}break;

system.c文件下data_handle函數的上報回碼處理case中添加代碼:

caseSTATE_UPLOAD_CMD:
	//判斷result的值,確認收到模組返回的信息后,打開門狀態上報鎖,準備下一次上報
device_status_s.door_up_lock=1;break;

第 6 步:(可選)場景聯動

產品功能調試通過后,App 端已經可以接收到門磁感器的數據。智能傳感器最大的應用場景是用來收集傳感數據來和其它產品進行聯動。如果您已經擁有了其他涂鴉生態設備或開發板,可以在 App 端實現場景聯動功能的配置。詳細步驟,請參考 場景聯動設置。

6dd7cd82e65d4e7a8b88c9db13e01d8e~tplv-tt-shrink:640:0.image

auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=795a75d7c1af33f95d8ea55409e4b22e

基于涂鴉智能 IoT 平臺,您可以使用三明治開發板、STM32CubeMX、Keil開發環境,快速搭建一款智能門磁傳感器產品原型。

審核編輯:符乾江

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

    關注

    2564

    文章

    52834

    瀏覽量

    765746
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17932

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    NB-IoT模組選型指南:2025十大NB窄帶傳輸設備品牌廠家盤點與應用方案解析

    隨著物聯網(IoT)技術的不斷發展,NB-IoT(窄帶物聯網)作為支持海量連接、低功耗、廣覆蓋的通信技術,正在推動智能設備和行業應用的全面升
    的頭像 發表于 04-21 09:55 ?472次閱讀

    關于Cat.1網絡會取代NB-IoT技術嗎?

    標準支持 :NB-IoT 是 5G 海量物聯網(mMTC)的核心技術之一,長期受運營商支持。 超低功耗需求 :對電池供電設備(如煙感、追蹤)仍是最佳選擇。 政策推動 :中國等國家強制要求
    發表于 04-03 08:46

    Nordic NRF9151低功耗蜂窩模組 助力衛星物聯網應用.

    的蜂窩物聯網解決方案,具有業界領先的電池壽命性能。 nRF9151 模組已通過全球認證,支持 LTE-M、NB-IoT 和DECT NR+調制解調以及開放式應用 MCU 內核,帶有 GNSS
    發表于 03-24 11:12

    安信可NB-IoT模組:體積小、功耗低、穩定可靠

    安信可3款NB-IoT系列模組:EC-01、EC-01G和EC-01F。搭載移芯EC616S芯片平臺,超低成本、超低功耗和超高集成度的NB-IoT SoC芯片。 01搭載EC616S、
    的頭像 發表于 03-06 08:48 ?472次閱讀
    安信可<b class='flag-5'>NB-IoT</b><b class='flag-5'>模組</b>:體積小、<b class='flag-5'>功耗</b>低、穩定可靠

    NB-IOT物聯網基站是如何通信的呢?

    、測試、應用和網絡發展。 一、NB-IOT物聯網網絡組成有哪些呢? 包括NB-IOT終端、NB-IOT基站、NB-IOT分組核心網、物聯網連接管理平臺和工業應用服務
    的頭像 發表于 01-02 15:55 ?1688次閱讀
    <b class='flag-5'>NB-IOT</b>物聯網基站是如何<b class='flag-5'>通信</b>的呢?

    芯訊通NB-IoT模組E7025 R3實現大規模部署

    作為全球知名物聯網通信模組提供商,芯訊通擁有全制式、全品類模組產品線,所打造的產品已遍布全球五大洲,為各產業合作伙伴的終端通信連接提供助力。芯訊通推出的
    的頭像 發表于 12-09 16:56 ?1015次閱讀

    電流傳感器:精準測量的利器

    在當今科技飛速發展的時代,電流傳感器在眾多領域中發揮著至關重要的作用。其中,電流傳感器以其獨特的工作原理和廣泛的市場應用,成為了眾多工程師和科研人員的首選。一、
    的頭像 發表于 11-15 09:45 ?1518次閱讀
    <b class='flag-5'>磁</b>通<b class='flag-5'>門</b>電流<b class='flag-5'>傳感器</b>:精準測量的利器

    電流傳感器的應用及與霍爾電流傳感器的對比

    在當今的電氣測量領域,電流傳感器起著至關重要的作用。其中,電流傳感器以其獨特的工作原理和廣泛的應用場景,成為了眾多工程師和科研人員關注的焦點。一、
    的頭像 發表于 11-15 09:43 ?1865次閱讀
    <b class='flag-5'>磁</b>通<b class='flag-5'>門</b>電流<b class='flag-5'>傳感器</b>的應用及與霍爾電流<b class='flag-5'>傳感器</b>的對比

    傳感器和霍爾傳感器的區別

    無論是智能家居、工業自動化,還是醫療健康、航空航天,傳感器都扮演著至關重要的角色。而在電流測量的領域,傳感器和霍爾
    的頭像 發表于 10-22 18:29 ?977次閱讀

    電流傳感器過載能力如何

    電流傳感器是一種利用效應測量電流的傳感器。它具有高精度、高穩定性、高線性度、抗干擾能
    的頭像 發表于 08-19 09:27 ?833次閱讀

    電流傳感器缺點與優點有哪些

    電流傳感器(Fluxgate Current Sensor)是一種基于原理的電流測量裝置,廣泛應用于電力系統、工業自動化、新能源
    的頭像 發表于 08-19 09:25 ?1858次閱讀

    電流傳感器工作原理是什么

    電流傳感器(Fluxgate Current Sensor,FCS)是一種基于原理的電流測量設備。它具有測量范圍廣、精度高、響應
    的頭像 發表于 08-19 09:24 ?2938次閱讀

    NB-IoT型無線水壓、水位傳感器使用說明書

    電子發燒友網站提供《NB-IoT型無線水壓、水位傳感器使用說明書.pdf》資料免費下載
    發表于 08-08 12:44 ?0次下載

    電流傳感器工作原理 電流傳感器應用

    在技術的海洋里,電流測量如同一盞明燈,照亮了工業與電力系統的深邃角落。電流傳感器,以其獨特的魅力和精準的測量能力,悄然成為這明燈中的火種。它不僅承載著電流測量的重任,更是在眾多領域中扮演著
    的頭像 發表于 07-18 09:35 ?1652次閱讀

    電流傳感器 開環與閉環的區別

    在電流測量技術不斷進步的今天,電流傳感器憑借其卓越的性能,已成為工業和科研領域中不可或缺的工具。這種傳感器通過感應電流產生的磁場變化,提供了一種間接但極為精確的電流測量方法。
    的頭像 發表于 07-03 16:44 ?2835次閱讀
    <b class='flag-5'>磁</b>通<b class='flag-5'>門</b>電流<b class='flag-5'>傳感器</b> 開環<b class='flag-5'>磁</b>通<b class='flag-5'>門</b>與閉環<b class='flag-5'>磁</b>通<b class='flag-5'>門</b>的區別
    主站蜘蛛池模板: 美女黄网站 | 香蕉蕉亚亚洲aav综合 | 你懂得福利 | 日本毛片在线观看 | 久久这里精品青草免费 | 免费看男女做好爽好硬视频 | 日韩一区二区视频 | 亚洲一区中文字幕在线 | 四虎影院永久在线 | 中文字幕不卡免费高清视频 | 久久狠狠躁免费观看 | 天天操天天透 | 中文字幕在线观看你懂的 | xvsr-365波多野结衣 | 日本一区二区三区在线 视频观看免费 | 欧美成人三级网站 | 久久99热久久精品23 | 欧美一级特黄啪啪片免费看 | 九色视频网站 | 婷婷99精品国产97久久综合 | 国产美女特级嫩嫩嫩bbb | 国产美女叼嘿视频免费看 | 天天躁狠狠躁夜夜躁2021 | 日本亚洲精品色婷婷在线影院 | 亚洲欧美成人在线 | bt天堂磁力搜索 | 2017天天操| 日本成片免费高清 | 天天干天天射天天操 | 狼人 成人 综合 亚洲 | 国模巴| 4438x成人全国最大 | 手机看片福利盒子久久 | 在线91精品亚洲网站精品成人 | 日本www色 | 性xxx中文视频 | 神马午夜影院 | 国内精品久久久久影院男同志 | www在线小视频免费 www资源 | 1000部啪啪勿入十八免费 | 又黄又爽的成人免费网站 |