1、硬件 用一个四博智联提供的nodemcu。一个OLED屏,一个USB线,4根杜邦线,可以上网的路由器,电脑。
3V3---VCC GND---GND GPIO4(D2)---SDA GPIO5(D1)---SCL
2、设置路由器 把路由器账号设置为把路由器账号设置为 账号:xh003 密码:zxd+19901120= 3、烧录程序 打开ESP_TOOLS下载工具,选择8266.
点击START.等待烧录完成。
烧录完成后复位一下nodemcu。等待10s左右。 测试结果如下:
Arduino代码如下: #include <ESP8266WiFi.h> #include <ArduinoJson.h> #include <Wire.h> #include "OLED.h" const char* ssid = "xh003"; // XXXXXX -- 使用时请修改为当前你的 wifi ssid const char* password = "zxd+19901120="; // XXXXXX -- 使用时请修改为当前你的 wifi 密码 const char* host = "api.seniverse.com"; const char* APIKEY = "wcmquevztdy1jpca"; //API KEY const char* city = "shenzhen"; const char* language = "en";//zh-Hans 简体中文 会显示乱码
const unsigned long BAUD_RATE = 115200; // serial connection speed const unsigned long HTTP_TIMEOUT = 5000; // max respone time from server const size_t MAX_CONTENT_SIZE = 1000; // max size of the HTTP response
// 我们要从此网页中提取的数据的类型 struct UserData { char city[16];//城市名称 char weather[32];//天气介绍(多云...) char temp[16];//温度 char udate[32];//更新时间 };
WiFiClient client; char response[MAX_CONTENT_SIZE]; char endOfHeaders[] = "\r\n\r\n";
/** */ void setup() { WiFi.mode(WIFI_STA); //设置esp8266 工作模式 Serial.begin(BAUD_RATE); delay(10); Serial.println(); Serial.println(); Serial.print("Connecting to ");//写几句提示,哈哈 Serial.println(ssid); WiFi.begin(ssid, password); //连接wifi while (WiFi.status() != WL_CONNECTED) { //这个函数是wifi连接状态,返回wifi链接状态 delay(100); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); delay(100); Serial.println("IP address: "); Serial.println(WiFi.localIP());//WiFi.localIP()返回8266获得的ip地址 client.setTimeout(HTTP_TIMEOUT); }
} 代码下载地址:http://bbs.doit.am/forum.php?mod=viewthread&tid=442&extra=
|