STM32F40探索者开发板如何实现基础的远程检测以及控制

本次教程主要为了实现 stm32f407 探索者开发板通过中移 cat.1 4g 模组转接板 ml302-gc211 接入机智云,实现基础的远程检测以及控制。
01 教程材料准备 stm32f407 探索者开发板
中移 cat.1 4g 模组转接板 ml302-gc211
02 教程实现内容 远程控制 led ; 远程控制蜂鸣器;
远程采集 cpu 温度。
03 云端部署部分教程
►进入机智云开发者中心。 https://dev.gizwits.com/zh-cn/developer/product/
►点击右上角创建新产品。
►创建新产品。
►由于本次需要实现控制 led ,蜂鸣器和采集 stm32f407 芯片的内部温度,所以在创建产品之后,我们在数据点里面创建以下几个数据点。实际产品应用中根据自己的需求去增加对应的数据点,此处为了直观展示创立4个数据点。
►复制基本信息里面的 product secret ,在后面生成代码需要用到,在左侧导航栏选择 mcu 开发,硬件平台选择 stm32f407x,product secret 在产品基本信息里面可以复制。
►将生成的代码下载到电脑备用。
到此云端部署部分就完成了。
04 cubemx 初始化配置教程
►将前面下载的代码进行解压,打开解压后根目录下的 stm32f407x.ioc 文件。(需要安装 cubemx )
►配置开发板的 led 引脚 ds0 和 ds1 及蜂鸣器引脚。根据原理图可以分析 ds0 和 ds1 分别对应 pf9 和 pf10 ,蜂鸣器对应 pf8 。在 cubemx 里面对几个引脚进行相应的配置及初始化。初始化 led 和蜂鸣器为关闭状态,蜂鸣器引脚需要采用推挽输出。
►stm32f407 芯片内部内部温度采集,根据芯片相关的数据手册,stm32f407 内部温度采集为 adc1 的 in16 通道。 ►生成 keil 代码。
到此 cubemx 就配置结束了。
05 keil 代码修改部分教程 ►修改云端下发的指令处理,打开gizwits_product.c 文件,对其里面的 gizwitseventprocess 函数进行云端下发的可写数据点数据处理。
case event_led0: currentdatapoint.valueled0 = datapointptr-》valueled0; gizwits_log(“evt: event_led0 %d
”, currentdatapoint.valueled0); if(0x01 == currentdatapoint.valueled0) { hal_gpio_writepin(gpiof, led0_pin, gpio_pin_reset);//打开ds0 } else { hal_gpio_writepin(gpiof, led0_pin, gpio_pin_set);//关闭ds0 } break; case event_led1: currentdatapoint.valueled1 = datapointptr-》valueled1; gizwits_log(“evt: event_led1 %d
”, currentdatapoint.valueled1); if(0x01 == currentdatapoint.valueled1) { hal_gpio_writepin(gpiof, led1_pin, gpio_pin_reset);//打开ds1 } else { hal_gpio_writepin(gpiof, led1_pin, gpio_pin_set);//关闭ds1 } break; case event_beep: currentdatapoint.valuebeep = datapointptr-》valuebeep; gizwits_log(“evt: event_beep %d
”, currentdatapoint.valuebeep); if(0x01 == currentdatapoint.valuebeep) { hal_gpio_writepin(gpiof, beep_pin, gpio_pin_set);//打开蜂鸣器 } else { hal_gpio_writepin(gpiof, beep_pin, gpio_pin_reset);//关闭蜂鸣器 } break;
►新增一个时间变量作为云端上传的定时间隔,同时作为温度采集的时间。增加 main.h ,如果不增加,gpio 会报错。
►在 gizwits_product.c 的 giztimerms 函数对 timermsupdate 进行毫秒递增。 ►在 gizwits_product.c 的 userhandle 函数对 timermsupdate 变量进行判断,此处采用5秒采集上报一次。频率过高会导致云端拒绝接受数据,采用延时会导致 cpu 资源浪费。
►adc 采集转换为温度上报部分程序。
到此 keil 代码修改部分就完成了,修改完代码之后,编译烧录到单片机。
06 编译烧录
►程序下载完成之后将中移 cat.1 4g 模组转接板 ml302-gc211 通过接在开发板的 usart2 上面,即 pa2、pa3 上,ml302-gc211 最好采用独立供电,以保证电源稳定性,4g 模组需要插入移动联通 4g 卡。通讯正常过后在云端产品下面设备日志下可看到设备上限。 ►将设备日志里面的设备的 imei 和基本信息里面的 product key 进行复制,粘贴到机智云串口调试助手里面的设备二维码工具,生成设备的二维码。
►手机上安装机智云调试 app,app 下载地址如下:
►通过 app 扫描二维码即可绑定设备。


欧司朗LED车灯怎么样 智能车灯带来安心夜间行驶
台积电联华电子世界先进今年营收有望达到600亿美元
华为零跑全球电信设备市场,稳居全球第一
饱和变压器与非饱和变压器有何不同?
直流、交流电机区别 如何区分普通电机和变频电机?
STM32F40探索者开发板如何实现基础的远程检测以及控制
Semtech与Lacuna从太空接收信息
窨井超声波液位计在智慧城市建设的意义
MobPush:Android SDK 集成指南
瑞士研究员发明的一款对话机器人,协助实现跨物种交流!
逐次逼近型A/D转换器的基本原理
浅谈水产养殖智能监测系统
华为P10闪存门最新消息:华为P10闪存门到底是真是假?5大原因分析华为P10闪存门真相,太残酷
四川省政协委员吴皓提出加快培育发展人工智能产业的建议
新款iPhone的发布将带动全球5G手机高端市场占比的提升?
STM32通过命令行编译和下载keil和IAR工程的方法
5G商用一周年:5G技术很不成熟运营成本极高
凌力尔特公司推出一款新宽带、高动态范围双通道混频器 LTC5566
centos7怎么设置静态IP
为了突出小米6新品的性价比,旧小米型纷纷降价