考研考证压力大,埋头苦干的你是不是在烦恼每日图书馆的座位问题?
捧着一大堆书籍,大汗淋漓地跑到图书馆,没位置的时候真是晴天霹雳!
要是有个自动检测座位的智能设备,帮助哪些同学迅速地发现座位的空缺,会省去很多人力以及时间~
基于 STM32F103C8T6 单片机,通过串口与涂鸦三明治 Wi-Fi MCU 通信板(WB3S) 进行数据交互,通过单片机检测按键进行配网,通过单片机检测限位开关的电平变化来检测座位是否有人坐下。除此之外,还能通过称重传感器检测常规座位的压力变化,将其反馈到 IoT 云端。
本教程内容均为涂鸦开发者 @刘畅提供,经其授权编辑发布。
物料清单
硬件 (2)软件 (1
涂鸦三明治 Wi-Fi MCU 通信板(WB3S)
数量:1
适用于涂鸦 IoT 自定义方案中,照明、台灯、灯丝灯、调光器、照明遥控器、排插、开关、家电、运动健康、传感类产品原型。查看详情
STM32duino 开发板
数量:1
采用瑞士意法半导体的 STM32F103C8T6 作为主控芯片,同时兼容 GD32C8T6 芯片,板载 RTC 时钟电路和 Wi-Fi 状态指示灯。同时拥有 Arduino uno 的 外形,能够与涂鸦三明治开发板进行良好的拼接,降低开发难度。
步骤
第 1 步:硬件设计
座位拓展板
STM32duino 开发板
STM32duino 总图
STM32duinoPCB 3D 图与实物图
STM32duino 主控板介绍
采用瑞士意法半导体的 STM32F103C8T6 作为主控芯片,同时兼容 GD32C8T6 芯片,板载 RTC 时钟电路和 Wi-Fi 状态指示灯。同时拥有 Arduino uno 的 外形,能够与涂鸦三明治开发板进行良好的拼接,降低开发难度。
座位拓展板总图
座位拓展板 PCB 3D 模型与实物图
座位拓展板介绍
座位拓展板将 STM32duino 中的引脚引出,方便连接限位开关,同时引出了两路 作为常规座位的压力传感器测量。本项目的座位拓展板为 DEMO 板,仍有较多引脚 未引出,在之后升级中仍可提供更多座位检测限位开关。
第 2 步:软件设计和 SDK 移植
软件开发采用 KEIL5 进行,配合涂鸦 IoT 平台生成的 SDK 文件,大大简化了链接到 IoT 云端的速度。如何在涂鸦 IoT 平台获取嵌入式软件开发所需的 SDK,可以参考硬件开发。
串口发送服务函数
/**
*@brief串口发送数据
*@param[in]{value}串口要发送的1字节数据
*@returnNull
*/
voiduart_transmit_output(unsignedcharvalue)
{
USART_SendData(USART1,(unsignedchar)value);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
串口中断服务函数
/**
*@brief串口1中断函数
*@param
*@returnNull
*/
voidUSART1_IRQHandler(void)
{
u8Res;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//涂鸦智能串口中断
{
Res=USART_ReceiveData(USART1);//读取接收到的数据
uart_receive_input(Res);
}
-8-
-}
按键检测与配网函数 基本按照官方文档中的参考编写即可
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;
}
}
座位扫描函数(检测限位开关的状态)
//座位扫描
voidCHAIR_SCAN(void)
{
//座椅二
if(CHAIR2_Read()==1)//高电平无人坐下未触发
{
if(chair_2==1)
{
chair_2=0;
mcu_dp_bool_update(DPID_CHAIR_2,chair_2);//BOOL型数据上报;
}
}
elseif(CHAIR2_Read()==0)//触发有人坐下
{
if(chair_2==0)
{
chair_2=1;
mcu_dp_bool_update(DPID_CHAIR_2,chair_2);//BOOL型数据上报;
}
}
//。。.。。.。。.。。.。。.多个座位类似
}
第 3 步:效果演示限位开关效果展示
组装后效果:
加上限位开关效果
当限位开关按下时 App 界面
在智慧校园活动中,让我第一次接触到涂鸦智能的硬件设备,不仅在产品使用上有很大的便利性,活动支持也做的相当不错。
这次的校园座位检测系统还可以基于涂鸦 IoT 平台继续丰富功能,进行产品迭代。
上一篇:基于 STM32和机智云物联网平台的农作物需水量统计系统
下一篇:基于STM32F107VCT6微控制器的控制系统解决方案
推荐阅读最新更新时间:2024-11-11 16:16
设计资源 培训 开发板 精华推荐
- 使用 ROHM Semiconductor 的 BD4824 的参考设计
- 用于宽安全工作区电源的 LT3089ER 线性稳压器的典型应用电路
- 基于SPIRIT1 SPSGRF-868模块的868 MHz RF USB dongle
- LTC3588EMSE-1 100mA压电能量收集电源典型应用电路
- LLF6
- ADR420 超精密、低噪声、2.048V XFET 输出电压基准的典型应用
- NCV8774 超低 Iq 350 mA LDO 稳压器的典型应用
- AD8601WDRTZ-REEL放大器光电二极管电路典型应用
- STM32L073VZ MCU的评估板
- L7809A 高电容负载输入短路保护的典型应用
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位