自制8266桌面小摆件(时间、天气、温度、气压、海拔)
本帖最后由 林枫 于 2022-5-14 14:30 编辑https://v.youku.com/v_show/id_XNTg1OTYzMDMxMg==.html
本项目完全自制,仅参考官方库的实例,所以对于硬件连接、外壳打印、软件开发完全了解。
本项目在整理相关内容,后续会完全开源,如想尝鲜或自行修改嵌入到其他项目中请留下邮箱,我会分享源码及用到的官方库源码。
本项目涉及以下内容:
1、项目思路
[*]初始化:屏幕、气压计、Wi-Fi连接、时间服务器校准、实时天气、3天天气(无Wi-Fi或无法访问internet或硬件故障时可通过nodemcu flash按键跳过初始化直接进入显示页面)
[*]页面显示:调用Adafruit_SSD1306.h库显示字母,调用Adafruit_GFX.绘制图形
[*]翻页:已时间秒作为基准,设定间隔轮循页面(可通过nodemcu flash按键下一页)
[*]天气:访问和风天气的https协议提供的API,返回json数据后解析温度、湿度、日升日落时间、做高最低气温(当前天气2min更新一次,3天天气10min更新一次,无Wi-Fi时自动跳过天气更新,无internet时10s超时跳过)
[*]气压海拔:bmp280提供温度和气压,通过气压值经过海平面气压换算后得到当前位置海拔(此处海拔受气压影响会有差异)
[*]打印日志:电脑串口打印运行日志,后续会增加sd卡日志存储
[*]固件更新:支持Arduino IDE更新和web更新
2、硬件
[*]esp8266主芯片(nodemcu v1.0方案)
[*]oled屏幕(7针spi0.96寸)
[*]气压计(BMP280四针i2c)
3、外壳
[*]3d one软件设计
[*]3d打印机打印,pla材料
4、源码
[*]引用库
#include <Arduino.h>
#include <time.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <AceTime.h>
using namespace ace_time;
#include <Adafruit_BMP280.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPUpdateServer.h>
#include <Math.h>
#if defined(ESP8266)
#include <ESP8266WiFi.h>
#elif defined(ESP32)
#include <WiFi.h>
#endif
[*]初始化及主程序
void setup() {
Serial.begin(115200);
Serial.println("/********************/");
Serial.printf("BIN-Version: %s",Version);
Serial.println("");
OLED_setup();
display.clearDisplay();
oled_text_print("WIFI/SNTP/BMP setup..",0,4,1);
display.display();
WIFI_setup();
SNTP_setup();
BMP280_setup();
WEB_setup();
delay(2000);
pinMode(0, INPUT_PULLUP);
weather_setup();
}
void loop() {
httpServer.handleClient();
MDNS.update();
time_t now = time(nullptr);
print_Now_time(now+3600*h );
page_switch();
}
源码将近900行,此处全贴上不方便阅读,如有需要请留下邮箱。
未完待续!
本帖最后由 林枫 于 2022-5-14 14:31 编辑
有问题可以在交流群沟通
群号:496429377
已发邮件列表:
sdry_001@126.com
871542@qq.com
137819301@qq.com
lucq879@163.com
lvjiaming888888@126.com
309184637@qq.com
lgj0088@126.com
2979534638@qq.com
路过~帮顶~ 跟大佬学习一下,sdry_001@126.com,感谢!!! Arduino-008 发表于 2022-4-16 09:39
跟大佬学习一下,,感谢!!!
已发邮件 学习一下,,感谢!!871542@qq.com 不错啊!也发一个学习学习!137819301@qq.com 学习学习 请发一下lucq879@163.com 谁是谁的谁 发表于 2022-4-24 21:03
学习一下,,感谢!!
已发邮件 lvjiaming888888@126.com
页:
[1]
2