#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <ESP8266WiFi.h> #include <PubSubClient.h> #define OLED_ADDRESS 0x78 // OLED 模块引脚定义 #define OLED_RESET_PIN 4 Adafruit_SSD1306 display(OLED_RESET_PIN); const char* ssid = "ChinaNet-CFG5J5"; const char* password = "13926801345"; const char* mqttServer = "121.41.171.134"; const int mqttPort = 1883; WiFiClient espClient; PubSubClient client(espClient); // 控制引脚 const int ledPin = LED_BUILTIN; void setup() { Serial.begin(115200); // 连接到 Wi-Fi 网络 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to Wi-Fi. IP Address: "); Serial.println(WiFi.localIP()); // 设置 MQTT 服务器 client.setServer(mqttServer, mqttPort); // 将 LED 引脚设置为输出模式 pinMode(ledPin, OUTPUT); // 初始化 OLED 显示屏 display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("Hello, World!"); display.display(); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); // 在此处添加你的主程序逻辑 // 将 LED 点亮 digitalWrite(ledPin, HIGH); // 延迟一段时间 delay(1000); // 将 LED 关闭 digitalWrite(ledPin, LOW); // 延迟一段时间 delay(1000); } void reconnect() { // 重新连接到 MQTT 服务器 while (!client.connected()) { Serial.print("Connecting to MQTT server..."); if (client.connect("ESP8266Client")) { Serial.println("Connected!"); } else { Serial.print("Failed, rc="); Serial.print(client.state()); Serial.println(" Retrying in 5 seconds..."); delay(5000); } } }
发表评论