基于wz指令 stm32 第一次与onenet对接 和sprintf应用

今天耐下心来 将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,"\"}\r\n");
		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上报一次,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就这些了,未完待续在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值