自制8266桌面小摆件(时间、天气、温度、气压、海拔)-Arduino中文社区 - Powered by Discuz! Archiver

林枫 发表于 2022-4-9 09:17

自制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-4-25 09:55

本帖最后由 林枫 于 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

zhen8 发表于 2022-4-9 11:02

路过~帮顶~

Arduino-008 发表于 2022-4-16 09:39

跟大佬学习一下,sdry_001@126.com,感谢!!!

林枫 发表于 2022-4-22 09:10

Arduino-008 发表于 2022-4-16 09:39
跟大佬学习一下,,感谢!!!

已发邮件

谁是谁的谁 发表于 2022-4-24 21:03

学习一下,,感谢!!871542@qq.com

cqd1688 发表于 2022-4-24 21:53

不错啊!也发一个学习学习!137819301@qq.com

lucq7896 发表于 2022-4-25 06:35

学习学习 请发一下lucq879@163.com

林枫 发表于 2022-4-25 09:43

谁是谁的谁 发表于 2022-4-24 21:03
学习一下,,感谢!!

已发邮件

吕嘉鸣 发表于 2022-5-7 15:55

lvjiaming888888@126.com
页: [1] 2
查看完整版本: 自制8266桌面小摆件(时间、天气、温度、气压、海拔)