0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智能硬件DIY 基于STM32F103C8T6的占座神器

智能物联研习社 来源:涂鸦智能 作者:涂鸦智能 2021-09-16 14:54 次阅读

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

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

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

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

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

物料清单

硬件 (2)软件 (1

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

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

    数量:1

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

  • STM32duino 开发板

    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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2522

    文章

    47985

    浏览量

    739709
  • 单片机
    +关注

    关注

    5998

    文章

    43948

    浏览量

    620564
  • mcu
    mcu
    +关注

    关注

    145

    文章

    15991

    浏览量

    343342
  • 开发板
    +关注

    关注

    25

    文章

    4403

    浏览量

    93789
  • 智能硬件
    +关注

    关注

    203

    文章

    2304

    浏览量

    106497
收藏 人收藏

    评论

    相关推荐

    STM32F103C8T6STM32F103C6T6

    开发板STM32F103STM32F103C8T6学习开发板
    btsostudio
    发布于 :2022年06月16日 17:58:17

    国产MCUNS32F103C8T6简介 替代STM32F103C8T6

    型号:NS32F103C8T6特点:软硬件完全兼容STM32F103C8T6不需要改动任何地方,单价成本便宜2元,性能稳定,欢迎拿样验证。请联系蔡生***QQ1520564389
    发表于 09-14 14:38

    基于STM32F103C8t6命名规则

    STM32学习 基于STM32F103C8t6STM32F103C8t6命名规则先对自己使用的芯片命名有所了解,才能更好的宏观掌控STM32F103C8t6引脚命名
    发表于 07-23 07:12

    STM32F103C8T6硬件部分

    这是我这两天做的一个功能,有一些细节没注意,导致移植没通,现在记下来。一、硬件部分STM32F103C8T6 :2个,记为STM32(1),STM32(2)TJA1050(CAN模块)
    发表于 08-05 08:13

    STM32F103C8T6STM32F103CBT6的联系与区别

    一 序:1 STM32F103C8T6STM32F103CBT6 引脚相同,唯一的区别是前者为64kflash(0x8000000~0x800FFFF) 后者为128kflash
    发表于 08-09 06:49

    STM32F103C8T6连接阿里云物联网平台

    STM32F103C8T6连接阿里云物联网平台(1)—阿里云lot Studio控制Web开发分享一下自己使用stm32f103c8t6通过ESP_01模块连接阿里云物联网平台,实现温湿度上传和控制
    发表于 08-11 09:33

    怎样去设计基于stm32f103c8t6的浊度计

    基于stm32f103c8t6浊度计前言本次设计的基于stm32f103c8t6浊度计主要由硬件部分加软件部分组成硬件部分主要是IR333光源发射部分+红外接收管光源接受部分+放大电路
    发表于 08-20 08:24

    深圳高价回收STM32F103C8T6 收购STM32F103C8T6

    大量收购工厂库存ST电子芯片STM32F103C8T6 ,实力收购工厂库存ST芯片STM32F103C8T6 ,回收价格高!!财富热线 帝欧电子 赵先生 ***同步微信 )QQ:879821252
    发表于 08-30 16:10

    STM32F103C8T6硬件介绍

    STM32F103C8T6硬件包括哪些?
    发表于 09-24 12:08

    如何利用STM32F103c8t6实现智能垃圾桶的设计?

    如何利用STM32F103c8t6实现智能垃圾桶的设计?
    发表于 10-26 07:26

    如何实现基于stm32F103C8T6智能门禁的设计?

    如何实现基于stm32F103C8T6智能门禁的设计?
    发表于 10-26 06:27

    STM32f103c8t6的引脚有哪些

    STM32f103c8t6的引脚有哪些?STM32f103c8t6的引脚是如何定义的?
    发表于 10-26 07:27

    怎样去设计一种基于STM32F103c8t6智能垃圾桶呢

    基于STM32F103c8t6智能垃圾桶是由哪些部分组成的?怎样去设计一种基于STM32F103c8t6智能垃圾桶呢?
    发表于 11-03 06:09

    STM32F103C8T6STM32F103CBT6的区别

    一 序:1 STM32F103C8T6STM32F103CBT6 引脚相同,唯一的区别是前者为64kflash(0x8000000~0x800FFFF) 后者为128kflash
    发表于 01-26 08:19

    STM32F103C8T6板的资料分享

    描述STM32F103C8T6
    发表于 09-09 07:28