基于STM32的(NB-IOT(BC26))温湿度监测系统

闲来无事,用手头STM32做个项目。

成品功能:STM32采集温度、湿度数据,显示在屏幕上,通过NB-IOT(BC26)模块连接阿里云物联网平台接受数据并实时监控。


材料

  • STM32ZET6开发板(战舰V3)
  • TFT显示屏(战舰有我用的2.7寸的)
  • NB-IOT(BC26)模块
  • DHT11温湿度模块
  • 杜邦线
  • 用keil5进行开发

开始制作。

制作过程

首先从板子测温湿度开始

DHT11温湿度模块

原子哥有DHT11例程,所以直接在此基础上进行开发

下载上之后这是效果。

阿里云物联网平台

先到阿里云物联网平台注册一个设备。

  1. 进入阿里云官网搜索物联网平台,现在可以免费注册一个。
  2. 点击设备接入服务
  3. 点击创建产品
  4. 联网方式要选择蜂窝(4G)网络
  5. 点击添加设备输入设备名称
  6. 选中该设备之后,点击查看DeviceSecret码
  7. 记录这三个码后边有用
  8. 在设备中查看要发布信息的地址(下边的属性上报)
  9. 查看信息的标识符,既传送信息的头部
  10. 阿里云物联网平台接受的是json格式,所以数据发送的格式为:
    AT+QMTPUB=0,0,0,0,"/sys/a1Xi4HdVogd/mzh001/thing/event/property/post","
    {"id":"26","version":"1.0","params": { "CurrentTemperature":{"value":32},"GeoLocation":{"E":123,"W":234} }, "method":"thing.event.property.post"}"

NB-IOT(BC26)模块

先用USB转TTL,用串口助手,用AT指令进行调整

这是用到的AT指令

硬件连接:BC26的VIN接TTL的5V,BC26的GND接TTL的地,BC26的RX接TTL的TX,BC26的TX接TTL的RX,跳线帽短接BC26的PWR和3.3V

注意地和电千万不能接错,会烧坏器件!!!
接好后插电脑上,连接串口助手(我用原子哥的XCOME)。

指令 返回 说明
AT OK 模块正常,可正常实现收发
AT+CIMI 460043331505555 查询是否有卡
AT+CSQ 1~31 信号强度
AT+CGATT? +CGATT: 1 查询网络注册情况
AT+CGPADDR=1 +CGPADDR: 1,10.68.55.555 查询是否分配IP地址
AT+QMTCFG=“aliauth”,0,“a1Xi4HdV4gd”,“mz4001”,“c538f1eb6deb2020c83579bac4444405” OK 配置 MQTT 可选参数
AT+QMTOPEN=0,“iot-as-mqtt.cn-shanghai.aliyuncs.com”,1883 +QMTOPEN: 0,0 打开 MQTT 客户端网络
AT+QMTCONN=0,“test21115” +QMTCONN: 0,0,0 连接客户端至 MQTT 服务器
AT+QMTPUB=0,0,0,0,"/sys/a1Xi4HdVogd/mzh001/thing/event/property/post","{“id”:“26”,“version”:“1.0”,“params”:{“Temperature”:{“value”:32}},“method”:“thing.event.property.post”}" +QMTPUB: 0,0,0 发布消息

接着用串口助手发送这些指令进行调试。


说明:

  1. 数据5要结合你的阿里云物联平台中的7的三个码ProductKeyDeviceNameDeviceSecret
  2. 数据6要结合阿里云地址和端口,一般设置这个就可以。
  3. 数据7是登陆请求,这个名字一般没什么要求,只要不重复即可。
  4. 数据8要注意中间那个地址就是阿里云物联网平台8中那个属性上报的topic地址。后边的params要结合json数据格式以及阿里云物联网平台9中的标识符,数据要注意阿里云物联网平台9中的数据格式。
  5. 最后返回+QMTPUB: 0,0,0表示发送成功。
  6. 到阿里云物联网平台查看数据。点击设备点击查看,点击物联网数据,可以打开实时更新。
  7. 数据出现问题,可以到日志中查看问题原因。
  8. 设备物联网模型中出现我们上传的数据就表示成功了。

这样USB转TTL单独调试就成功了。

接下来将这些放到板子中实现自动化。

板载上传数据

移植墨子号STM32F103RC的例程

  1. 首先在DHT11例程的基础上,将printf函数改为串口2,方便连接。初始化串口2。
//重定义fputc函数
int fputc(int ch, FILE *f)
{      while((USART2->SR&0X40)==0);//串口2输出,循环发送直到发送完毕USART2->DR = (u8) ch;      return ch;
}
  1. 移植BC26初始化以及连接函数。
void OPEN_BC26(void)
{char *strx;printf("AT\r\n"); delay_ms(300);strx=strstr((const char*)USART_RX_BUF,(const char*)"OK");//返回OKprintf("AT\r\n"); delay_ms(300);strx=strstr((const char*)USART_RX_BUF,(const char*)"OK");//返回OKif(strx==NULL){delay_ms(300);delay_ms(300);delay_ms(300);delay_ms(300);   }printf("AT\r\n"); delay_ms(300);strx=strstr((const char*)USART_RX_BUF,(const char*)"OK");//返回OKprintf("ATE0&W\r\n"); //关闭回显delay_ms(300); LED0=0;printf("AT+QMTDISC=0\r\n");//关闭连接 delay_ms(300);printf("AT+QMTCLOSE=0\r\n");delay_ms(300);
}

3.main()函数中初始化

 OPEN_BC26();//对BC26开机BC26_Init();//对BC26初始化MQTT_Init();//连接阿里云

板子串口返回+QMTOPEN: 0,0表示连接成功。
4. 将需要传送的值通过aliyunMQTT_PUBdata(temp,humi);函数发送到MTQQ准备函数中。
5. 接收之后通过

//访问阿里云需要提交的数据
u8 Mqttaliyun_Savedata_tm(u8 *t_payload,u8 temp,u8 humi)
{char json[]="{\"id\":\"26\",\"version\":\"1.0\",\"params\":{\"CurrentTemperature\":{\"value\":%d},\"CurrentHumidity\":{\"value\":%d}},\"method\":\"thing.event.property.post\"}";  char t_json[200];unsigned short json_len;sprintf(t_json, json, temp, humi);json_len = strlen(t_json)/sizeof(char);memcpy(t_payload, t_json, json_len);return json_len;
}

函数包装成需要提交的数据JSON格式。
6. 发送数据并查看返回值

void aliyunMQTT_PUBdata(u8 temp,u8 humi)
{u8 t_payload[200],len,t_payload_1[200],len_1;;printf("AT+QMTPUB=0,0,0,0,%s\r\n",PubTopic);//发布主题delay_ms(300);len=Mqttaliyun_Savedata_tm(t_payload,temp,humi);t_payload[len]=0;printf("%s",t_payload);while((USART2->SR&0X40)==0){}//循环发送知道发送完毕USART2->DR = (u8) 0x1A;    delay_ms(100);strx=strstr((const char*)RxBuffer,(const char*)"+QMTPUB: 0,0,0");//看下返回状态while(strx==NULL){strx=strstr((const char*)RxBuffer,(const char*)"+QMTPUB: 0,0,0");//看下返回状态}Clear_Buffer();
}
  1. 查看串口助手返回
    +QMTPUB: 0,0,0
    :0.0},"HoldingTemperature":13,"Diu":0},"method":"thing.event.property.post"}
    OK这个表示成功。
  2. 到阿里云物联网平台查看设备。打开设备实时更新,可以看到数据更新正常。

最后附上完整的项目文件。自行下载。
https://download.csdn.net/download/weixin_42320020/19103652

这个项目到这里就算完了。
还有很多不足的地方,希望大佬可以指正。也希望和爱好者交流学习。


大家有想法可以私信或者留言,博主有时间会帮大家做一些项目。

禁止转载!!!
QQ:2039723308
VX:Shiboven

基于STM32的(NB-IOT(BC26))温湿度监测系统相关推荐

  1. 粉尘监测(基于STM32和Android的PM2.5监测系统)

    基于STM32和Android的PM2.5监测系统 粉尘监测系统 功能:STM32单片机实时通过ADC采集粉尘传感器数据,并通过蓝牙发送至手机端显示粉尘浓度数值.当粉尘浓度大于设定的阈值时候,单片机通 ...

  2. 基于LabVIEW和Access数据库的温湿度监测系统上位机程序设计

    1.设计要求 (1) 使用串口调试助手(提供软件:串口调试助手V2.2.exe)模拟下位机,模拟的下位机每隔5s从串口发送数据包,数据包格式为"SDDTDDHF".其中,第1位&q ...

  3. 基于MQTT应用层协议的物联网家庭温湿度监测系统

    引言 出生于互联网时代的我们,见证了智能手机和个人电脑通过计算机网络互相进行连接,把每个人紧密地连接在一起,形成了一个地球村.而今,我们即将迈入5G时代,在通信技术不断发展的今天,连接到互联网的将不仅 ...

  4. 基于STM32单片机和Labview的温湿度波形实时显示串口助手(一)----手把手教学

    基于STM32单片机和Labview的温湿度波形实时显示串口助手(一)----手把手教学 最近导师有个关于USRP的上位机系统需要找人做下,索性就把任务下发给我了.因为其它课题组有labview的正版 ...

  5. 基于物联网的远程温湿度监测系统 --- ESP8266 + 机智云

    基于物联网的远程温湿度监测系统 一.ESP-8266 烧录固件 二.机智云创建产品 三.手机端安装机智云 APP 四.编写 DHT11 驱动 五.机智云工程代码移植 六.采集数据的上发 七.控制数据的 ...

  6. 基于NB-IoT技术的环境温湿度监测系统的研制

    摘要 针对传统环境监测系统功耗高.维护成本高.不能实时监测的弊端,研制了一种以单片机为主控制芯片的基于 NB-IoT 技术的环境温湿度监测系统,并对主控制器的工作流程及通信模块的工作方式进行优化,降低 ...

  7. 基于arduino的温湿度监测系统的设计与实现

    以arduino开发板为控制器平台,采用dth11传感器采集温湿度数据,液晶显示屏显示温湿度数据,并对超出规定范围的数据用蜂鸣器报警提示,并实现与手机的基本交互. 一.需求分析 a.  温湿度的实时检 ...

  8. STM32+华为云IOT制作酒驾监控系统:上车就监控

    本文分享自华为云社区<基于STM32+华为云IOT设计的酒驾监控系统[玩转华为云]>,作者:  DS小龙哥. 1. 前言 随着人们生活水平的提高,为了减少和杜绝车的现象越来越多,所引发的交 ...

  9. java采集温湿度水浸_配电室水浸及温湿度监测系统可加强环境保障

    配电室水浸及温湿度监测系统有两大监测对象,一是管道.门窗等位置的漏水现象,二是室内各个位置的温度.湿度变化值,实现这两方面监测,能有效加强环境保障,降低漏水.高温.潮湿而引起的电力系统故障.设备损坏问 ...

  10. 温湿度服务器系统软件,无线温湿度监测系统

    系统介绍 无线温湿度监测系统有无线温湿度采集器(监测终端).无线温湿度接收管理主机(接收器)和本地软件.云服务器软件.手机APP组成,系统利用各类传输技术(433M.WIFI.TCP/IP.GPRS) ...

最新文章

  1. Spring单例的线程安全性
  2. cassandra的命令
  3. 最优资产组合步骤_重新设计投资组合网站之前,请按照以下5个步骤进行操作
  4. 【翻译】.NET 5 Preview5发布
  5. ps一点等于多少厘米_企业展厅设计关于展台你了解多少?
  6. JavaScript里面的居民们1-数据
  7. Android Jenkins自动化构建之路
  8. hadoop家族简介
  9. 建立efi分区_电脑维修不求人之几条命令无损增加分区的方法
  10. 高通誓要“逼杀”苹果!
  11. 再谈js对象数据结构底层实现原理-object array map set
  12. C++ 代码调试建议
  13. 树莓派2 利用网卡进行无线网破解
  14. 2 分钟玩转 Apizza,轻量级 API 工具
  15. 市场的各大TWS蓝牙耳机芯片方案汇总
  16. MATLAB读二进制数据文件
  17. [渝粤教育] 中国人民警察大学 工业企业防火 参考 资料
  18. 认证中心公钥(CA)与IC卡参数
  19. 关于 fir.im 你可能不知道的实用小工具
  20. 在自建机房给网站做ICP备案

热门文章

  1. 前端基础:通过HTML技术布局《李白诗词赏析》
  2. 红外测试操作步骤_红外分光测油仪操作步骤及注意事项
  3. 使用 JMeter 进行API接口压力测试
  4. utils工具 常见函数
  5. UDS诊断基础知识简介-ISO14229
  6. 编写C语言程序的7个步骤和编程机制
  7. Solaris操作系统介绍
  8. 顺序表实验——顺序表的基本操作
  9. 思科网技术学院教程(第三、四学期第二版)学习笔记与要点归纳
  10. Qt实现多语言切换 - Qt语言家