วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558

Node-RED : รับสภาวะอากาศจาก openweathermap

 

Openweathermap เป็น node บริการข้อมูล ที่อัพเดทข้อมูลชองสภาพอากาศขณะเวลาปัจจุบัน จากสิ่งที่การระบุ เช่น ชื่อเมืองและประเทศ หรือ ตำแหน่งละติจูด ลองจิจูด

openweathermap จะส่งข้อมูลกลับคืนมาให้เลือกใช้ ได้แก่

ข้อมูล msg.payload

ลักษณะอากาศเป็นคำพูดง่าย (description)
ลักษณะอากาศแบบสั้นๆ (weather)
คำขยายความ (detail)
อุณหภูมิเป็นองศาเคลวิน (tempk)
อุณหภูมิเป็นองศาเซลเซียส (tempc) 
ความชื้น (humidity)
อุณหภูมิสูงสุดเป็นองศาเคลวิน (maxtemp)
อุณหภูมิต่ำสุดเป็นองศาเคลวิน (mintemp)
ความเร็วลม (windspeed)
ทิศทางลม (winddirection)
ชื่อเมือง (town)
เวลาพระอาทิตย์ขึ้น (sunrise)
เวลาพระอาทิตย์ตก (sunset)

ข้อมูล msg.location

เส้นละติจูด (lat)
เส้นลองจิจูด (lon)
ชื่อเมือง (city)
ชื่อประเทศ (country)

ข้อมูล msg.time แสดงเวลาที่รับข้อมูลจาก openweathermap.org

ข้อมูล msg.data ขีอมูลทั้งหมดในรูปแบบ JSON

image

สร้าง Node-RED อ่านค่าอุณหภูมิเป็นองศาเซลเซียส แสดงที่ debug ทุกๆ 10 นาที สามารถปรับให้ส่งเข้า tweeter หรือช่องทางอื่นๆได้ ให้ศึกษาจากโพสต์ที่ผ่านมา

inject

Payload : blank
Topic:
Repeat: interval, every 10 minnutes, ติ๊กถูกที่ Inject once at start?
Name:

openweathermap

Name:
Location: City,
     City: Bangkok,
     Country: Thailand

function

Name:
Function:
1    msg.payload = msg.payload.tempc;
2    return msg;
Outputs: 1

debug

Output: message property,
     msg.payload
to: debug tab
Name: tempc

ทำการ Deploy จากนั้นเปิดดูที่แท๊บ debug จะเห็นค่าอุณหภูมิของกรุงเทพที่ได้เลือกไว้

image

ทดลองนำข้อมูลอื่นๆแทนที่ tempc ใน function node จะเห็นว่าค่าที่แสดงไม่ได้บ่งบอกว่าคืออะไร ซึ่งเราสามารถจัดเรียงรูปแบบการนำเสนอใน template node ก่อนส่งไปแสดงที่ debug หรือส่งไปที่ช่องทางอื่นๆได้ เรื่องของ template เคยกล่าวไว้แล้วในโพสต์ก่อนหน้านี้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น