1.ESP8266の概要
ESP8266モジュールは、広く使用されているシングルチップWIFI通信モジュールです。以下では、主にSTM32でESP8266の通信を実装する方法について説明します。
2.ATコマンドコア
初期化
//ESP初始化
SendATCmd("+++",500); //退出透传模式
SendATCmd("AT\r\n",500); //测试ESP01模块是否存在
SendATCmd("ATE0\r\n",500); //关闭模块回显
SendATCmd("AT+GMR\r\n",500); //查看模块版本信息
SendATCmd("AT+CWMODE=3\r\n",500); //开启STA+AP模式
SendATCmd("AT+CIPMUX=0\r\n",500); //关闭多连接
char str[200];
sprintf(str,"AT+CWJAP=\"%s\",\"%s\"\r\n","这里输入热点名称","这里输入热点密码"); //账号和密码的输入,建议使用2.4Ghz频段
SendATCmd(str,3000); //连接无线路由器或者手机热点,等待十秒
10秒ごとに、APIインターフェースを介してXinzhiWeatherにアクセスし、リアルタイムの天気のjson文字列を取得します
if(osKernelGetTickCount()>tick_for_weather)
{
tick_for_weather=osKernelGetTickCount()+10000;
SendATCmd("AT+CIPSTART=\"TCP\",\"api.seniverse.com\",80\r\n",2000);//连接心知天气TCP服务器
SendATCmd("AT+CIPMODE=1\r\n",500); //开启透传模式
SendATCmd("AT+CIPSEND\r\n",500); //开启透传
SendATCmd("GET https://api.seniverse.com/v3/weather/now.json?key=Srb4ras_BDB82jLDh&location=hangzhou&language=en&unit=c\r\n",3000);
SendATCmd("+++",500); //退出透传模式
}
3.補助機能
void SendATCmd(char *cmd,int waitms) //发送AT指令给串口6
{
if(NULL!=cmd)
{
HAL_UART_Transmit(&huart6,(uint8_t*)cmd,strlen(cmd),0xFFFF);
if(waitms>0)
osDelay(waitms);//延时等待ESP01模块应答时间
}
}
第四に、効果マップ
わからない場合はメッセージを残してください。