EMW3080 STC15轻松实现设备上云3(阿里云物联网平台、智能生活开放平台)

警告:本系列教程针对ILOP.A221固件开发,如使用其他ILOP固件,请自行修改配网部分、数据上报部分及解析服务器下发信息部分!


从本节开始我们就开始写程序用STC15单片机了实现设备上云啦!在此之前我们需要完成以下步骤:

1.完成EMW3080+STC15轻松实现设备上云1(阿里云物联网平台、智能生活开放平台)

2.完成EMW3080+STC15轻松实现设备上云2(阿里云物联网平台、智能生活开放平台)

3.安装Keil(此处省略安装教程)

4.下载stc-isp-15xx-v6.86R.zip(此处省略安装教程)

5.点我获取程序源码(程序源码已更新至基于V2.3.2版本固件开发)

源码比较简单,在这里就不花大篇幅来讲解了,仅简单的讲解重要的代码部分!

1. 如何上报数据?

Send_AT("AT+ILOPSENDICA=property,标识符,上报的数据\r");//上报数据(可同时上报多个数据)

2.如何判断成功上报数据?

在我们成功上报数据后,EMW3080会返回OK,由此根据这个特点我们只需要判断模组返回的数据中是否含有OK便可判断指令是否发送成功

//发送AT指令.这里会等待回复的OK,否则会重发
void Send_AT(unsigned char *Str)
{
	unsigned char Dat=0;
	unsigned char Count=0;
	unsigned char Loop_Count=0;
	unsigned char ReSend_Count=0;
	Send_Str2(Str);//先通过串口发送出去
	while(1)//等待回复
	{
		Delay1ms(50);
		Loop_Count++;
		if(Loop_Count >= 100)
		{
			ReSend_Count++;
			if(ReSend_Count < 3)
			{
				Loop_Count = 0;
				Send_Str1("\r\n重发指令: ");
				Send_Str1(Str);
				Send_Str1("\r\n");
				Send_Str2(Str);//重发一遍
			}
			else
			{
					Send_Str1("\r\n发送失败: ");
					Send_Str1(Str);
					Send_Str1("\r\n");
				return;//重发失败,退出
			}
		}
		if(Get_Byte_WIFI(&Dat))
		{
			if (Dat == 'O')
			{
				Delay1ms(20);
				Get_Byte_WIFI(&Dat);
				if(Dat == 'K')
				{
					Send_Str1("\r\n成功执行一条指令: ");
					Send_Str1(Str);
					Send_Str1("\r\n");
					return;
				}
			}
		}
	}	
}

3. 如何解析平台下发的数据

if(Compare_str(Dat,"标识符,数据") != 255) 
    {
        Send_Str1("\r\n  串口提示语句 \r\n");
    }

void Analyze_MQTT_Read(void)	//解析服务器下发的消息
{
	unsigned int Len=0;
	unsigned char Dat[256];
	
	if(Get_Mess_Count_WIFI() == 0)
		return;
	
	Len=0;
	while(Get_Byte_WIFI(&Dat[Len++]));//获取接收缓冲区数据
	Dat[Len] = 0;
	

	
	if(Compare_str(Dat,"LightSwitch,1") != 255) 
	{
		Send_Str1("\r\n  平台下发命令:打开主灯! \r\n");
	}
	
	if(Compare_str(Dat,"LightSwitch,0") != 255) 
	{
		Send_Str1("\r\n  平台下发命令:关闭主灯! \r\n");
	}
	if(Compare_str(Dat,"NightLightSwitch,1") != 255) 
	{
		Send_Str1("\r\n  平台下发命令:打开夜灯! \r\n");
	}
	
	if(Compare_str(Dat,"NightLightSwitch,0") != 255) 
	{
		Send_Str1("\r\n  平台下发命令:关闭夜灯! \r\n");
	}
	
}

-------------------------------------------------------------------

注意:

1. EMW3080配网需要用到的AT指令工程包可在此处下载

2. 若需要重新配网绑定,需要完成以下步骤:

解绑:AT+ILOPRESET\r

停止服务操作:AT+ILOPSTOP\r

重启模块:AT+REBOOT\r

重启模块后从  启动 ilop 服务AT+ILOPSTART\r开始运行即可

发布了18 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38053385/article/details/86627420