{"id":3945,"date":"2024-03-29T00:48:52","date_gmt":"2024-03-28T16:48:52","guid":{"rendered":"http:\/\/www.ccwifi.cc\/blogs\/?p=3945"},"modified":"2024-03-29T00:48:52","modified_gmt":"2024-03-28T16:48:52","slug":"%e5%9f%ba%e4%ba%8estm32%e4%b8%8eesp8266%e7%9a%84%e5%a4%aa%e7%a9%ba%e4%ba%baw6303","status":"publish","type":"post","link":"https:\/\/www.ccwifi.cc\/blogs\/2024\/03\/29\/%e5%9f%ba%e4%ba%8estm32%e4%b8%8eesp8266%e7%9a%84%e5%a4%aa%e7%a9%ba%e4%ba%baw6303\/","title":{"rendered":"\u57fa\u4e8eSTM32\u4e0eESP8266\u7684\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f\uff08\u4ee3\u7801\u5f00\u6e90\uff09"},"content":{"rendered":"<div>\n<p>\u5728\u7ebfwifi\u8dd1\u5305 \u91d1\u521a\u5305\u8dd1\u5305 cap\u8dd1\u5305 hccapx ewsa\u5728\u7ebf \u5c31\u6765 <strong><a href=\"https:\/\/ccwifi.cc\" target=\"_blank\" rel=\"noopener\">\u63e1\u624b\u5305\u8dd1\u5305<\/a><\/strong><\/p>\n<p>\u5404\u4f4d\u597d \u53c8\u89c1\u9762\u4e86 \u6211\u662f\u66f9\u64cd \u4eca\u5929\u7ed9\u5927\u5bb6\u5e26\u6765\u4e00\u7bc7\u65b0\u7684\u6559\u7a0b<\/p>\n<p>\u5e0c\u671b\u5404\u4f4d\u7ec6\u5fc3\u5b66\u4e60 \u4f4e\u8c03\u7528\u7f51<\/p>\n<\/div>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_0.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<p>\u524d\u8a00\uff1a\u672c\u6587\u4ecb\u7ecd\u4e86\u4e00\u6b3e\u57fa\u4e8eSTM32\u7684\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f\u9879\u76ee\uff0c\u4e0e\u5e38\u89c1\u7684ESP8266\u7248\u672c\u4e0d\u540c\uff0c\u672c\u9879\u76ee\u4f7f\u7528\u4e86STM32\u4f5c\u4e3aMCU\u3002\u7531\u4e8e\u4e24\u8005\u82af\u7247\u7684\u7279\u6027\uff08\u5982\u65f6\u949f\u9891\u7387\u3001\u5185\u5b58\u5927\u5c0f\u7b49\uff09\u4e0d\u540c\uff0c\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u9700\u8981\u8fdb\u884c\u7279\u6b8a\u8bbe\u8ba1\u3002\u4f5c\u8005\u9009\u62e9\u4f7f\u7528STM32\u7684\u539f\u56e0\u662f\uff0c\u867d\u7136ESP8266\u5728\u8ba1\u7b97\u80fd\u529b\u7b49\u65b9\u9762\u4f18\u4e8eSTM32F1xx\uff0c\u4f46\u5176\u5f15\u811a\u548c\u5916\u8bbe\u8f83\u5c11\uff0c\u6269\u5c55\u6027\u4e00\u822c\uff08\u800cESP32\u5219\u517c\u5177\u4e8c\u8005\u4f18\u70b9\uff09\u3002\u53e6\u5916\uff0c\u7f51\u7edc\u4e0a\u5df2\u7ecf\u6709\u5f88\u5b8c\u5584\u7684ESP8266\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f\u5f00\u6e90\u9879\u76ee\uff0c\u56e0\u6b64\u4f5c\u8005\u5c1d\u8bd5\u4f7f\u7528STM32\u5b9e\u73b0\u8be5\u9879\u76ee\uff0c\u4ee5\u4fbf\u540e\u7eed\u62d3\u5c55\u5f00\u53d1\uff08\u4ee3\u7801\u5728\u6587\u672b\u5f00\u6e90\uff09\u3002<\/p>\n<p>\u5b9e\u9a8c\u786c\u4ef6\uff1aSTM32F103ZET6\uff1b7\u94881.3\u5bf8TFT-LCD(240\u00d7240)\uff1bESP8266<\/p>\n<p>\u786c\u4ef6\u5b9e\u7269\u56fe\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_1.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_2.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<p>\u6548\u679c\u56fe\uff1a<\/p>\n<p>\u5f15\u811a\u8fde\u63a5\uff1a<br \/>\nLCD\u663e\u793a\u5f15\u811a\uff1a<br \/>\nVCC &#8211;&gt; 3.3V<br \/>\nGND &#8211;&gt; GND<br \/>\nCLK &#8211;&gt; PA5<br \/>\nDIN &#8211;&gt; PA7<br \/>\nRES &#8211;&gt; PB0<br \/>\nDC &#8211;&gt; PB1<br \/>\nCS &#8211;&gt; PA4<\/p>\n<p>ESP8266\u6a21\u5757\u5f15\u811a\uff1a<br \/>\nVCC &#8211;&gt; 3.3V<br \/>\nGND &#8211;&gt; GND<br \/>\nRX&#8211;&gt; PB10<br \/>\nTX &#8211;&gt; PB11<br \/>\nRST &#8211;&gt; PB9<br \/>\nEN &#8211;&gt; PB7<\/p>\n<p>\u4e00\u3001ESP8266\u7b80\u4ecb\u4e0e\u4f7f\u7528<br \/>\n1.1 ESP8266\u7b80\u4ecb<br \/>\nESP8266\u662f\u4e00\u6b3e\u8d85\u4f4e\u529f\u8017\u7684UART-WiFi\u900f\u4f20\u6a21\u5757\uff0c\u4e13\u4e3a\u79fb\u52a8\u8bbe\u5907\u548c\u7269\u8054\u7f51\u5e94\u7528\u8bbe\u8ba1\u3002\u5b83\u53ef\u4ee5\u5c06\u7269\u7406\u8bbe\u5907\u8fde\u63a5\u5230Wi-Fi\u65e0\u7ebf\u7f51\u7edc\u4e0a\uff0c\u5b9e\u73b0\u4e92\u8054\u7f51\u6216\u5c40\u57df\u7f51\u901a\u4fe1\u3002<\/p>\n<p>ESP8266\u662f\u4e0a\u6d77\u4e50\u946b\u4fe1\u606f\u79d1\u6280\u8bbe\u8ba1\u7684\u4f4e\u529f\u8017WiFi\u82af\u7247\uff0c\u96c6\u6210\u4e86\u5b8c\u6574\u7684TCP\/IP\u534f\u8bae\u6808\u548cMCU\u3002ESP8266\u6a21\u5757\u662f\u57fa\u4e8eESP8266\u82af\u7247\u7814\u53d1\u7684\u4e32\u53e3WiFi\u6a21\u5757\uff0c\u6210\u672c\u4f4e\u3001\u4f7f\u7528\u7b80\u4fbf\u3001\u529f\u80fd\u5f3a\u5927\u3002<\/p>\n<pre><code>void esp8266_config(void)\n{\n\t\tchar str[200];\n\t\tsprintf(str, \"AT+CWJAP=\"%s\",\"%s\"rn\", WIFI_NAME, WIFI_PSW);\n\/\/\t\tSendATCmd(\"+++\", 500);\t\t\t\t\/\/ \u9000\u51fa\u900f\u4f20\u6a21\u5f0f\n\t\tSendATCmd(\"ATrn\", 2000);\t\t\t\/\/ \u6d4b\u8bd5ESP01\u6a21\u5757\u662f\u5426\u5b58\u5728\n\/\/\t\tSendATCmd(\"AT+GMRrn\",3000);\t\/\/ \u67e5\u770b\u6a21\u5757\u7248\u672c\u4fe1\u606f\n\t\tSendATCmd(\"AT+CWMODE=1rn\", 2000);\t\/\/ \u5f00\u542fSTA+AP\u6a21\u5f0f ==================\t\t\n\t\tSendATCmd(\"AT+RSTrn\", 3000);\t\n\t\tSendATCmd(str, 10000);\t\/\/ \u8fde\u63a5\u65e0\u7ebf\u8def\u7531\u5668\u6216\u8005\u624b\u673a\u70ed\u70b9\uff0c\u7b49\u5f8510\u79d2 ============\n\t\tSendATCmd(\"AT+CIPMUX=0rn\", 2000);\t\/\/ \u5173\u95ed\u591a\u8fde\u63a5\n\t\tSendATCmd(\"AT+CIPSTART=\"TCP\",\"api.seniverse.com\",80rn\", 2000);\t\/\/ \u8fde\u63a5\u5fc3\u77e5  \u5929\u6c14TCP\u670d\u52a1\u5668\n\t\tSendATCmd(\"AT+CIPMODE=1rn\", 500);\t\/\/ \u5f00\u542f\u900f\u4f20\u6a21\u5f0f\n\t\tSendATCmd(\"AT+CIPSENDrn\", 500);\t\t\/\/ \u5f00\u59cb\u900f\u4f20\n}<\/code><\/pre>\n<p>1.2 \u786c\u4ef6\u4e0e\u7f51\u7edc\u7684\u6865\u6881\u2014\u2014ESP8266<br \/>\nESP8266\u6a21\u5757\u662f\u4e00\u79cd\u4e32\u53e3WiFi\u6a21\u5757\uff0c\u7c7b\u4f3c\u4e8e\u84dd\u7259\u6a21\u5757\uff0c\u53ef\u4ee5\u6269\u5c55\u5355\u7247\u673a\u7684\u529f\u80fd\u3002\u5b83\u901a\u8fc7\u4e32\u53e3AT\u6307\u4ee4\u4e0e\u5355\u7247\u673a\u901a\u4fe1\uff0c\u5b9e\u73b0\u4e32\u53e3\u900f\u4f20\u3002<\/p>\n<p>\u900f\u4f20\u662f\u6307\u8f93\u5165\u5373\u8f93\u51fa\uff0c\u5373\u4eceWiFi\u6a21\u5757\u4e32\u53e3\u8f93\u5165\u7684\u5b57\u7b26\u4f1a\u900f\u4f20\u5230\u670d\u52a1\u5668\u7aef\uff0c\u6570\u636e\u4e0d\u6539\u53d8\uff0c\u7531\u6a21\u5757\u5b8c\u6210\u4e0d\u540c\u534f\u8bae\u4e4b\u95f4\u7684\u8f6c\u6362\u3002ESP8266\u6a21\u5757\u5bf9\u4e8e\u4f7f\u7528\u8005\u6765\u8bf4\u662f\u900f\u660e\u7684\uff0c\u4f7f\u7528\u8005\u53ea\u9700\u5173\u6ce8\u4f7f\u7528\u63a5\u53e3\u3002<\/p>\n<p>\u901a\u8fc7\u5c06\u786c\u4ef6\u8fde\u63a5\u5230\u7f51\u7edc\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u66f4\u591a\u7684\u529f\u80fd\u3002\u914d\u5408\u670d\u52a1\u5668\u7aef\u7684Socket\u7f51\u7edc\u7f16\u7a0b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u8bb8\u591a\u6709\u8da3\u7684\u5e94\u7528\u3002\u56e0\u6b64\uff0cWiFi\u6a21\u5757\u662f\u8fde\u63a5\u8f6f\u4ef6\uff08\u7f51\u7edc\u7f16\u7a0b\uff09\u4e0e\u786c\u4ef6\uff08\u5355\u7247\u673a\uff09\u7684\u6865\u6881\uff0c\u5c06\u5355\u7247\u673a\u548cWeb\u77e5\u8bc6\u8054\u7cfb\u8d77\u6765\u3002<\/p>\n<p>ESP8266\u7684\u51fa\u73b0\u5927\u5927\u964d\u4f4e\u4e86\u7f51\u7edc\u5f00\u53d1\u7684\u96be\u5ea6\uff0c\u4fc3\u8fdb\u4e86\u6280\u672f\u7684\u4e0b\u653e\u3002\u901a\u8fc7\u5b66\u4e60ESP8266\/ESP32\u7b49\u6a21\u5757\uff0c\u53ef\u4ee5\u719f\u6089TCP\/IP\u7b49\u7f51\u7edc\u534f\u8bae\uff0c\u5bf9\u540e\u7eed\u7684\u7f51\u7edc\u5f00\u53d1\u4e5f\u975e\u5e38\u6709\u610f\u4e49\u3002<\/p>\n<p>1.3 ESP8266\u4f7f\u7528\u2014\u2014AT\u6307\u4ee4<br \/>\nAT\u6307\u4ee4\u662f\u4e00\u4e9b\u8d77\u63a7\u5236\u4f5c\u7528\u7684\u7279\u6b8a\u5b57\u7b26\u4e32\uff0c\u6700\u65e9\u5728\u84dd\u7259\u6a21\u5757\u4e0a\u4f7f\u7528\u3002ESP8266\u6a21\u5757\u4e5f\u652f\u6301AT\u6307\u4ee4\uff0c\u901a\u8fc7AT\u6307\u4ee4\u63a7\u5236\u6a21\u5757\u7684\u529f\u80fd\u3002<\/p>\n<p>\u4e0b\u9762\u662f\u4e00\u4e9b\u5e38\u7528\u7684AT\u6307\u4ee4\u53ca\u5176\u7528\u6cd5\uff1a<\/p>\n<p>\u57fa\u7840AT\u6307\u4ee4\uff1a<br \/>\nAT\uff1a\u6d4b\u8bd5AT\u542f\u52a8<br \/>\nAT+RST\uff1a\u91cd\u542f\u6a21\u5757<br \/>\nAT+GMR\uff1a\u67e5\u770b\u7248\u672c\u4fe1\u606f<\/p>\n<p>WiFi\u529f\u80fdAT\u6307\u4ee4\uff1a<br \/>\nAT+CWMODE\uff1a\u8bbe\u7f6eWiFi\u6a21\u5f0f\uff08sta\/AP\/sta+AP\uff09<br \/>\nAT+CWLAP\uff1a\u626b\u63cf\u9644\u8fd1\u7684AP\u4fe1\u606f<br \/>\nAT+CWJAP\uff1a\u8fde\u63a5AP<br \/>\nAT+CWQAP\uff1a\u4e0eAP\u65ad\u5f00\u8fde\u63a5<br \/>\nAT+CWSAP\uff1a\u8bbe\u7f6eESP8266 softAP\u914d\u7f6e<br \/>\nAT+CWLIF\uff1a\u83b7\u53d6\u8fde\u63a5\u5230ESP8266 softAP\u7684station\u7684\u4fe1\u606f<\/p>\n<p>TCP\/IP\u76f8\u5173AT\u6307\u4ee4\uff1a<br \/>\nAT+CIPSTATUS\uff1a\u67e5\u8be2\u7f51\u7edc\u8fde\u63a5\u4fe1\u606f<br \/>\nAT+CIPMUX\uff1a\u8bbe\u7f6e\u591a\u8fde\u63a5\u6a21\u5f0f<br \/>\nAT+CIPSTART\uff1a\u5efa\u7acbTCP\u8fde\u63a5UDP\u4f20\u8f93\u6216\u8005SSL\u8fde\u63a5<br \/>\nAT+CIPCLOSE\uff1a\u5173\u95edTCP\/UDP\/SSL\u4f20\u8f93<br \/>\nAT+CIPMODE\uff1a\u8bbe\u7f6e\u900f\u4f20\u6a21\u5f0f<br \/>\nAT+CIPSEND\uff1a\u53d1\u9001\u6570\u636e<\/p>\n<p>\u4ee5\u4e0a\u662f\u672c\u9879\u76ee\u9700\u8981\u4f7f\u7528\u7684\u4e00\u4e9b\u6307\u4ee4\uff0c\u5177\u4f53\u4f7f\u7528\u65b9\u6cd5\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\uff1aESP8266 AT\u6307\u4ee4\u96c6\u3002<\/p>\n<p>\u4e8c\u3001\u77e5\u5fc3\u5929\u6c14API\u4f7f\u7528<br \/>\n\u672c\u9879\u76ee\u9700\u8981\u4ece\u7f51\u9875\u4e0a\u8bfb\u53d6\u5929\u6c14\u4fe1\u606f\uff0c\u4f7f\u7528\u4e86\u77e5\u5fc3\u5929\u6c14API\u3002\u6ce8\u518c\u5e76\u83b7\u53d6API\u5bc6\u94a5\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7API\u63a5\u53e3\u51fd\u6570\u83b7\u53d6\u5929\u6c14\u6570\u636e\u3002<\/p>\n<p>2.1 \u767b\u5f55\u77e5\u5fc3\u5929\u6c14\u5b98\u7f51\uff0c\u6ce8\u518c<br \/>\n\u5982\u679c\u6ca1\u6709\u8d26\u53f7\uff0c\u53ef\u4ee5\u81ea\u884c\u6ce8\u518c\u3002\u77e5\u5fc3\u5929\u6c14\u63d0\u4f9b\u514d\u8d39\u7248\uff0c\u6ce8\u518c\u6d41\u7a0b\u7b80\u5355\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_4.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_5.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<p>\u70b9\u51fb&#8221;\u7acb\u5373\u514d\u8d39\u8bd5\u7528&#8221;\uff0c\u7136\u540e\u70b9\u51fb\u514d\u8d39\u7248\u7684&#8221;\u514d\u8d39\u7533\u8bf7&#8221;\u3002\u7533\u8bf7\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u67e5\u770b\u81ea\u5df1\u7684API\u5bc6\u94a5\uff08\u4fdd\u5b58\u597d\uff0c\u540e\u9762\u4f1a\u7528\u5230\uff09\u3002<\/p>\n<p>2.2 API\u51fd\u6570\u7684\u4f7f\u7528<br \/>\n\u5927\u90e8\u5206\u7f51\u7edc\u6570\u636e\u8c03\u7528\u90fd\u662f\u901a\u8fc7API\u63a5\u53e3\u51fd\u6570\u5b9e\u73b0\u7684\u3002\u5728\u77e5\u5fc3\u5929\u6c14\u5b98\u7f51\u7684API\u6587\u6863\u4e2d\uff0c\u53ef\u4ee5\u627e\u5230\u5404\u79cdAPI\u63a5\u53e3\u7684\u5730\u5740\u548c\u8fd4\u56de\u7684\u6570\u636e\u7ed3\u679c\u793a\u4f8b\uff08\u4fdd\u5b58\u597d\uff0c\u540e\u9762\u4f1a\u7528\u5230\uff09\u3002<\/p>\n<p>\u4e09\u3001UART\u4e32\u53e3\u901a\u4fe1<br \/>\nSTM32\u4f5c\u4e3aMCU\u4e0eESP8266\u4e4b\u95f4\u7684\u901a\u4fe1\u4f7f\u7528UART\uff08\u4e32\u53e3\uff09\u901a\u4fe1\u3002\u901a\u8fc7\u4e32\u53e3\u53d1\u9001AT\u6307\u4ee4\u96c6\uff0c\u5b9e\u73b0\u4e0eESP8266\u7684\u901a\u4fe1\u3002<\/p>\n<p>\u5c06STM32\u7684UARTx<em>TX\u8fde\u63a5\u5230ESP8266\u7684UART<\/em>RX\uff0c\u7136\u540e\u901a\u8fc7\u4e32\u53e3\u53d1\u9001AT\u6307\u4ee4\u96c6\u3002ESP8266\u5c06\u4ece\u670d\u52a1\u5668\u63a5\u6536\u5230\u7684\u6570\u636e\u901a\u8fc7UART<em>TX\u53d1\u9001\u7ed9STM32\u7684UARTx<\/em>RX\u3002\u901a\u8fc7\u89e3\u6790\u4e32\u53e3\u63a5\u6536\u5230\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u83b7\u53d6\u6240\u9700\u7684\u4fe1\u606f\u3002<\/p>\n<p>\u53ef\u4ee5\u4f7f\u7528\u7535\u8111\u4e32\u53e3\u8bfb\u53d6STM32\u63a5\u6536\u5230\u7684ESP8266\u8fd4\u56de\u7684\u4fe1\u606f\u3002<\/p>\n<p>\u56db\u3001CubeMX\u914d\u7f6e<\/p>\n<ol>\n<li>RCC\u914d\u7f6e\u5916\u90e8\u9ad8\u901f\u6676\u632f\uff08HSE\uff09\u4ee5\u63d0\u9ad8\u7cbe\u5ea6\u3002<\/li>\n<li>SYS\u914d\u7f6e\uff1a\u5c06Debug\u8bbe\u7f6e\u4e3aSerial Wire\uff0c\u907f\u514d\u82af\u7247\u81ea\u9501\u3002<\/li>\n<li>GPIO\u914d\u7f6e\uff1a\u914d\u7f6eSPI\u901a\u4fe1\u548cESP8266\u7684EN\u548cRST\u5f15\u811a\u3002<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_14.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_15.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_16.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_17.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_18.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_19.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_20.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_21.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<ol start=\"4\">\n<li>RTC\u914d\u7f6e\uff1a\u914d\u7f6e\u5e74\u6708\u65e5\u3001\u65f6\u5206\u79d2\u3002<\/li>\n<li>UART1\u548cUART3\u914d\u7f6e\uff1a\u5206\u522b\u4e0e\u7535\u8111\u548cESP8266\u901a\u4fe1\uff08\u8bb0\u5f97\u5f00\u542f\u4e32\u53e3\u901a\u4fe1\u4e2d\u65ad\uff09\u3002<\/li>\n<li>\u65f6\u949f\u6811\u914d\u7f6e\u3002<\/li>\n<li>\u5de5\u7a0b\u914d\u7f6e\u3002<\/li>\n<\/ol>\n<p>\u4e94\u3001\u4ee3\u7801\u4e0e\u89e3\u6790<br \/>\n5.1 TFT-LCD\u663e\u793a\u4ee3\u7801<br \/>\nLCD\u663e\u793a\u90e8\u5206\u662f\u57fa\u7840\u64cd\u4f5c\uff0c\u5982\u679c\u4e0d\u719f\u6089\u53ef\u4ee5\u53c2\u8003\u5176\u4ed6\u8d44\u6599\u3002\u8fd9\u91cc\u4e3b\u8981\u6307\u51fa\u4e0e\u5176\u4ed6\u9879\u76ee\u4e0d\u540c\u7684\u5730\u65b9\u3002<\/p>\n<p>5.1.1 UI\u8bbe\u8ba1<br \/>\nUI\u8bbe\u8ba1\u662fWiFi\u5929\u6c14\u65f6\u949f\u7684\u91cd\u8981\u90e8\u5206\uff0c\u9700\u8981\u8bbe\u8ba1\u8bb8\u591a\u754c\u9762\u56fe\u6807\u3002\u4f5c\u8005\u5728GitHub\u548c\u89c6\u89c9\u4e2d\u56fd\u627e\u5230\u4e86\u7b26\u5408\u8981\u6c42\u7684UI\u5e93\uff08\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u5728\u8bc4\u8bba\u533a\u7559\u4e0b\u90ae\u7bb1\uff09\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_22.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<p>5.1.2 GIF\u52a8\u56fe\u5b9e\u73b0<br \/>\n\u7531\u4e8eSTM32\u7684\u5185\u5b58\u9650\u5236\uff0c\u4e0d\u592a\u9002\u5408\u5b9e\u73b0GIF\u52a8\u56fe\u3002\u76ee\u524d\u4e3b\u6d41\u7684\u65b9\u6cd5\u6709\u4e24\u79cd\uff1a\u4f7f\u7528enWin\u6216Lvgl\u5e93\u5b9e\u73b0GIF\u52a8\u56fe\uff0c\u6216\u4eceSD\u5361\u8bfb\u53d6\u6570\u636e\u663e\u793a\u3002<\/p>\n<p>\u4f5c\u8005\u4f7f\u7528\u4e86\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u6cd5\uff0c\u5faa\u73af\u904d\u5386GIF\u52a8\u56fe\u7684\u6bcf\u4e00\u5e27\u3002<\/p>\n<p>\u4f7f\u7528GIF\u5206\u79bb\u5668\u5206\u79bb\u6bcf\u4e00\u5e27\u7684\u56fe\u50cf\u3002<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_23.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_24.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<pre><code>void showimage4(const unsigned char *p) \n{\n  int i; \n\tunsigned char picH,picL;\n \n\tAddress_set(180,146,228,195);\n\tfor(i=0;i&lt;49*50;i++)\n\t\t{\t\n\t\t\tpicL=*(p+i*2);\t\n\t\t\tpicH=*(p+i*2+1);\t\t\t\t\n\t\t\tLCD_WR_DATA(picH&lt;&lt;8|picL); \t\t\t\t\n\t\t}\t\n}\n \n \nfor(int a=0;a&lt;11;a++)\n{\n    showimage4(gImage_1[a]);\n}<\/code><\/pre>\n<pre><code>\/* USER CODE BEGIN 4 *\/\nvoid HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)\n{\n  \/* Prevent unused argument(s) compilation warning *\/\n  UNUSED(huart);\n  \/* NOTE: This function Should not be modified, when the callback is needed,\n           the HAL_UART_TxCpltCallback could be implemented in the user file\n   *\/\n\tif(huart == &amp;huart1)\n\t{\n\t\tg_uart1_rx.buf[g_uart1_rx.size++] = aRxBuffer_rx1;   \t\t\t\t\t\t\t\t\t\n\t\tif((g_uart1_rx.buf[g_uart1_rx.size-1] == 0x0A)&amp;&amp;(g_uart1_rx.buf[g_uart1_rx.size-2] == 0x0D))\t\n\t\t{\n\t\t\tHAL_UART_Transmit(&amp;huart1, (uint8_t *)&amp;g_uart1_rx.buf, g_uart1_rx.size,0xFFFF);\t\n\t\t\t\t\twhile(HAL_UART_GetState(&amp;huart1) == HAL_UART_STATE_BUSY_TX);\t\t\t\n\t\t\tg_uart1_rx.size = 0;\n\t\t\tmemset(g_uart1_rx.buf,0x00,sizeof(g_uart1_rx.buf));\t\t\t\t\t\t\t\t\t\n\t\t}\n\t\tHAL_UART_Receive_IT(&amp;huart1, (uint8_t *)&amp;aRxBuffer_rx1, 1);\t\t\t\t\t\t\n\t}\n\tif(huart == &amp;huart3)\n\t{\n\t\tg_uart3_rx.buf[g_uart3_rx.size++] = aRxBuffer_rx3;   \t\t\t\t\t\t\t\t\t\n\t\n\t\tif((g_uart3_rx.buf[g_uart3_rx.size-1] == 'K')&amp;&amp;(g_uart3_rx.buf[g_uart3_rx.size-2] == 'O'))\t\n\t\t{\n\t\t\tHAL_UART_Transmit(&amp;huart1, (uint8_t *)&amp;g_uart3_rx.buf, g_uart3_rx.size,0xFFFF);\t\n\t\t\t\twhile(HAL_UART_GetState(&amp;huart1) == HAL_UART_STATE_BUSY_TX);\t\t\t\n\t\t\tg_uart3_rx.size = 0;\n\t\t\tmemset(g_uart3_rx.buf,0x00,sizeof(g_uart3_rx.buf));\t\t\t\t\t\t\t\t\t\n\t\t}\n\t\telse if((g_uart3_rx.buf[g_uart3_rx.size-2] == ']')&amp;&amp;(g_uart3_rx.buf[g_uart3_rx.size-1] == '}')\n\t\t\t&amp;&amp;(g_uart3_rx.buf[g_uart3_rx.size-3] == '}'))\n\t\t{\n\t\t\tHAL_UART_Transmit(&amp;huart1, (uint8_t *)&amp;g_uart3_rx.buf, g_uart3_rx.size,0xFFFF);\t\n\t\t\twhile(HAL_UART_GetState(&amp;huart1) == HAL_UART_STATE_BUSY_TX);\t\t\t\/\/\t\t\t\t\n\t\t\tstrcpy(Data_buff,(char *)g_uart3_rx.buf);\n\t\t\ttemp = 1;\n\t\t\tg_uart3_rx.size = 0;\t\t\t\t\n\t\t\tmemset(g_uart3_rx.buf,0x00,sizeof(g_uart3_rx.buf));\t\t\t\t\t\t\t\t\t\n \n\t\t}\n\t\tHAL_UART_Receive_IT(&amp;huart3, (uint8_t *)&amp;aRxBuffer_rx3, 1);\t\t\t\t\t\t\n\t}\n\t\n}\n\/* USER CODE END 4 *\/<\/code><\/pre>\n<p>\u7136\u540e\u4f7f\u7528Image2Lcd 2.9\uff08\u7834\u89e3\u7248\uff09\u751f\u6210\u56fe\u50cf\u6a21\u5f0f\u3002<\/p>\n<p>\u5c06\u53d6\u6a21\u4ee3\u7801\u8f6c\u6362\u4e3a\u4e8c\u7ef4\u6570\u7ec4\uff0c\u7b2c\u4e00\u7ef4\u8868\u793a\u5e27\u6570\uff0c\u7b2c\u4e8c\u7ef4\u8868\u793a\u6bcf\u5e27\u56fe\u50cf\u7684\u53d6\u6a21\u3002<\/p>\n<p>\u7136\u540e\u5faa\u73af\u663e\u793a\u6bcf\u4e00\u5e27\uff0c\u5b9e\u73b0GIF\u52a8\u56fe\u663e\u793a\u3002<\/p>\n<p>5.2 ESP8266\u4ee3\u7801<br \/>\nESP8266\u7684\u4ee3\u7801\u4e3b\u8981\u662f\u914d\u7f6e\u548c\u4e0e\u76ee\u6807\u670d\u52a1\u5668\u901a\u4fe1\uff0c\u8fd8\u9700\u8981\u89e3\u7801\u670d\u52a1\u5668\u8fd4\u56de\u7684\u4fe1\u606f\u3002<\/p>\n<p>5.2.1 ESP8266\u914d\u7f6e\u4ee3\u7801\uff08\u5305\u62ecUART\u5904\u7406\uff09<br \/>\nUART\u56de\u8c03\u5904\u7406\u51fd\u6570\uff1a<\/p>\n<pre><code>#ifndef __ESP8266_H\n#define __ESP8266_H\n \n\/\/#include \"stdint.h\"\n \n\/\/uint8_t aRxBuffer_rx1;\t\t\t\/\/\u63a5\u6536\u4e2d\u65ad\u7f13\u51b2\n\/\/uint8_t aRxBuffer_rx3;\t\t\t\/\/\u63a5\u6536\u4e2d\u65ad\u7f13\u51b2\n \n\/\/typedef struct {\n\/\/\tuint16_t size;\n\/\/\tuint8_t buf[1022]; \/\/ \u63a5\u6536\u7f13\u51b2\u6570\u7ec4\n\/\/} UART_RXDATA;\n \n\/\/UART_RXDATA g_uart1_rx;\n\/\/UART_RXDATA g_uart3_rx;\n \n\/\/char Data_buff[1022];\n \n\/\/char weather[10];\t\t\t\t\/\/\u5b58\u50a8\u5929\u6c14\n \n\/\/uint8_t temperature[2]={0,0}; \t\t\/\/\u50a8\u5b58\u6700\u9ad8\u6c14\u6e29\u548c\u6700\u4f4e\u6c14\u6e29\n\/\/uint8_t temp = 0;\n \n\/\/\u9700\u8981\u8fde\u63a5\u7684wifi\u8d26\u53f7\u548c\u5bc6\u7801\uff0c\u9700\u8981\u4fee\u6539\uff0c\u4e14WiFi\u9891\u6bb5\u4e0d\u652f\u63015GHz\n#define WIFI_NAME \"Wang\"\n#define WIFI_PSW    \"123456\"\n \n\u5fc3\u77e5\u5929\u6c14api,\u6ce8\u610fkey=\u540e\u9762\u9700\u8981\u66ff\u6362\u6210\u81ea\u5df1\u8d26\u53f7\u7684\u5bc6\u94a5\n\/\/char *get=\"GET https:\/\/api.seniverse.com\/v3\/weather\/daily.json?key=SkV9zIBpwJAOixrJZ&amp;location=chongqing&amp;language=en&amp;unit=crn\";\n \n\/\/void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);\nvoid SendATCmd(char *cmd, int waitms); \nvoid esp8266_config(void);\n \n \n#endif<\/code><\/pre>\n<pre><code>#include \"esp8266.h\"\n#include \"usart.h\"\n#include \n#include \n#include \n#include \"lcd.h\"\n \n \nvoid SendATCmd(char *cmd, int waitms) \n{ \/\/ \u53d1\u9001AT\u6307\u4ee4\u7ed9\u4e32\u53e33\n\tif (NULL != cmd)\n\t{\n\t\tHAL_UART_Transmit(&amp;huart3, (uint8_t *)cmd, strlen(cmd), 0xFFFF);\t\n\t\tif (waitms &gt; 0)\n\t\t\tHAL_Delay(waitms);  \/\/ \u5ef6\u65f6\u7b49\u5f85ESP01\u6a21\u5757\u5e94\u7b54\u65f6\u95f4\n\t}\n}\n \nvoid esp8266_config(void)\n{\n\t\tchar str[200];\n\t\tsprintf(str, \"AT+CWJAP=\"%s\",\"%s\"rn\", WIFI_NAME, WIFI_PSW);\n\/\/\t\tSendATCmd(\"+++\", 500);\t\t\t\t\/\/ \u9000\u51fa\u900f\u4f20\u6a21\u5f0f\n\t\tSendATCmd(\"ATrn\", 2000);\t\t\t\/\/ \u6d4b\u8bd5ESP01\u6a21\u5757\u662f\u5426\u5b58\u5728\n\/\/\t\tSendATCmd(\"AT+GMRrn\",3000);\t\/\/ \u67e5\u770b\u6a21\u5757\u7248\u672c\u4fe1\u606f\n\t\tSendATCmd(\"AT+CWMODE=1rn\", 2000);\t\/\/ \u5f00\u542fSTA+AP\u6a21\u5f0f ==================\t\t\n\t\tSendATCmd(\"AT+RSTrn\", 3000);\t\n\t\tSendATCmd(str, 10000);\t\/\/ \u8fde\u63a5\u65e0\u7ebf\u8def\u7531\u5668\u6216\u8005\u624b\u673a\u70ed\u70b9\uff0c\u7b49\u5f8510\u79d2 ============\n\t\tSendATCmd(\"AT+CIPMUX=0rn\", 2000);\t\/\/ \u5173\u95ed\u591a\u8fde\u63a5\n\t\tSendATCmd(\"AT+CIPSTART=\"TCP\",\"api.seniverse.com\",80rn\", 2000);\t\/\/ \u8fde\u63a5\u5fc3\u77e5\u5929\u6c14TCP\u670d\u52a1\u5668\n\t\tSendATCmd(\"AT+CIPMODE=1rn\", 500);\t\/\/ \u5f00\u542f\u900f\u4f20\u6a21\u5f0f\n\t\tSendATCmd(\"AT+CIPSENDrn\", 500);\t\t\/\/ \u5f00\u59cb\u900f\u4f20\n\t\n\t\tSendATCmd(\"GET https:\/\/api.seniverse.com\/v3\/weather\/daily.json?key=SkV9zIBpwJAOixrJZ&amp;location=zhenjiang&amp;language=en&amp;unit=crn\", 2000);\n}\n <\/code><\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_25.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<p>ESP8266.h\uff08AT\u63a7\u5236\uff09\uff1a<\/p>\n<p>ESP8266.c\uff1a<\/p>\n<p>\u6ce8\u610f\uff0ckey=\u540e\u9762\u5c3d\u91cf\u6362\u6210\u81ea\u5df1\u7684\u5bc6\u94a5\uff0clocation=\u540e\u9762\u4e5f\u53ef\u4ee5\u6362\u6210\u81ea\u5df1\u6240\u5728\u57ce\u5e02\u7684\u5b57\u6bcd\u3002<\/p>\n<p>5.2.2 ESP8266\u4fe1\u606f\u89e3\u7801<br \/>\n\u4f5c\u8005\u4f7f\u7528\u4e86\u5b57\u7b26\u4e32\u6bd4\u8f83\u548c\u6307\u9488\u53d6\u503c\u7684\u65b9\u6cd5\u8fdb\u884c\u89e3\u7801\u3002<\/p>\n<p>strstr()\u51fd\u6570\uff1a<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.ccwifi.cc\/blogs\/wp-content\/uploads\/2024\/03\/1711644512512_26.png\" alt=\"wifi\u5b57\u5178\u6700\u65b0\"><\/p>\n<pre><code>\t\t\tchar *p;\n\t\t\tp =\tstrstr(Data_buff,\"text_day\");\t\t\t\t\/\/\u67e5\u627e\u5929\u6c14\t\t\n\t\t\tsscanf(p+11,\"%[^\"]\",weather);\t\n\/\/\t\t\tLCD_ShowString(40,80,(uint8_t*)weather);\t\t\t\n\t\t\tp = strstr(Data_buff,\"high\");\t\t\t\t\t\t\t\t\/\/\u67e5\u627e\u6c14\u6e29\n\t\t\ttemperature[0]=atoi(p+7);\n\t\t\tp = strstr(Data_buff,\"low\");\n\t\t\ttemperature[1]=atoi(p+6);\n\/\/\t\t\tLCD_ShowxNum2(45,40,temperature[1],2,24,0);\n\t\t\tLCD_ShowxNum2(160,207,temperature[0],2,24,0);\n \n\t\t\t\/\/\u6e29\u5ea6\n\t\t\tvalue = (temperature[1]+temperature[0])\/2;\n\t\t\tLCD_ShowxNum2(52,160,value,2,24,0); \t\t\t\n \n\t\t\t\/\/\u6e7f\u5ea6\n\t\t\tp = strstr(Data_buff,\"humidity\");\n\t\t\thumidity=atoi(p+11);\n\t\t\tLCD_ShowxNum2(132,160,humidity,2,24,0);\n\t\t\tLCD_ShowNew(161,160,'%',24,0);\n\t\t\t\n\t\t\tif((strstr(weather,\"Overcast\")) || (strstr(weather,\"Mostly Cloudy\")) || (strstr(weather,\"Partly Cloudy\")) || strstr(weather,\"Cloudy\"))\t\n\t\t\t{\n\t\t\t\tOvercast();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Sunny\")) || (strstr(weather,\"Clear\")) || (strstr(weather,\"Fair\")))\t\t\t\/\/\u00c7\u00e7\u00cc\u00ec\n\t\t\t{\n\t\t\t\tSunny();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Shower\")))\t\t\t\t\n\t\t\t{\n\t\t\t\tShower();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Thundershower\")) || (strstr(weather,\"Thundershower with Hail\")))\t\t\n\t\t\t{\n\t\t\t\tThundershower();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Light rain\")) || (strstr(weather,\"Moderate Rain\")))\t\t\t\n\t\t\t{\n\t\t\t\tsmallrain();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Heavy Rain\")) || (strstr(weather,\"Storm\")) || (strstr(weather,\"Heavy Storm\")) || (strstr(weather,\"Severe Storm\")))\t\t\n\t\t\t{\n\t\t\t\tBigrain();\n\t\t\t}\n\t\t\tif((strstr(weather,\"Ice Rain\")) || (strstr(weather,\"Sleet\")) || (strstr(weather,\"Snow Flurry\")) || (strstr(weather,\"Light Snow\")) || (strstr(weather,\"Moderate Snow\")) || (strstr(weather,\"Heavy Snow\")) || (strstr(weather,\"Snowstorm\")))\t\t\n\t\t\t{\n\t\t\t\tsnow();\n\t\t\t}\t\t\t<\/code><\/pre>\n<pre><code>#ifndef __RTCDISPLAY_H\n#define __RTCDISPLAY_H\n \nvoid RTC_display();\n \n#endif<\/code><\/pre>\n<pre><code>#include \"rtcdisplay.h\"\n#include \"rtc.h\"\n#include \"lcd.h\"\n \nRTC_DateTypeDef GetData;  \/\/\u83b7\u53d6\u65e5\u671f\u7ed3\u6784\u4f53\nRTC_TimeTypeDef GetTime;   \/\/\u83b7\u53d6\u65f6\u95f4\u7ed3\u6784\u4f53\n \nvoid RTC_display()\t\t\t\t\/\/RTC DISPLAY\n{\n\t\n\t  \/* Get the RTC current Time *\/\n\t  HAL_RTC_GetTime(&amp;hrtc, &amp;GetTime, RTC_FORMAT_BIN);\n    \/* Get the RTC current Date *\/\n    HAL_RTC_GetDate(&amp;hrtc, &amp;GetData, RTC_FORMAT_BIN);\n\t\n\t\t\/* Display date Format : yy\/mm\/dd *\/\n\/\/\t\tOLED_ShowNum(0,0,2000+GetData.Year,4,16);\t\t\t\/\/year\n\/\/\t\tOLED_ShowStr(35,30,\".\",2);\n\/\/\t\tOLED_ShowNum(45,0,GetData.Month,2,16);\t\t\t\t\/\/month\n\/\/\t\tOLED_ShowStr(60,30,\".\",2);\n\/\/\t\tOLED_ShowNum(70,0,GetData.Date,2,16);\t\t\t    \/\/date\n\t\n    \/* Display time Format : hh:mm:ss *\/\n\t\tLCD_ShowxNum2(15,75,GetTime.Hours,2,60,0);\t\t\t\t\/\/hour\n\/\/\t\tLCD_ShowNew(75,65,':',60,0);\n\t\tLCD_ShowxNum2(105,75,GetTime.Minutes,2,60,0);\t\t\t\/\/min\n\t\tLCD_ShowxNum2(180,105,GetTime.Seconds,2,32,0);\t\t\t\/\/seconds\n \n}<\/code><\/pre>\n<p><!-- \u6587\u7ae0\u6765\u6e90:https:\/\/www.toutiao.com\/article\/7208199166386946594\/? --><\/p>\n<p>atoi()\u51fd\u6570\uff1a<\/p>\n<p>5.3 RTC\u4ee3\u7801<br \/>\nrtcdisplay.h\uff1a<\/p>\n<p>rtcdisplay.c\uff1a<\/p>\n<p>RTC\u7684\u65f6\u949f\u663e\u793a\u4f7f\u7528\u4e86\u4e13\u95e8\u7684LED\u6570\u5b57\u5b57\u4f53\uff0c\u5982\u679c\u9700\u8981\u5b57\u4f53\u5e93\u53ef\u4ee5\u5728\u8bc4\u8bba\u533a\u7559\u8a00\u3002<\/p>\n<p>\u516d\u3001\u9879\u76ee\u6548\u679c<br \/>\n\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f<\/p>\n<p>\u4e03\u3001\u9879\u76ee\u4ee3\u7801<br \/>\n\u4ee3\u7801\u5730\u5740\uff1a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u57fa\u4e8eSTM32\u4e0eESP8266\u7684\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f\uff08\u4ee3\u7801\u5f00\u6e90\uff09\u524d\u8a00\uff1a\u672c\u6587\u4e3a\u624b\u628a\u624b\u6559\u5b66ESP8266\u8457\u540d\u5f00\u6e90\u9879\u76ee\u2014\u2014\u592a\u7a7a\u4ebaWiFi\u5929\u6c14\u65f6\u949f\uff0c\u4e0d\u540c\u7684\u662f\u672c\u6b21\u9879\u76ee\u91c7\u7528\u7684\u662fSTM32\u4f5c\u4e3aMCU\u3002\u4e24\u8005\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u6709\u56e0\u4e3a\u5404\u81ea\u82af\u7247\u7684\u7279\u70b9\uff08\u65f6\u949f\u9891\u7387\uff0c\u5185\u5b58\u5927\u5c0f\u7b49\uff09<\/p>\n","protected":false},"author":1,"featured_media":3946,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"topic":[],"class_list":["post-3945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1"],"_links":{"self":[{"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/posts\/3945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/comments?post=3945"}],"version-history":[{"count":0,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/posts\/3945\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/media\/3946"}],"wp:attachment":[{"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/media?parent=3945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/categories?post=3945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/tags?post=3945"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.ccwifi.cc\/blogs\/wp-json\/wp\/v2\/topic?post=3945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}