/** ****************************************************************************** * @file : user_wifi.c * @author : zsq * @version : V1.0 * @date : 2020-01-08 * @brief : wifi config and control ****************************************************************************** * @attention * * Copyright (c) 2019 YUNHORN(Shenzhen YunHorn Technology Co., Ltd * All rights reserved. * ****************************************************************************** */ //-- Includes ----------------------------------------------------------------- #include "main.h" #include "user_wifi.h" #include "system.h" #include "fifo.h" volatile uint8_t WifiConfigState = DISABLE; //MQTT接收数组 uint8_t mqttRecvData[256]; /******************************************************************************* **Check_WifiConfigState(void) **功能描述:检查是否进入WIFI配置模式 **入口参数:无 **输出:无 *******************************************************************************/ void Check_WifiConfigState(void) { if(WifiConfigState == ENABLE) { //进入WIFI配置模式 //退出透传模式 printf("+++"); Delay(500); printf("+++"); Delay(500); //恢复出厂设置 printf("AT+RESTORE\r\n"); Delay(2000); //设置Wi-Fi模式并保存到flash printf("AT+CWMODE_DEF=1\r\n"); Delay(500); //上电自动连接到AP printf("AT+CWAUTOCONN=1\r\n"); Delay(500); //开启SmartConfig //printf("AT+CWSTARTSMART\r\n"); printf("AT+CWSTARTSMART=3\r\n"); Delay(500); //设置透传模式 printf("AT+CIPMODE=1\r\n"); Delay(500); //保存透传连接到flash // printf("AT+SAVETRANSLINK=1,\"smartoilets.cn\",8089,\"TCP\"\r\n"); printf("AT+SAVETRANSLINK=1,\"192.168.1.233\",8899,\"TCP\"\r\n"); while(1); } WifiConfigState = DISABLE; } /******************************************************************************* **SendDate_Wifi(void) **功能描述:使用WIFI发送传感器数据 **入口参数:SensorDataTypeDef *sensorData 数据结构体 **输出:无 *******************************************************************************/ void SendDate_Wifi(SensorDataTypeDef *sensorData) { printf("POST /socketServer/statis/push HTTP/1.1\r\nHost: smartoilets.cn\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 247\r\nConnection: keep-alive\r\n\r\ndata={\"code\": 1005,\"id\": \"65aa287c-093a-4999-ae43-bb240a0fdc72\",\"version\": \"yunhorn_kq_c_v1\",\"online\": true,\"data\": {\"temperature\": +%06.2f,\"humidity\": %06.2f,\"nh3\": %05.2f,\"h2s\": %05.2f,\"ch2o\": %04.2f,\"co2\": %04d,\"tvoc\": %d,\"pm25\": %04d,\"pm10\": %04d}}" ,sensorData->temperature,sensorData->humidity,sensorData->nh3,sensorData->h2s ,sensorData->ch2o,sensorData->co2,sensorData->tvoc,sensorData->pm25,sensorData->pm10); } /******************************************************************************* **SendDate_Wifi_MQTT(int sock, unsigned char *buf, int buflen) **功能描述:使用WIFI发送传感器数据(MQTT协议) **入口参数:int sock unsigned char *buf 发送数据 int buflen 数据长度 **返回值:发送是否成功 *******************************************************************************/ int SendDate_Wifi_MQTT(int sock, unsigned char *buf, int buflen) { UsartxSendDataStr(WIFI_USART,buf,buflen); return 1;//默认发送成功(测试!!) } int RecvDate_Wifi_MQTT(int sock, unsigned char *buf, int buflen) { uint8_t read_len = 0; uint8_t total_read_len = 0; uint8_t rc; // extern RingBuff_t ringBuff; // RingBuff_Init();//初始化环形缓冲区 // while(1) // { // IWDG_Feed(); // USART_SendData(DEBUG_USART,'A'); // while(USART_GetFlagStatus(DEBUG_USART,USART_FLAG_TXE)==RESET); // USART_SendData(DEBUG_USART,ringBuff.Lenght); // while(USART_GetFlagStatus(DEBUG_USART,USART_FLAG_TXE)==RESET); // // // // if(ringBuff.Lenght > 0)//判断非空 // { // uint16_t i; // uint16_t length = ringBuff.Lenght; // uint8_t *Data = (uint8_t *)malloc(sizeof(uint8_t)); // USART_SendData(DEBUG_USART,ringBuff.Lenght); // while(USART_GetFlagStatus(DEBUG_USART,USART_FLAG_TXE)==RESET); //// Read_RingBuff(Data); // for(i = 0;i<length;i++) // { // Read_RingBuff(Data); // USART_SendData(DEBUG_USART,*Data); // while(USART_GetFlagStatus(DEBUG_USART,USART_FLAG_TXE)==RESET); // } // } // Delay(2000); // } // // /* 打开定时器,等待超时 */ //具体实现 // while(1)//当未超时,继续接收 测试 条件为1 // { // for(read_len = 0; read_len < buflen; read_len++) // { // if(Read_RingBuff(buf+read_len)) //读取数据成功 // { // continue; // } // else //读取数据失败 // { // return read_len;//返回已读取数据长度 // } // } // } return buflen; //返回已读取数据长度 } int Wifi_Net_Connect(const char *ip, const char *port, sal_proto_t proto) { return 1;//ESP8266自动连接 默认连接成功 测试 } int Wifi_Net_Close(int sock) { return 1;//默认关闭成功 测试 } /******************************************************************************* **CheckState_Wifi(void) **功能描述:检查WIFI状态 **入口参数:无 **输出:无 *******************************************************************************/ int CheckState_Wifi(void) { return 1;//默认关闭成功 测试 } /******************************************************************************* **NetConfig_Wifi(void) **功能描述:配置WIFI参数 **入口参数:无 **输出:无 *******************************************************************************/ int NetConfig_Wifi(void) { return 1;//默认关闭成功 测试 }