概述
今天耐下心来 将onenet 对接成功发现onenet ,改版了 我今天对接的是老版的mqtt
开始还找不到入口 ,
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019080720170344.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzIzMzE4OQ==,size_16,color_FFFFFF,tchuangjian
创建好了之后添加设备
之后添加数据流模板
之后 又创建啊一个应用
上面的数据就是实时采集到的
这些弄完 基本就结束了 ,下面要在8266,刷入wz固件,我用的是arduinoIDE,,哦后面我需要修改些地方 基于阿正的程序,,今天就简单完成了数据上报,下发的还要在研究一下,程序段怎么处理
wz固件 在阿正工作站里面有 我就不发了 ,有需要的小伙伴可以留言,我感觉超级好用,但是对于数据下发,还有点问题感觉,可能是自己太菜了,还没悟出来
而后面我用32写了程序,主要学习了sprintf的用法,总结一下
#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "relay.h"
#include "oled0561.h"
#include "stdio.h"
#include "usart.h"
#include "dht11.h"
extern void send_onenet(char*server,char*user,char*password,char*id,char*port,char*topic_msg);
int tem,temperature;
int hum,humidity;
int s;
char h[8];
char t[8];
char topicmsg[20];
int main (void){//主程序
delay_ms(1000); //上电时等待其他器件就绪
RCC_Configuration(); //系统时钟初始化
RELAY_Init();//继电器初始化
USART1_Init(9600);
I2C_Configuration();//I2C初始化
OLED0561_Init(); //OLED初始化
OLED_DISPLAY_8x16_BUFFER(0," onenet "); //显示字符串
OLED_DISPLAY_8x16_BUFFER(2," DHT11 TEST "); //显示字符串
if(DHT11_Init()==0){ //DHT11初始化 返回0成功,1失败
OLED_DISPLAY_8x16_BUFFER(4,"Humidity: % "); //显示字符串
OLED_DISPLAY_8x16_BUFFER(6,"Temperatur: C"); //显示字符串
}else{
OLED_DISPLAY_8x16_BUFFER(4,"DHT11INIT ERROR!"); //显示字符串
}
delay_ms(1000);//DHT11初始化后必要的延时(不得小于1秒)
while(1){
if(s%10==0) //每100ms读取一次
{
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
//OLED_DISPLAY_8x16(4,10*8,humidity);//显示湿度?
OLED_DISPLAY_8x16(4,9*8,humidity/10 +0x30);//显示湿度值
OLED_DISPLAY_8x16(4,10*8,humidity%10 +0x30);//
OLED_DISPLAY_8x16(6,11*8,temperature/10 +0x30);//显示温度值
OLED_DISPLAY_8x16(6,12*8,temperature%10 +0x30);//
delay_ms(10);
}
s++;
tem=temperature;
hum=humidity;
sprintf(h,"%d",hum);
sprintf(t,"%d",tem);
sprintf(topicmsg,"%s%s%s%s%s","{\"wendu\":\"",t,"\",\"shidu\":\"",h,"\"}");
// {"wz":"zhoudonghui","id":"539412883","port":"6002","server":"mqtt.heclouds.com","user":"266757","password":"ynC3pLKrijXgWEJZ9OPAfKhy8ag=","topic&msg":"{"wendu":"10","shidu":"60"}"}
if(s%500==0) //每100ms读取一次
{
send_onenet("mqtt.heclouds.com","266757","ynC3pLKrijXgWEJZ9OPAfKhy8ag=","539412883","6002",topicmsg);
}
}
}
void send_onenet(char*server,char*user,char*password,char*id,char*port,char*topic_msg)
{
char onenet[200];
sprintf(onenet,"%s%s%s%s%s%s%s%s%s%s%s%s%s","{"wz":"zhoudonghui","id":"",id,"","port":"",port,"","server":"",server,"","user":"",user,"","password":"",password,"","topic&msg":"",topic_msg,""}rn");
printf("%s",onenet);
}
【变量定义】
u32 a; //定义32位无符号变量a
u16 a; //定义16位无符号变量a
u8 a; //定义8位无符号变量a
vu32 a; //定义易变的32位无符号变量a
vu16 a; //定义易变的 16位无符号变量a
vu8 a; //定义易变的 8位无符号变量a
uc32 a; //定义只读的32位无符号变量a
uc16 a; //定义只读 的16位无符号变量a
uc8 a; //定义只读 的8位无符号变量a
#define ONE 1 //宏定义
delay_us(1); //延时1微秒
delay_ms(1); //延时1毫秒
delay_s(1); //延时1秒
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制
*/
sprintf所要的库文件
代码基本就是这个样子了 ,大约500ms上报一次,
在这里插入图片描述
就这些了,未完待续
最后
以上就是疯狂含羞草为你收集整理的基于wz指令 stm32 第一次与onenet对接 和sprintf应用的全部内容,希望文章能够帮你解决基于wz指令 stm32 第一次与onenet对接 和sprintf应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复