Arduino IDE是由 Arduino 官方提供的支持
C 語言的集成開發環境,主要是針對 Arduino 系列的開發板進行編程。
通過簡單的配置,可以在原本的編程環境里添加上對 ESP8266 開發板的支持。對於熟悉 Arduino 函數庫和開發流程的用戶,基本上沒有任何使用上的區別。
通過簡單的配置,可以在原本的編程環境里添加上對 ESP8266 開發板的支持。對於熟悉 Arduino 函數庫和開發流程的用戶,基本上沒有任何使用上的區別。
一、添加ESP8266
首先從 Arduino官網(https://www.arduino.cc/en/software)下載最新版本的
Arduino IDE 軟件並安裝。
安裝完成以后,進入 首選項(Preferences),找到 附加開發板管理器地址(Additional Board Manager URLs),並在其后添加如下信息:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
安裝完成以后,進入 首選項(Preferences),找到 附加開發板管理器地址(Additional Board Manager URLs),並在其后添加如下信息:

之后點擊工具 - 開發板 - 開發板管理器,進入開發板管理器界面:
在搜索欄找到ESP8266並安裝:
安裝完成后,重啟Arduino IED軟件。在工具 - 開發板選項中即會看到ESP8266開發板選項:
注意:根據自己的開發板選型
二、WiFi網絡時鍾+OLED
- 一塊Esb8266 NodeMCU CH340開發版
- 一塊0.96寸OLED 屏幕(4針)
- 4根杜邦線
OLED屏幕 ---------- ESP8266
GND ---------- G
VCC ----------- 3V
SCL ------------ D1
SDA ------------ D2
實物圖-
一定找根帶有數據傳輸功能的數據線接到電腦上。(上次被坑了,一直不顯示串口!!)
裝CH340驅動(啥,不會?不會找百度!),然后在設備管理器就可以看到了
OK上面步驟都沒問題了,上干貨
1 /* 2 注意: 3 有的庫需要自己安裝或更新 4 */ 5 6 #include <Arduino.h> 7 #include <ESP8266WiFi.h> 8 #include <ESP8266WiFiMulti.h> 9 #include <ESP8266HTTPClient.h> 10 #include <WiFiClient.h> 11 #include <ArduinoJson.h> 12 #include <U8g2lib.h> 13 14 #ifdef U8X8_HAVE_HW_SPI 15 #include <SPI.h> 16 #endif 17 #ifdef U8X8_HAVE_HW_I2C 18 #include <Wire.h> 19 #endif 20 21 U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // All Boards without Reset of the Display 22 23 24 ESP8266WiFiMulti WiFiMulti; 25 WiFiClient client; 26 HTTPClient http; 27 28 String payload = ""; 29 30 bool HttpDateFlag = false; 31 32 char ssid[] = "你的WiFi名稱"; 33 char pswd[] = "密碼"; 34 35 void GetHttpDate() 36 { 37 //等待連接 38 while(WiFiMulti.run() != WL_CONNECTED) 39 { 40 delay(200); 41 } 42 43 if ((WiFiMulti.run() == WL_CONNECTED)) 44 { 45 http.begin(client, "http://quan.suning.com/getSysTime.do");//蘇寧網站提供的網絡授時 46 47 int httpCode = http.GET(); 48 49 if (httpCode > 0) 50 { 51 HttpDateFlag = true; 52 // file found at server 53 if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) 54 { 55 payload = http.getString(); 56 Serial.println(payload); 57 } 58 } 59 else 60 { 61 Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); 62 } 63 64 http.end(); 65 } 66 } 67 void HttpDateHandle() 68 { 69 const size_t capacity = JSON_OBJECT_SIZE(2) + 60; 70 DynamicJsonBuffer jsonBuffer(capacity); 71 72 JsonObject& root = jsonBuffer.parseObject(payload); 73 74 const char* sysTime2 = root["sysTime2"]; // "2021-07-17 15:26:56" 75 const char* sysTime1 = root["sysTime1"]; // "20210807170356" 76 Serial.println(sysTime2); 77 u8g2.setFont(u8g2_font_wqy15_t_chinese2); 78 u8g2.setFontDirection(0); 79 u8g2.clearBuffer(); 80 u8g2.setCursor(0, 15); 81 u8g2.println("北京時間"); 82 u8g2.setCursor(0, 40); 83 u8g2.println(sysTime2); 84 u8g2.setCursor(0, 60); 85 u8g2.print(sysTime2+11); 86 u8g2.sendBuffer(); 87 } 88 89 void setup() 90 { 91 u8g2.begin(); 92 u8g2.enableUTF8Print(); 93 94 Serial.begin(115200); 95 96 Serial.println(); 97 98 WiFi.mode(WIFI_STA); 99 WiFiMulti.addAP(ssid, pswd); 100 } 101 102 void loop() 103 { 104 GetHttpDate(); 105 if(HttpDateFlag) 106 { 107 HttpDateHandle(); 108 HttpDateFlag = false; 109 } 110 //delay(10000); 111 }
效果圖: