0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于STM32F103C8T6单片机+GD32C8T6芯片的占座神器设计方案

基于STM32F103C8T6单片机+GD32C8T6芯片的占座神器设计方案

来源: elecfans
2021-10-21
类别:工业控制
eye 54
文章创建人 拍明

原标题:基于STM32F103C8T6的占座神器设计方案

  考研考证压力大,埋头苦干的你是不是在烦恼每日图书馆的座位问题?

  捧着一大堆书籍,大汗淋漓地跑到图书馆,没位置的时候真是晴天霹雳!

  要是有个自动检测座位的智能设备,帮助哪些同学迅速地发现座位的空缺,会省去很多人力以及时间~

  基于 STM32F103C8T6 单片机,通过串口与涂鸦三明治 Wi-Fi MCU 通信板(WB3S) 进行数据交互,通过单片机检测按键进行配网,通过单片机检测限位开关的电平变化来检测座位是否有人坐下。除此之外,还能通过称重传感器检测常规座位的压力变化,将其反馈到 IoT 云端。

  本教程内容均为涂鸦开发者 @刘畅提供,经其授权编辑发布。

  物料清单

  硬件 (2)软件 (1

  1.jpg

  涂鸦三明治 Wi-Fi MCU 通信板(WB3S)

  数量:1适用于涂鸦 IoT 自定义方案中,照明、台灯、灯丝灯、调光器、照明遥控器、排插、开关、家电、运动健康、传感类产品原型。查看详情

  

image.png


  STM32duino 开发板

  数量:1采用瑞士意法半导体的 STM32F103C8T6 作为主控芯片,同时兼容 GD32C8T6 芯片,板载 RTC 时钟电路和 Wi-Fi 状态指示灯。同时拥有 Arduino uno 的 外形,能够与涂鸦三明治开发板进行良好的拼接,降低开发难度。

  步骤

  第 1 步:硬件设计

  座位拓展板

  STM32duino 开发板

  STM32duino 总图

  

image.png


  STM32duinoPCB 3D 图与实物图

  

image.png


  

image.png


  STM32duino 主控板介绍

  采用瑞士意法半导体的 STM32F103C8T6 作为主控芯片,同时兼容 GD32C8T6 芯片,板载 RTC 时钟电路和 Wi-Fi 状态指示灯。同时拥有 Arduino uno 的 外形,能够与涂鸦三明治开发板进行良好的拼接,降低开发难度。

  座位拓展板总图

  

image.png


  座位拓展板 PCB 3D 模型与实物图

  

image.png


  

image.png


  座位拓展板介绍

  座位拓展板将 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 步:效果演示

  限位开关效果展示

  组装后效果:

  

image.png


  加上限位开关效果

  

image.png


  当限位开关按下时 App 界面

  

pIYBAGBQlFaAPtQmAAIQsDJuDmo954.png


  在智慧校园活动中,让我第一次接触到涂鸦智能的硬件设备,不仅在产品使用上有很大的便利性,活动支持也做的相当不错。

  这次的校园座位检测系统还可以基于涂鸦 IoT 平台继续丰富功能,进行产品迭代。

  https://promotion.tuya.com/iot/Platform?_source=9767289ac96ea010968878ddb8f5441e


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案