找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 857|回复: 0
打印 上一主题 下一主题
收起左侧

BC26接入ONENET发温湿度代码

[复制链接]
跳转到指定楼层
楼主
ID:437641 发表于 2023-11-7 15:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"         
  5. #include "math.h"                        
  6. #include "stdio.h"
  7. #include "stm32f10x_flash.h"
  8. #include "stdlib.h"
  9. #include "string.h"
  10. #include "wdg.h"
  11. #include "timer.h"
  12. #include "stm32f10x_tim.h"
  13. #include "bc26.h"         
  14. #include "dht11.h"
  15. extern char  RxBuffer[100],RxCounter;

  16. void OPEN_BC26(void)
  17. {
  18.    char *strx;

  19.     printf("AT\r\n");
  20.     delay_ms(300);
  21.     strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
  22.     printf("AT\r\n");
  23.     delay_ms(300);
  24.     strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
  25.         IWDG_Feed();//喂狗
  26.    if(strx==NULL)
  27.         {
  28.         PWRKEY=1;//拉低
  29.         delay_ms(300);
  30.         delay_ms(300);
  31.         delay_ms(300);
  32.         delay_ms(300);        
  33.         PWRKEY=0;//拉高正常开机
  34.         IWDG_Feed();//喂狗
  35.         }
  36.     printf("AT\r\n");
  37.     delay_ms(300);
  38.     IWDG_Feed();//喂狗
  39.     strx=strstr((const char*)RxBuffer,(const char*)"OK");//返回OK
  40.     printf("ATE0&W\r\n"); //关闭回显
  41.     delay_ms(300);
  42.     LED=0;
  43.     IWDG_Feed();//喂狗
  44.     printf("AT+QMTDISC=0\r\n");//关闭连接
  45.     delay_ms(300);
  46.     printf("AT+QMTCLOSE=0\r\n");
  47.     delay_ms(300);
  48. }
  49. /***
  50. 此功能实现往阿里云发数据,用户需要更改三元素与推送主题一致。保持和自己的设备一样
  51. ***/

  52. //适用于NB版本
  53. int main(void)
  54. {        
  55.     u8 temp = 26,humi = 58;
  56.                 u8 data_len,send_jason[200];
  57.     delay_init();                     //延时函数初始化         
  58.     NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  59.     LED_Init();                                  //初始化与LED连接的硬件接口
  60.     uart_init(115200);//串口1初始化,可连接PC进行打印模块返回数据
  61.     uart2_init(115200);//对接BC26串口初始化
  62.     IWDG_Init(7,625);    //8S一次
  63. //     while(DHT11_Init())
  64. //     {}
  65. //    OPEN_BC26();//对BC26开机  
  66.     BC26_Init();//对设备初始化
  67.     MQTT_Init();
  68.    while(1)
  69.     {  
  70. //        DHT11_Read_Data(&temp,&humi);//读取温湿度数据
  71.                                 data_len=MqttOnenet_Savedata(send_jason,temp,humi);//获取JSON数据准备发往ONENET
  72.                                 printf("AT+QMTPUB=0,0,0,0,\"$dp\"\r\n");//发布消息
  73.                                 delay_ms(300);
  74.                           Uart2_SendDATA(send_jason,data_len);//发jason数据到ONENET
  75.                                 while((USART2->SR&0X40)==0){}//
  76.                                 USART2->DR = (u8) 0x1A;
  77.         delay_ms(500);
  78.                                 Clear_Buffer();        
  79.                                 LED=!LED;
  80.         IWDG_Feed();//喂狗
  81.     }         
  82. }
复制代码

原理图: 无
仿真: 无
代码:: 06_BC26接入ONENET发温湿度代码.7z (198.12 KB, 下载次数: 11)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表