五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ESP8266簡易WIFI天氣時(shí)鐘

2022-05-23 23:08 作者:碼農(nóng)愛學(xué)習(xí)-B站  | 我要投稿

本篇介紹了如何使用ESP8266,通過WIFI連網(wǎng)獲取網(wǎng)絡(luò)天氣和網(wǎng)絡(luò)時(shí)間,然后借助U8g2庫,在OLED上顯示當(dāng)前時(shí)間和天氣信息。

1 HTTP獲取網(wǎng)絡(luò)天氣

連網(wǎng)獲取網(wǎng)絡(luò)天氣,一般需要通過http的方式,從天氣信息提供商的網(wǎng)絡(luò)地址獲取天氣信息。

1.1 注冊開發(fā)者key

這里以心知天氣為例,需要先注冊一個(gè)開發(fā)者賬號,然后獲取自己的私鑰,也就是等下要用到的key。


然后可以先在瀏覽器中輸入如下鏈接,注意要將自己的key替換進(jìn)去,然后就可以測試一下天氣信息的獲取情況。

如下即為獲取的天氣信息,是json格式的:

1.2 http請求基本原理

上面先通過瀏覽器的方式獲取到了天氣信息,而ESP8266沒有瀏覽器功能,需要編寫代碼實(shí)現(xiàn)http數(shù)據(jù)請求。

在編寫代碼之前,需要先了解一下基礎(chǔ)的http請求原理。

url全稱是資源描述符,一個(gè)url地址,用于描述一個(gè)網(wǎng)絡(luò)上的資源,而http中的get、post、put、delete就對于著這個(gè)資源的查、改、增、刪4個(gè)操作,get一般用于獲取/查詢資源信息。

url的格式: 【協(xié)議】://【主機(jī)名(或者叫域名)】【:端口號(可選)】/【文件路徑】/【文件名】

例如:


  • 協(xié)議:https

  • 域名:api.seniverse.com

客戶端發(fā)送一個(gè)HTTP請求到服務(wù)器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)四個(gè)部分組成,下圖給出了請求報(bào)文的一般格式。

服務(wù)器HTTP響應(yīng)也由四個(gè)部分組成,分別是:狀態(tài)行、消息報(bào)頭、空行和響應(yīng)正文。

根據(jù)http協(xié)議,可以編寫ESP8266進(jìn)行http請求的代碼:

1.3 json數(shù)據(jù)解析

http請求獲取到的天氣數(shù)據(jù)是json格式的,需要對數(shù)據(jù)進(jìn)行解析,獲取到具體的天氣和溫度等數(shù)據(jù)。

可以將獲取的json原始數(shù)據(jù)打印出來,方便確認(rèn)程序是否獲取到的天氣數(shù)據(jù)。

具體代碼如下:

原始json格式的天氣數(shù)據(jù)和解析后的天氣和溫度數(shù)據(jù)如下:

天氣現(xiàn)象代碼對照表

解析到的天氣數(shù)據(jù),除了英文形式的天氣信息(text),還有一個(gè)對應(yīng)的天氣碼(code),如上圖的Cloudy對應(yīng)的天氣碼是4。通過天氣碼,也可以轉(zhuǎn)換為天氣。天氣碼的對照表可參考心知天氣文檔:https://docs.seniverse.com/api/start/code.html

簡化起見,這里只使用常用的4種天氣。

代碼中文英文0晴(國內(nèi)城市白天晴)Sunny4多云Cloudy9陰Overcast13小雨Light Rain0

2 NTP網(wǎng)絡(luò)時(shí)間

NTP(Network Time Protocol) 是網(wǎng)絡(luò)時(shí)間協(xié)議,它是用來同步網(wǎng)絡(luò)中各個(gè)計(jì)算機(jī)時(shí)間的協(xié)議。

ESP8266可以連網(wǎng),那就也可以通過獲取網(wǎng)絡(luò)時(shí)間來得到當(dāng)前的時(shí)間:

3 OLED顯示頁面設(shè)計(jì)

獲取到天氣信息和時(shí)間后,需要將這些信息顯示出來。

這里使用0.96寸OLED顯示屏來顯示,借助U8g2庫,顯示文字與天氣圖標(biāo)(U8g2庫的使用,可參考:https://www.bilibili.com/read/cv15542275)。

具體的顯示代碼如下:


4 最終效果

5 總結(jié)

本篇介紹了http獲取網(wǎng)絡(luò)天氣的基本原理,并通過實(shí)踐,使用ESP8266連網(wǎng)獲取網(wǎng)絡(luò)天氣和網(wǎng)絡(luò)時(shí)間,借助U8g2庫,在OLED上顯示當(dāng)前時(shí)間和天氣信息。


ESP8266簡易WIFI天氣時(shí)鐘的評論 (共 條)

分享到微博請遵守國家法律
石台县| 东方市| 安泽县| 墨玉县| 仁化县| 金川县| 柏乡县| 大埔区| 车险| 禄丰县| 措勤县| 樟树市| 石林| 屏边| 伊吾县| 平远县| 来凤县| 陇西县| 武定县| 阜宁县| 济源市| 旬阳县| 涟源市| 西贡区| 长春市| 洮南市| 麻阳| 石河子市| 讷河市| 敦煌市| 城步| 大荔县| 成都市| 开平市| 上饶市| 巩留县| 宁陕县| 康马县| 平原县| 昌黎县| 平安县|