ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针时钟+数字时钟显示

438 篇文章 1583 订阅 ¥19.90 ¥99.00
253 篇文章 508 订阅 ¥19.90 ¥99.00

ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针时钟+数字时钟显示


  • 效果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

硬件说明

  • 0.96寸SSD1306 OLED屏幕或者1.3寸SH1106 IIC接口的 OLED屏幕,因为手上没有SPI接口的屏幕,根据库描述,spi接口的屏幕应该也是支持的。
    在这里插入图片描述

  • esp8266开发板或者esp32
    在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 ESP8266 天气时钟的 Arduino 代码示例。代码需要连接到 WiFi 并使用开放天气 API 获取天气信息。 ```arduino #include <Wire.h> #include <Adafruit_SSD1306.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266HTTPClient.h> #include <ArduinoJson.h> #define SCREEN_WIDTH 128 // OLED 显示器宽度 #define SCREEN_HEIGHT 64 // OLED 显示器高度 // OLED 显示器连接 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // WiFi 连接信息 const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; // 开放天气 API 信息 const char* serverName = "http://api.openweathermap.org/data/2.5/weather?q=YOUR_CITY&appid=YOUR_API_KEY&units=metric"; const char* apiKey = "YOUR_API_KEY"; void setup() { Serial.begin(9600); delay(1000); // OLED 显示器初始化 if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); } display.clearDisplay(); // WiFi 连接 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // 获取天气信息 getWeatherData(); } void loop() { display.clearDisplay(); // 显示天气信息 display.setTextSize(2); display.setCursor(0, 0); display.println("Weather in YOUR_CITY:"); display.setTextSize(3); display.setCursor(0, 20); display.print(weatherMain); display.setCursor(0, 50); display.print(weatherTemp); display.print("C"); display.display(); delay(10000); } String weatherMain; String weatherTemp; void getWeatherData() { if(WiFi.status() == WL_CONNECTED) { HTTPClient httpClient; httpClient.begin(serverName); int httpResponseCode = httpClient.GET(); if(httpResponseCode == 200) { String payload = httpClient.getString(); DynamicJsonDocument doc(1024); deserializeJson(doc, payload); weatherMain = doc["weather"][0]["main"].as<String>(); weatherTemp = doc["main"]["temp"].as<String>(); } else { Serial.println("Error getting weather data"); } httpClient.end(); } else { Serial.println("WiFi not connected"); } } ``` 请注意,这个示例代码是仅供参考。您需要将 `YOUR_SSID`,`YOUR_PASSWORD`,`YOUR_CITY` 和 `YOUR_API_KEY` 替换为您自己的信息。此外,您可能需要更改 OLED 显示器的连接方式和引脚。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值