书签 分享 收藏 举报 版权申诉 / 25
上传文档赚钱

类型传感网应用开发(高级)课件75NBIoT通信应用开发(代码部分讲解).ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4046298
  • 上传时间:2022-11-06
  • 格式:PPT
  • 页数:25
  • 大小:4.39MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《传感网应用开发(高级)课件75NBIoT通信应用开发(代码部分讲解).ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    传感 应用 开发 高级 课件 75 NBIoT 通信 代码 部分 讲解
    资源描述:

    1、01全局变量、自定义函数的声明02自定义函数功能解析03主函数功能代码目录目录CONTENTS01掌握工程文件的添加02掌握变量定义及函数声明方式03掌握NB模块的基本配置步骤技能技能知识点知识点CONTENTS04掌握光照控制灯及模式切换应用开发1全局变量、自定义函数的声明全局变量、自定义函数的声明知识链接01STM32CubeMX生成工程介绍02函数声明和头文件添加STM32CubeMX生成工程介绍01 通过前次课程的学习,大家已经掌握了使用STM32CubeMX快速生成项目的方法。通过STM32CubeMX新建工程,快捷、方便,比使用keil5更加易于理解,不抽象。1、头文件的添加2、自

    2、定义变量的添加3、自定义函数的声明02(1)、打开main.c 文件(2)、头文件,变量及函数声明处1、头文件的添加2、自定义变量的添加3、自定义函数的声明02(1)、添加新增的头文件引用,内容如下:#include user_cloud.h#include user_oled.h#include user_usart1.h#include user_usart2.h#include key.h#include oled.h(2)、添加变量声明 uint8_t usart1RxBuf;/串口1接收缓存 uint8_t usart2RxBuf;/串口2接收缓存(3)、添加自定义函数声明 int

    3、fputc(int ch,FILE*f);/定向输出函数float get_illumination_value();/ADC采集并转化为光照值void control_light(uint8_t status);/控制灯亮灭功能函数void automatic_mode(int value,int*light_flag);/根据光照强度自动控制灯亮灭的功能函数void HAL_UART_RxCpltCallback(UART_HandleTypeDef*huart);/串口中断服务程序void HAL_UART_ErrorCallback(UART_HandleTypeDef*huart);

    4、/串口错误处理程序2自定义函数功能解析自定义函数功能解析任务要求任务要求 本任务要求用户编写功能函数,实现以下函数功能(1)串口的定向输出程序(2)光照强度采集及处理程序(3)灯的亮灭控制程序(4)根据光强自动控制程序(5)串口中断服务程序(6)串口中断错误处理程序功能函数01fputc02Floatget_illumination_value03control_light04automatic_mode05HAL_UART_RxCpltCallbackHAL_UART_ErrorCallback06101此处调用了UART串口写函数,函数功能将字符通过串口1发出HAL_UART_Transm

    5、it函数原型如下在main.c文件添加函数:(此处添加位置任意,前面已经声明)int fputc(int ch,FILE*f)HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,10);return ch;02Floatget_illumination_value函数:使用stm32 ADC功能,采集光照产生的模拟电压信号值,利用相关公式计算,将电压值转化为光照强度,作为返回值输出float get_illumination_value()float adcValue;float illumination_value;HAL_ADC_Start(&hadc);H

    6、AL_ADC_PollForConversion(&hadc,10);adcValue=HAL_ADC_GetValue(&hadc);adcValue=adcValue*3.3/4096.0;illumination_value=pow(10,(1.78-log10(33/adcValue-10)/0.6);/将电压值转换为光照强度 oled_display_illumination(illumination_value);HAL_ADC_Stop(&hadc);return illumination_value;通过通过IO口输出高低电平控制继口输出高低电平控制继电器开关,进而控制灯的亮灭

    7、电器开关,进而控制灯的亮灭。此处使用的。此处使用的IO引脚为引脚为PA8,oled_display_light_status为为LED屏幕显示函数,显示灯的亮灭屏幕显示函数,显示灯的亮灭状态状态03void control_light(uint8_t status)if(status=LIGHT_OPEN)HAL_GPIO_WritePin(Light_GPIO_Port,Light_Pin,GPIO_PIN_SET);oled_display_light_status(LIGHT_OPEN);else HAL_GPIO_WritePin(Light_GPIO_Port,Light_Pin,G

    8、PIO_PIN_RESET);oled_display_light_status(LIGHT_CLOSE);04automatic_mode(int value,int*light_flag)Value 采集的光照强度值采集的光照强度值light_flag 当前灯的状态标志当前灯的状态标志0为灭,为灭,1为亮为亮now_ill_value 存储的用于比较的光照强度存储的用于比较的光照强度当检测到光照强度低于当检测到光照强度低于3时且灯灭时,打开灯,时且灯灭时,打开灯,并记录下当前光照强度。当检测到灯的强度比并记录下当前光照强度。当检测到灯的强度比之前存储的强度值高于之前存储的强度值高于1以上(

    9、表示外界光照变以上(表示外界光照变强),且灯亮时,关闭灯。强),且灯亮时,关闭灯。void automatic_mode(int value,int*light_flag)static int now_ill_value;if(value3)&(*light_flag=0)control_light(LIGHT_OPEN);*light_flag=1;HAL_Delay(10);now_ill_value=(int)get_illumination_value();else if(now_ill_value+1ErrorCode);huart-ErrorCode=HAL_UART_ERROR_

    10、NONE;if(huart=&huart1)HAL_UART_Receive_IT(&huart1,&usart1RxBuf,1);/重新打开串口1接收中断 if(huart=&huart2)HAL_UART_Receive_IT(&huart2,&usart2RxBuf,1);/重新打开串口2接收中断3主函数功能代码添加主函数功能代码添加知识链接01参数介绍02初始化03主流程介绍04开发流程演示参数介绍参数介绍ill_value:经AD转换后得到的光照强度值mod_flag:=1表示自动控制模式,=0表示手动按键模式mod_flag:=1表示当前灯亮,=0表示当前灯灭0102在main主函

    11、数,硬件初始化部分添加相关外设初始化代码。主要包含1、oled屏初始化2、按键初始化 3、初始屏显信息4、开串口中断5、nb模块初始化6、nb模块链接服务器7、相关变量的定义OLED_Init();keys_init();oled_display_information();oled_display_connection_status(LINKING);oled_display_light_status(LIGHT_CLOSE);oled_show_mode(MANUAL);HAL_UART_Receive_IT(&huart1,&usart1RxBuf,1);HAL_UART_Receive

    12、_IT(&huart2,&usart2RxBuf,1);wait_nbiot_start();nbiot_config();link_server();int i,ret,ill_value,lightStatus,int link_flag=0,send_count;uint8_t mod_flag=0,c=0;03在main.c主文件中添加右侧代码03代码主要实现了,间隔1.5s(i+14)采集传感器数据(get_illumination_value(),当为自动模式时,调用automatic_mode()控制灯的亮灭,将数据上传至云平台send_data_to_cloud(),同时对云平台返回的数据进行接收和处理rcv_data_deal(),switch(ret);主函数中包含扫描按键的代码,对key2和key3进行扫描,当key2按下时,灯的亮灭切换。当key3按下时,灯的控制模式切换(手动和自动)04NB配置nbiot_config在user_cloud.c文件中添加1、nbiot_config()的nb配置代码2、get_time_from_server()函数304程序编译完成以上代码添加后,保存并编译工程,如下图所示

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:传感网应用开发(高级)课件75NBIoT通信应用开发(代码部分讲解).ppt
    链接地址:https://www.163wenku.com/p-4046298.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库