STM32F103RC使用esp-01s MQTT协议接入OneNET平台(AT指令)


  使用esp-01s接入OneNET平台,还可以通过OneNet平台的设备云手机App控制,通过手机APP可以控制板载的LED打开或者关闭,这仅仅是一个简单的测试,还可以在这个基础之上经行其它 拓展。这个是一个代码移植的过程,也是参考别人的代码移植的,自己记录一下移植的过程。说明一下,在OneNET的论坛可以下载到参考的代码,链接: https://open.iot.10086.cn/bbs/thread-863-1-1.html,需要的可以自己下载。

1、注册、创建产品

登陆OneNET平台,注册账号,注册地址:https://open.iot.10086.cn/,之后进入开发者中心。选择如下图 所示的选项。
在这里插入图片描述

1.1、添加产品

如图所示
在这里插入图片描述
比如产品类别啥的,都可以随便选的。
在这里插入图片描述
但是联网方式,一定要选择WiFi。
在这里插入图片描述
查看产品,在设备列表里面添加设备。
在这里插入图片描述

1.2、添加设备

在这里插入图片描述
点击查看设备详情,可以看到如下所示的,设备信息。
在这里插入图片描述

2、代码移植部分

  我自己使用的是正点原子的Mini开发板,所有使用的是正点的工程文件,但是并不影响移植到其它的板子上面。

2.1 、工程文件结构

创建一个文件夹,存放OneNET的代码
在这里插入图片描述
在这里插入图片描述
各个文件夹分别包含以下文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、代码及其结构

在这里插入图片描述

2.3、移植注意

  使用的是AT指令连接的TCP,AT指令代码部分,更加详细的AT指令的使用可以在乐鑫官网上面找到,或者网上也有好多。
在这里插入图片描述
第一处需要修改的地方

在这里插入图片描述
第二处需要修改的地方,这三个信息都可以在OneNET开发者中心,自己创建的产品上面找到。
在这里插入图片描述
第三处需要修改的地方,创建一个应用就可以在手机APP控制了。
在这里插入图片描述
主函数代码:对于自己不需要的LCD屏幕显示代码,可以直接去掉就行。

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include <string.h>
#include "onenet.h"   //网络协议层
#include "esp8266.h"  //网络设备

void Net_Init()
{
    
    
	ESP8266_Init();					//初始化ESP8266
	
	while(OneNet_DevLink())			//接入OneNET
		delay_ms(500);
	  LED0 = 0;						//入网成功
}


 int main(void)
 {
    
     
	unsigned char *dataPtr = NULL;
	unsigned short timeCount = 300;	//发送间隔变量
	u8 value;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();	    	 //延时函数初始化	  
	uart_init(115200);	 	//串口1初始化为115200
	Usart2_Init(115200); 	//串口2,驱动ESP8266用
	LED_Init();		  		//初始化与LED连接的硬件接口
 	LCD_Init();
	POINT_COLOR=RED;//设置字体为红色 
	LCD_ShowString(30,70,200,16,16,"NET Content...");
  Net_Init();						//网络初始化	 
	
  	while(1) 
	{
    
    		 
		delay_ms(10);
		timeCount ++;
		
		if(timeCount >= 300)	//发送间隔
		{
    
    	
			OneNet_SendData();	//发送数据
			
			timeCount = 0;
			ESP8266_Clear();
		}
		
		dataPtr = ESP8266_GetIPD(0);
		if(dataPtr != NULL)
		{
    
    
			OneNet_RevPro(dataPtr);
		}
		POINT_COLOR=RED;	  
		LCD_ShowString(30,40,200,24,24,"Mini STM32 ^_^");	
		LCD_ShowString(30,70,200,16,16,"oneNET TEST");
		LCD_ShowString(30,90,200,16,16,"QingYeMuRong");
	  LCD_ShowString(30,110,200,16,16,"NET Succeed ");
 		//LCD_ShowString(30,110,200,16,16,lcd_id);		//显示LCD ID	      					 
		LCD_ShowString(30,130,200,16,16,"2020/7/26");	 
		value = GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_2);
		if(value==1)
		{
    
    
			LCD_ShowString(30,150,200,16,16,"LED1 OFF");	 
			
		}
		else
		{
    
    
			LCD_ShowString(30,150,200,16,16,"LED1 ON ");	 
		}
		
	}
	  				  
}

3、应用管理(APP界面创建)

在这里插入图片描述
在这里插入图片描述

3.1、查看、编辑应用

在这里插入图片描述
在这里插入图片描述
设置属性,如果找不到数据流,先让设备运行一下,就能够看到数据流了。
在这里插入图片描述
"onoff"对应于代码里面的“onoff”。
在这里插入图片描述

对于旋钮,也是同样的设置方法,
在这里插入图片描述
界面如何构建,就看大家自己如何使用了。

3.2 手机APP下载

设备云下载链接:https://open.iot.10086.cn/doc/art656.html#118

在这里插入图片描述

4、我的工程文件下载

我自己上传的时候,设置的是0积分下载。
下载链接:https://download.csdn.net/download/weixin_45488643/12663417

最后希望能给个赞呗。

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/107599292