[Ethernet shield IoT #4] Arduino Ethernet Shield IoT Web Client [ Sunrise/Sunset Time -> Open/Close Light ]

Easy IoT With Arduino
Technologies For Everyone
2 min readApr 21, 2017

ในบทความนี้เราจะมาลองใช้ Ethernet Shield เพื่อดึงข้อมูล เวลาพระอาทิตย์ขึ้น/ตก และ เวลาปัจจุบัน โดยใช้ API ของ Website

ขั้นตอนแรก ให้เราสมัครบริการเว็บไซต์นี้ก่อนนะครับ เพื่อรับ API Key ของเรา

โดยเรื่องการสมัครและการใช้การเบื้องต้น สามารถดูได้ ตามลิงค์นี้
LINK : https://goo.gl/uQWTtn
และ Sketch ของโปรแกรมสามารถ Download ได้ในลิงค์ข้างล่าง
Download Sketch : https://pastebin.com/JsbxWiyu

อธิบาย Code :

Function getTime()
เป็นฟังก์ชั่นดึงเวลาปัจจุบัน โดยเราเลือกใช้ API ของ Website Convert-unix-time ซึ่งเป็น API ที่เปิดให้ใช้งานฟรี(ไม่ต้องสมัคร)

Function getSunTime()
เป็นฟังก์ชั่นดึงเวลาพระอาทิตย์ขึ้น/ตก ในพื้นที่จังหวัดเชียงใหม่(หากต้องการเปลี่ยนพื้นที่สามารถศึกษาได้ในบทความที่แล้ว ลิงค์ด้านบน)

Main Loop
ในส่วนของ Loop นั้น เราเรียกใช้ฟังก์ชั่นทั้งสองด้านบน แล้วในส่วนของ if นั้น เรานำค่าที่จากฟังก์ชั่น มาเข้าเงื่อนไข if คือ หากเวลาปัจจุบันของเรานั้น มากกว่าเวลาพระอาทิตย์ขึ้น และ น้อยกว่าพระอาทิตย์ตก ของวันนั้นๆ คือเราอยู่ในช่วงกลางวันนั่นเอง เราก็จะสั่งให้ ปิดไฟ แต่ถ้าหากไม่ใช่(ตอนกลางคืน) ให้เปิดไฟ

เมื่อ Download Sketch ลง Arduino แล้ว ลองเปิด Moniter ดูจะพบหน้าตาดังนี้

จะเห็นว่า เวลาที่เราได้มานั้นคือเวลารูปแบบ Unix-Timestamp
( ศึกษาต่อได้ที่ : http://www.unixtimestamp.com )
จากรูปได้ผลลัพธ์คือ
เวลาพระอาทิตย์ขึ้น : 04/20/2017 @ 10:56pm (UTC)
เวลาพระอาทิตย์ตก : 04/21/2017 @ 11:26am (UTC)
เวลาปัจจุบัน : 04/21/2017 @ 12:06pm (UTC)

ซึ่งจะเห็นว่าเวลาปัจจุปันนั้น เลยเวลาพระอาทิตย์ตกมาแล้ว จึงได้ผลลัพธ์ว่าเป็นเวลากลางคืน จึงทำให้ ไฟติด

หากนำไปควบคุมไฟฟ้า 220 V ให้ใช้ Relay ในการแยกวงจร ดูตัวอย่างโปรเจคเกี่ยวกับ Relay ได้ที่ : https://goo.gl/25LkzI

พวกเราหวังว่า บทความต่อไปนี้จะมีประโยชน์แก่ทุกๆท่าน ขอบคุณครับ

--

--