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.39和876是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