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

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

3天内不再提示

浅析基于stm32f103与涂鸦智能的智能蜜蜂养殖系统

Q4MP_gh_c472c21 来源:21IC电子网论坛 作者:用户18785275440 2021-04-13 11:47 次阅读

初中有幸与蜜蜂结缘,但是由于要读书,或者平时没在家,而蜜蜂对生成环境计较苛刻,喜欢安静,干燥,并且在黑暗的环境中,如果管理不好就会造成蜜蜂逃的逃,跑的跑,不仅没有产量反而蜜蜂都跑完了,目前就在想有没有可以远程监控蜂箱的方法。

我的方案使采用stm32f103c8t6作为主控,然后用涂鸦的三明治开发板VWXR2接入涂鸦云。

C:UsersdellDesktop涂鸦

如果是新用户先注册一个账号

C:UsersdellDesktop涂鸦涂鸦新建文件夹

注册成功后登陆,然后点击创建产品,流程我上传来,产品创建成功后,下载全部文件,但我发现我做的蜂箱智能养殖系统,系统的功能和我的不符合,这时需要进入自定功能

C:UsersdellDesktop涂鸦新建功能点

还有就是设备面板,如果不符合自己的要求,可以自定义

72d4be60-9b7a-11eb-8b86-12bb97331649.png

在开发途中,如果又不懂的,可以点击右上角的文档,进入涂鸦开发者,里面有特别详细的讲解,并且b站上也有视屏讲解,可谓是非常的仔细,非常适合初学者

73142d66-9b7a-11eb-8b86-12bb97331649.png

接下就是移植sdk

在原有的工程文件添加 sdk文件,并且把.c和.h文件加入

C:UsersdellDesktop涂鸦sdk

点击编译,并按照工程报错进行相应的更改,涂鸦在这里也是做的非常详细,只要双击错误,就会跳到错误那里,然后涂鸦在报错那里有中文提示

C:UsersdellDesktop涂鸦错误

后面的就接着操作,值得注意的是,改完过后会遇到

。.USERstm32f10x.h(522): error: #40: expected an identifier

typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;

。.USERstm32f10x.h(522): error: #40: expected an identifier

typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;

。.USERstm32f10x.h(525): error: #40: expected an identifier

typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;

。.USERstm32f10x.h(525): error: #40: expected an identifier

这时只需在WiFi.h中添加头文件 #include “stm32f1xx.h” 来解决

C:UsersdellDesktop涂鸦错误一

73395f1e-9b7a-11eb-8b86-12bb97331649.png

73452a42-9b7a-11eb-8b86-12bb97331649.png

添加完成后,只需打开自己所需的功能点

C:UsersdellDesktop涂鸦功能点

然后在主函数中调用wifi_uart_service();并且初始化wifi_protocol_init();,然后就是配网操作,这里可以用按键,首先调用重置函数,然后调用配网模式选择,根据自己的需求选择模式,下载程序,利用涂鸦小助手进行配网,小助手在下载的文件中有,配网成功后,只需把刚才调用的两个函数屏蔽就可以,这样不用按键也行,不过大家尽量使用按键,方便。

C:UsersdellDesktop涂鸦配网

接下来就是写自己所需功能的函数了,采用超声波检测蜂箱是否有巢虫,具体思想是,蜂箱的长度固定,我只需检测蜂箱底部的长度即可,只要检测的蜂箱长度小于蜂箱的实际长度,便可认为蜂箱有巢虫。当检测蜂箱有巢虫时,并用LED灯进行报警。

然后蜂箱盖检测,检测蜜蜂是否处于黑暗的环境,采用光明电阻检测,当光敏电阻的值低于2600时,并用ledC13作为警报,可认为蜂箱的环境不是黑暗密闭的。接下来就是蜂箱内的温室度,这是一个很重要的组成部分,我采用的dht11,通过mcu读取,将温湿度实时上传客户端。

C:UsersdellDesktop涂鸦全图

#include “dect.h”#include “adc.h”#include “dht11.h”#include “wifi.h”#include “led.h”#include “UltrasonicWave.h”

void Detect_Read(void){ Dht11_read(); get_voit_d(); get_voit_g(); UltrasonicWave_StartMeasure(); chaoshengbo(); }//采集光敏电阻转换为亮度值 A1引脚void get_voit_d(void){ float light; light =Get_Adc(1) ; if(light《2600) { mcu_dp_enum_update(DPID_COVER_STATE,0); //当前蜂箱盖状态枚举型数据上报; GPIOC -》BRR =GPIO_Pin_13; } else { mcu_dp_enum_update(DPID_COVER_STATE,1); //当前蜂箱盖状态枚举型数据上报; GPIOC -》BSRR =GPIO_Pin_13; } // printf (“%f

”,light);}

//采集电源电压 A0引脚void get_voit_g(void ){ float voit; voit=Get_Adc(0) /4096.0*3.3; voit=voit/3.3*100; mcu_dp_value_update(DPID_BATTERY_PERCENTAGE,voit); //当前电池电量VALUE型数据上报;// printf (“%f

”,voit);}

/**********************超声波距离计算***************************/void chaoshengbo(void){ float juli; juli=TIM_GetCounter(TIM1)*5*34/200.0; if(juli《8&&juli!=0) { mcu_dp_bool_update(DPID_CHECK,1); // 当前巢虫检测 BOOL型数据上报; GPIOB -》BRR =GPIO_Pin_4; } else { mcu_dp_bool_update(DPID_CHECK,0); // 当前巢虫检测 BOOL型数据上报; GPIOB -》BSRR =GPIO_Pin_4; } }void Dht11_read(void){ u8 temperature; u8 humidity; DHT11_Read_Data(&temperature,&humidity); mcu_dp_value_update(DPID_NOW_TEMP,temperature ); //当前温度检测VALUE型数据上报; mcu_dp_value_update(DPID_HUM,humidity); //当前湿度检测VALUE型数据上报; // printf(“temperature=%d

”,temperature);// printf(“humidity=%d

”,humidity); }

#include “sys.h”#include “usart.h”#include “usart2.h” #include “led.h”#include “delay.h”#include “wifi.h”#include “adc.h”#include “dht11.h”#include “dect.h”#include “timer.h”#include “UltrasonicWave.h”int main(void){ delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2 DHT11_Init(); uart_init(9600);//用于WiFi模块通信 uart2_init(115200);//用于串口通信 LED_Init();//用于报警模拟 Adc_Init(); Timerx_Init(5000,7199); wifi_protocol_init(); UltrasonicWave_Configuration();// mcu_reset_wifi();// delay_ms (10);// mcu_set_wifi_mode(SMART_CONFIG ); while(1) { wifi_uart_service(); Detect_Read(); } }
编辑:lyn

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

    关注

    33

    文章

    474

    浏览量

    62544
  • 涂鸦智能
    +关注

    关注

    6

    文章

    151

    浏览量

    19299

原文标题:基于stm32f103与涂鸦智能的智能蜜蜂养殖系统

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F103怎么读取12V电压?

    STM32F103通过什么办法获取12V电压?
    发表于 04-09 06:30

    请问STM32F103 USB HID可以增加端点吗?

    STM32F103 USB HID可以增加端点吗?
    发表于 04-07 06:52

    stm32f103从上电到系统稳定需要多久呢?

    stm32f103从上电到系统稳定需要多久呢,有大佬知道吗,datasheet里没找到这个,谢谢大佬们解答
    发表于 03-25 08:19

    STM32F103如何使用BOOT下载程序?

    STM32F103如何使用BOOT下载程序
    发表于 03-15 07:21

    ARM系列STM32F103芯片的解密方法

    本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。
    发表于 02-28 11:20 313次阅读

    stm32f103 flash模拟eeprom

    STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中
    的头像 发表于 01-09 11:21 573次阅读

    学习STM32F103的DAC功能

    三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。
    的头像 发表于 10-24 16:00 944次阅读
    学习<b class='flag-5'>STM32F103</b>的DAC功能

    学习STM32F103的定时器功能

    三勺最近在学习STM32F103的定时器功能,本文主要解释在配置通用、基本、高级定时器寄存器实现相应功能时遇到的一些问题。
    的头像 发表于 10-24 15:49 926次阅读
    学习<b class='flag-5'>STM32F103</b>的定时器功能

    基于STM32F103做的WIFI指纹智能门锁

    基于STM32F103做的WIFI指纹智能门锁,WIFI使用的是ESP8266+机智云连接,指纹模块是FPM10A光学指纹模块,加12864屏幕显示,还有矩阵键盘输入密码,用舵机控制门锁开关,源代码
    发表于 09-27 07:47

    stm32f103计算fft64需要多久?

    stm32f103计算fft64需要多久
    发表于 09-22 08:29

    stm32f103最高能捕获多高的频率?

    stm32f103最高能捕获多高的频率
    发表于 09-21 06:35

    stm32f103可以使用nandflash吗?

    stm32f103可以使用nandflash吗
    发表于 09-21 06:25

    ARM系列STM32F103芯片的解密方法

    破解STM32F103芯片的方法
    的头像 发表于 09-19 09:03 2106次阅读
    ARM系列<b class='flag-5'>STM32F103</b>芯片的解密方法

    ch32v103stm32f103的区别

    ch32v103stm32f103的区别  Ch32v103STM32f103是两种不同的芯片,虽然它们都是基于ARM Cortex-M3内核的32位微控制器,但它们在硬件配置、功
    的头像 发表于 08-22 15:49 1310次阅读

    用于stm32f103 A/D信号采集的处理

    用于stm32f103 A/D信号采集的处理
    发表于 08-01 18:13 3次下载