ESP8266接入ONENET云平台,实现双机通信(EDP协议)

1、wifi的sid修改

#define ESP8266_WIFI_INFO		"AT+CWJAP=\"swiphone\",\"19991117\"\r\n"
#define ESP8266_ONENET_INFO		"AT+CIPSTART=\"TCP\",\"183.230.40.39\",876\r\n"

1、swiphone是wifi名字,19991117是wifi密码;
2、183.230.40.39876是onenet云平台的服务器地址端口号

2、初始化

Hardware_Init();				//初始化外围硬件	
ESP8266_Init() ;				//初始化ESP8266	
while(OneNet_DevLink())			//接入OneNET
delay_ms(500)  ;
UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
#define DEVID	"646257880" //本设备id
#define APIKEY	"XkDjlBlqyaSpMlg23RkmMDrfSXA="//api-key

本设备id和apikey都可以在onenet平台上找到。


```c
void Hardware_Init(void)
{	
	Usart1_Init(115200);//串口1,打印信息用
	Usart2_Init(115200);//串口2,驱动ESP8266用		
	UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
}

3、发送数据至设备B

EDP-PushData是在两个硬件设备(单片机)之间通过onenet平台通信的一种功能,A设备可以把数据远程发送给B设备,可以是任何类型的数据。

/*****************************wifi*****************************/		
if(++timeCount >= 500)				//发送间隔
{
	OneNet_PushData("6056130", push_data, strlen(push_data));
	timeCount = 0;
	ESP8266_Clear();			
}

**“6056130”**是设备ID,可以在onenet设备列表进行查询,
**“push_data”**是你要发送的数据。

4、设备B接收设备A数据

	if(dataPtr != NULL)
		OneNet_RevPro(dataPtr);

在这里插入图片描述
接收到的数据都会保存到req这个指针地址上。

5、遇到的问题

使用串口1时会报错,需要勾选这个选项
在这里插入图片描述
并且还要在usart.c中添加这一行代码,否则将无法使用printf函数
(来源正点原子)

#if 1
#pragma import(__use_no_semihosting)             
//标准库需要的支持函数                 
struct __FILE 
{ 
	int handle; 

}; 

FILE __stdout;       
//定义_sys_exit()以避免使用半主机模式    
_sys_exit(int x) 
{ 
	x = x; 
} 
//重定义fputc函数 
int fputc(int ch, FILE *f)
{      
	while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
	return ch;
}
#endif 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>