考研考證壓力大,埋頭苦干的你是不是在煩惱每日圖書館的座位問題?
捧著一大堆書籍,大汗淋漓地跑到圖書館,沒位置的時候真是晴天霹靂!
要是有個自動檢測座位的智能設(shè)備,幫助哪些同學(xué)迅速地發(fā)現(xiàn)座位的空缺,會省去很多人力以及時間~
基于 STM32F103C8T6 單片機,通過串口與涂鴉三明治 Wi-Fi MCU 通信板(WB3S) 進行數(shù)據(jù)交互,通過單片機檢測按鍵進行配網(wǎng),通過單片機檢測限位開關(guān)的電平變化來檢測座位是否有人坐下。除此之外,還能通過稱重傳感器檢測常規(guī)座位的壓力變化,將其反饋到 IoT 云端。
本教程內(nèi)容均為涂鴉開發(fā)者 @劉暢提供,經(jīng)其授權(quán)編輯發(fā)布。
物料清單
硬件 (2)軟件 (1
-
涂鴉三明治 Wi-Fi MCU 通信板(WB3S)
數(shù)量:1
適用于涂鴉 IoT 自定義方案中,照明、臺燈、燈絲燈、調(diào)光器、照明遙控器、排插、開關(guān)、家電、運動健康、傳感類產(chǎn)品原型。查看詳情
-
STM32duino 開發(fā)板
數(shù)量:1
采用瑞士意法半導(dǎo)體的 STM32F103C8T6 作為主控芯片,同時兼容 GD32C8T6 芯片,板載 RTC 時鐘電路和 Wi-Fi 狀態(tài)指示燈。同時擁有 Arduino uno 的 外形,能夠與涂鴉三明治開發(fā)板進行良好的拼接,降低開發(fā)難度。
步驟
-
第 1 步:硬件設(shè)計
座位拓展板
STM32duino 開發(fā)板
-
STM32duino 總圖
-
STM32duinoPCB 3D 圖與實物圖
-
STM32duino 主控板介紹
采用瑞士意法半導(dǎo)體的 STM32F103C8T6 作為主控芯片,同時兼容 GD32C8T6 芯片,板載 RTC 時鐘電路和 Wi-Fi 狀態(tài)指示燈。同時擁有 Arduino uno 的 外形,能夠與涂鴉三明治開發(fā)板進行良好的拼接,降低開發(fā)難度。
-
座位拓展板總圖
-
座位拓展板 PCB 3D 模型與實物圖
-
座位拓展板介紹
座位拓展板將 STM32duino 中的引腳引出,方便連接限位開關(guān),同時引出了兩路 作為常規(guī)座位的壓力傳感器測量。本項目的座位拓展板為 DEMO 板,仍有較多引腳 未引出,在之后升級中仍可提供更多座位檢測限位開關(guān)。
-
-
第 2 步:軟件設(shè)計和 SDK 移植
軟件開發(fā)采用 KEIL5 進行,配合涂鴉 IoT 平臺生成的 SDK 文件,大大簡化了鏈接到 IoT 云端的速度。如何在涂鴉 IoT 平臺獲取嵌入式軟件開發(fā)所需的 SDK,可以參考硬件開發(fā)。
-
串口發(fā)送服務(wù)函數(shù)
-
-
/**
*@brief串口發(fā)送數(shù)據(jù)
*@param[in]{value}串口要發(fā)送的1字節(jié)數(shù)據(jù)
*@returnNull
*/
voiduart_transmit_output(unsignedcharvalue)
{
USART_SendData(USART1,(unsignedchar)value);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
串口中斷服務(wù)函數(shù)
/**
*@brief串口1中斷函數(shù)
*@param
*@returnNull
*/
voidUSART1_IRQHandler(void)
{
u8Res;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//涂鴉智能串口中斷
{
Res=USART_ReceiveData(USART1);//讀取接收到的數(shù)據(jù)
uart_receive_input(Res);
}
-8-
-}
按鍵檢測與配網(wǎng)函數(shù) 基本按照官方文檔中的參考編寫即可
voidkey_scan(void)
{
staticcharap_ez_change=0;
if(KEY_Config_Read()==0){
delay_ms(3000);
if(KEY_Config_Read()==0){
init_flag=0;
switch(ap_ez_change){
case0:
mcu_set_wifi_mode(SMART_CONFIG);
break;
case1:
mcu_set_wifi_mode(AP_CONFIG);
break;
default:
break;
}
ap_ez_change=!ap_ez_change;
}
}
}
voidwifi_stat_led(int*cnt)
{
switch(mcu_get_wifi_work_state())
{
caseSMART_CONFIG_STATE://0x00
init_flag=0;
if(*cnt==2){
*cnt=0;
}
if(*cnt%2==0)//LED快閃
{
LED_WIFI_on();
}
else
{
LED_WIFI_off();
}
break;
caseAP_STATE://0x01
init_flag=0;
if(*cnt》=30){
*cnt=0;
}
if(*cnt==0)//LED慢閃
{
LED_WIFI_on();
}
elseif(*cnt==15)
{
LED_WIFI_off();
}
break;
caseWIFI_NOT_CONNECTED://0x02
LED_WIFI_off();//LED熄滅
break;
caseWIFI_CONNECTED://0x03
break;
caseWIFI_CONN_CLOUD://0x04
if(0==init_flag)
{
LED_WIFI_on();//LED常亮
init_flag=1;//Wi-Fi連接上后該燈可控
*cnt=0;
}
break;
default:
LED_WIFI_off();//LED熄滅
break;
}
}
座位掃描函數(shù)(檢測限位開關(guān)的狀態(tài))
//座位掃描
voidCHAIR_SCAN(void)
{
//座椅二
if(CHAIR2_Read()==1)//高電平無人坐下未觸發(fā)
{
if(chair_2==1)
{
chair_2=0;
mcu_dp_bool_update(DPID_CHAIR_2,chair_2);//BOOL型數(shù)據(jù)上報;
}
}
elseif(CHAIR2_Read()==0)//觸發(fā)有人坐下
{
if(chair_2==0)
{
chair_2=1;
mcu_dp_bool_update(DPID_CHAIR_2,chair_2);//BOOL型數(shù)據(jù)上報;
}
}
//。。.。。.。。.。。.。。.多個座位類似
}
第 3 步:效果演示限位開關(guān)效果展示
-
組裝后效果:
-
加上限位開關(guān)效果
-
當(dāng)限位開關(guān)按下時 App 界面
-
在智慧校園活動中,讓我第一次接觸到涂鴉智能的硬件設(shè)備,不僅在產(chǎn)品使用上有很大的便利性,活動支持也做的相當(dāng)不錯。
這次的校園座位檢測系統(tǒng)還可以基于涂鴉 IoT 平臺繼續(xù)豐富功能,進行產(chǎn)品迭代。
https://promotion.tuya.com/iot/Platform?_source=9767289ac96ea010968878ddb8f5441e
-
傳感器
+關(guān)注
關(guān)注
2565文章
52857瀏覽量
766038 -
單片機
+關(guān)注
關(guān)注
6067文章
44969瀏覽量
649360 -
mcu
+關(guān)注
關(guān)注
146文章
17941瀏覽量
363414 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5644瀏覽量
103908 -
智能硬件
+關(guān)注
關(guān)注
205文章
2385瀏覽量
109139
發(fā)布評論請先 登錄

STM32F103C8T6和STM32F103C6T6
STM32F103C8T6引腳圖

stm32f103c8t6封裝及最小系統(tǒng)原理圖
STM32F103C8T6核心板的資料合集免費下載

利用STM32F103C8T6最小系統(tǒng)板點亮流水燈

利用STM32F103C8T6最小系統(tǒng)板點亮流水燈

評論