Node-red獲取實(shí)時(shí)天氣數(shù)據(jù)

第一步:在節(jié)點(diǎn)管里下載“weather”揩魂,并安裝,如下圖:


image.png

第二步:在側(cè)邊欄找到“weather”并拖入流程炮温,如下圖:


image.png

第三步:在流程中拖入“function”火脉,并寫入以下代碼,如下圖:
let code;
code = msg.payload.current.weather;
        switch(code) {
        case '0':
            status = '晴'
            break;
        case '1':
            status = '多云'
            break;
        case '2':
            status = '陰'
            break;
        case '3':
            status = '陣雨'
            break;
        case '4':
            status = '雷陣雨'
            break;
        case '5':
            status = '雷陣雨并伴有冰雹'
            break;
        case '6':
            status = '雨夾雪'
            break;
        case '7':
            status = '小雨'
            break;
        case '8':
            status = '中雨'
            break;
        case '9':
            status = '大雨'
            break;
        case '10':
            status = '暴雨'
            break;
        case '11':
            status = '大暴雨'
            break;
        case '12':
            status = '特大暴雨'
            break;
        case '13':
            status = '陣雪'
            break;
        case '14':
            status = '小雪'
            break;
        case '15':
            status = '中雪'
            break;
        case '16':
            status = '大雪'
            break;
        case '17':
            status = '暴雪'
            break;
        case '18':
            status = '霧'
            break;
        case '19':
            status = '凍雨'
            break;
        case '20':
            status = '沙塵暴'
            break;
        case '21':
            status = '小雨轉(zhuǎn)中雨'
            break;
        case '22':
            status = '中雨轉(zhuǎn)大雨'
            break;
        case '23':
            status = '大雨轉(zhuǎn)暴雨'
            break;
        case '24':
            status = '暴雨轉(zhuǎn)大暴雨'
            break;
        case '25':
            status = '大暴雨轉(zhuǎn)特大暴雨'
            break;
        case '26':
            status = '小雪轉(zhuǎn)中雪'
            break;
        case '27':
            status = '中雪轉(zhuǎn)大雪'
            break;
        case '28':
            status = '大雪轉(zhuǎn)暴雪'
            break;
        case '29':
            status = '浮沉'
            break;
        case '30':
            status = '揚(yáng)沙'
            break;
        case '31':
            status = '強(qiáng)沙塵暴'
            break;
        case '32':
            status = '颮'
            break;
        case '33':
            status = '龍卷風(fēng)'
            break;
        case '34':
            status = '若高吹雪'
            break;
        case '35':
            status = '輕霧'
            break;
        case '53':
            status = '霾'
            break;
        case '99':
            status = '未知'
            break;
        default:
            status = '無(wú)數(shù)據(jù)'
            break;
        }
return msg;

第四步:在流程中拖入“debug”柒啤,用于監(jiān)測(cè)調(diào)試窗口倦挂,如下圖:


image.png

第五步:在流程中拖入“l(fā)ink in”、“l(fā)inkout”用于做輸入輸出鏈接担巩,如下圖:


image.png

第六步:根據(jù)需要顯示的數(shù)據(jù)方援,在流程中拖入“function”,標(biāo)注相對(duì)應(yīng)的功能涛癌,這里我做的比較全面犯戏,依次按照順序代碼如下:
1,獲取天氣類型:
var result = {
    payload: ""
}

var tq = msg.payload.current.weather;
switch(tq) {
case '0':
    result.payload = '晴'
    break;
case '1':
    result.payload = '多云'
    break;
case '2':
    result.payload = '陰'
    break;
case '3':
    result.payload = '陣雨'
    break;
case '4':
    result.payload = '雷陣雨'
    break;
case '5':
    result.payload = '雷陣雨并伴有冰雹'
    break;
case '6':
    result.payload = '雨夾雪'
    break;
case '7':
    result.payload = '小雨'
    break;
case '8':
    result.payload = '中雨'
    break;
case '9':
    result.payload = '大雨'
    break;
case '10':
    result.payload = '暴雨'
    break;
case '11':
    result.payload = '大暴雨'
    break;
case '12':
    result.payload = '特大暴雨'
    break;
case '13':
    result.payload = '陣雪'
    break;
case '14':
    result.payload = '小雪'
    break;
case '15':
    result.payload = '中雪'
    break;
case '16':
    result.payload = '大雪'
    break;
case '17':
    result.payload = '暴雪'
    break;
case '18':
    result.payload = '霧'
    break;
case '19':
    result.payload = '凍雨'
    break;
case '20':
    result.payload = '沙塵暴'
    break;
case '21':
    result.payload = '小雨轉(zhuǎn)中雨'
    break;
case '22':
    result.payload = '中雨轉(zhuǎn)大雨'
    break;
case '23':
    result.payload = '大雨轉(zhuǎn)暴雨'
    break;
case '24':
    result.payload = '暴雨轉(zhuǎn)大暴雨'
    break;
case '25':
    result.payload = '大暴雨轉(zhuǎn)特大暴雨'
    break;
case '26':
    result.payload = '小雪轉(zhuǎn)中雪'
    break;
case '27':
    result.payload = '中雪轉(zhuǎn)大雪'
    break;
case '28':
    result.payload = '大雪轉(zhuǎn)暴雪'
    break;
case '29':
    result.payload = '浮沉'
    break;
case '30':
    result.payload = '揚(yáng)沙'
    break;
case '31':
    result.payload = '強(qiáng)沙塵暴'
    break;
case '32':
    result.payload = '颮'
    break;
case '33':
    result.payload = '龍卷風(fēng)'
    break;
case '34':
    result.payload = '若高吹雪'
    break;
case '35':
    result.payload = '輕霧'
    break;
case '53':
    result.payload = '霾'
    break;
case '99':
    result.payload = '未知'
    break;
default:
    result.payload = '無(wú)數(shù)據(jù)'
    break;
}

return result;

2拳话,獲取體感溫度:

var result = {
    payload: msg.payload.current.feelsLike.value
}
return result; 

3先匪,獲取當(dāng)前溫度:

var result = {
    payload: msg.payload.current.temperature.value
}
return result; 

4,獲取當(dāng)前濕度:

var result = {
    payload: msg.payload.current.humidity.value
}
return result;

5呀非,獲取當(dāng)前氣壓:

var result = {
    payload: msg.payload.current.pressure.value
}
return result;

6猖败,獲取當(dāng)前風(fēng)速:

var result = {
    payload: msg.payload.current.wind.speed.value
}
return result;

7恩闻,獲取當(dāng)前空氣質(zhì)量:

var result = {
    payload: msg.payload.aqi.aqi
}
return result;

8,獲取當(dāng)前PM2.5:

var result = {
    payload: msg.payload.aqi.pm25
}
return result;

9侠草,獲取未來(lái)14天的氣溫狀態(tài):

var payload = [{
    "series": ["最低溫度", "最高溫度"],
    "data": [
//        [{ "x": 1504029632890, "y": 50 },
//         { "x": 1504029636001, "y": 40 },
//         { "x": 1504029638656, "y": 20 },
//         { "x": 1504029640666, "y": 20 }
//        ],
//        [{ "x": 1504029633514, "y": 6 },
//         { "x": 1504029636622, "y": 7 },
//         { "x": 1504029639539, "y": 6 }
//        ]
    ],
    "labels": []
}];
var lTemp = [];
var hTemp = [];

var values = msg.payload.forecastDaily.temperature.value;
var date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
var x = date.getTime();
for(var i in values) {
    lTemp.push({
        "x": x,
        "y": values[i]['to']
    });
    hTemp.push({
        "x": x,
        "y": values[i]['from']
    });
    x = new Date(x + 24 * 60 * 60 * 1000).getTime();
}
payload[0].data.push(lTemp);
payload[0].data.push(hTemp);

return {
    'payload': payload
};

10褂微,獲取PM10:

var result = {
    payload: msg.payload.aqi.pm10
}
return result;

11宠蚂,獲取一氧化碳CO:

var result = {
    payload: msg.payload.aqi.co
}
return result;

12:獲取二氧化氮NO2:

var result = {
    payload: msg.payload.aqi.co
}
return result;

13:獲取臭氧O3:

var result = {
    payload: msg.payload.aqi.o3
}
return result;

14:獲取二氧化硫SO2:

var result = {
    payload: msg.payload.aqi.so2
}
return result;

15:獲取數(shù)據(jù)來(lái)源:

var result = {
    payload: msg.payload.aqi.src
}
return result;

第七步:如果還想對(duì)一些獲取到的數(shù)據(jù)進(jìn)行進(jìn)一步的說(shuō)明,可以參考調(diào)試窗口的一些信息呀癣,如下圖:


image.png

第八步:在流程里鏈接相應(yīng)的模塊,如下圖:


image.png

第九步:進(jìn)入U(xiǎn)I界面,看一下效果列另,具體的一些表現(xiàn)方式還可以根據(jù)自己的實(shí)際需要調(diào)整,我做的如下圖拷姿,以供參考:
image.png

以上僅為個(gè)人參考網(wǎng)絡(luò)上眾多資料的一些實(shí)施操作描滔。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拘泞,隨后出現(xiàn)的幾起案子陪腌,更是在濱河造成了極大的恐慌,老刑警劉巖参滴,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝌箍,死亡現(xiàn)場(chǎng)離奇詭異十绑,居然都是意外死亡本橙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)暇唾,“玉大人瘸味,你說(shuō)我怎么就攤上這事旁仿。” “怎么了尘奏?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵琢感,是天一觀的道長(zhǎng)驹针。 經(jīng)常有香客問(wèn)我柬甥,道長(zhǎng)绿满,這世上最難降的妖魔是什么漏健? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任蔫浆,我火速辦了婚禮瓦盛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好弄匕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布城丧。 她就那樣靜靜地躺著亡哄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灵临。 梳的紋絲不亂的頭發(fā)上截型,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天宦焦,我揣著相機(jī)與錄音睁搭,去河邊找鬼。 笑死锌唾,一個(gè)胖子當(dāng)著我的面吹牛痛悯,可吹牛的內(nèi)容都是我干的载萌。 我是一名探鬼主播乖坠,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了和泌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤祠肥,失蹤者是張志新(化名)和其女友劉穎武氓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仇箱,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡县恕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剂桥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忠烛。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖权逗,靈堂內(nèi)的尸體忽然破棺而出美尸,到底是詐尸還是另有隱情冤议,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布师坎,位于F島的核電站恕酸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胯陋。R本人自食惡果不足惜蕊温,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遏乔。 院中可真熱鬧寿弱,春花似錦、人聲如沸按灶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鸯旁。三九已至,卻和暖如春量蕊,著一層夾襖步出監(jiān)牢的瞬間铺罢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工残炮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留韭赘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓势就,卻偏偏與公主長(zhǎng)得像泉瞻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苞冯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容