ESP8266 คืออะไร

                 ESP8266 (อีเอสพี8266) เป็นโมดูล WiFi (ไวไฟ) ชนิดหนึ่งที่สามารถทำหน้าที่สามารถใช้งานในโหมด AccessPoint (แอคเสสพอยท์) และโหมด station (สเตชั่น) ได้  เมื่อนำมารวมกับเจ้าตัว Node MCU (โหนด เอมซียู) จึงกลายเป็น Node MCU ESP8266 (โหนด เอมซียู อีเอสพี8266)  ซึ่งทำให้เป็นโมดูล ไวไฟ ที่สามารถโปรแกรมลงไปได้จึงทำให้สะดวกในการเป็น microcontroler (ไมโครคอนโทรลเลอร์) และ ไวไฟโมดูล  ซึ่งจากคุณสมบัตินี้จึงทำให้เหมาะแก่การทำงานในด้าน IOT (ไอโอที)  นอกจากนี้เจ้าตัว Node MCU ESP8266 ยังสามารถใช้โปรแกรมในการเขียนได้หลายภาษา เช่น ภาษา ไพธอน จาวาสคริปท์  C (ซี)   ยิ่งทำให้สะดวกในการใช้บอร์ดขึ้นไปอีก แถมข้อมูลโมดูลเสริมยังมีมากมายอีกด้วยเรียกได้ว่า ครบเครื่องกันเลยทีเดี่ยว

                   

ESP8266 (อีเอสพี8266) กับการรับข้อมูลเวลา                       

                          การใช้ ESP8266(อีเอสพี8266) นั้นไม่มีโมดูลสำหรับดูเวลาได้ แต่เราสามารถใช้ความสารถของโมดูลไวไฟเพื่อดึงเวลามาจาก server(เซอเว่อ) ที่ให้บริการได้แบบฟรีๆ โดยชื่อ server นี้ชื่อ ntp server โดยอย่างแรกนั้นเราต้องมี ตัวกระจายไวไฟ อยู่ใกล้ๆเราก่อนเช่น ไวไฟบ้าน ไวไฟมือถือ ที่เรามีรหัสผ่าน โดยที่ไม่ได้ใข้การล๊อกอินหน้าเวบในการใช้งาน เเพียงเท่านี้เราก็พร้อมที่จะทำให้ Node MCU  ESP8266(โหนด เอมซียู อีเอสพี8266) แสดงเวลาจริงในประเทศไทย ไ๊ด้แล้ว                                                                                                       

วิธีการทำ 1. ให้ใส่โค้ดหล่านี้ลงไปในโปรแกรมที่เป็น serial monitor(ซีเรียลมอนอเตอร์) ของเราเพื่อคอนเนคไวไฟ                                                                               

# -*- coding: utf-8 -*-
import network
import time
sta_if = network.WLAN(network.STA_IF) #object from network
sta_if.active(True)#open station mode
sta_if.connect("ssid","password") #connect wifi ssidคือชื่อไวไฟ password คือรหัสผ่านไวไฟ
sta_if.ifconfig() # ip,netmask,gateway,DNS
time.sleep(5)
sta_if.isconnected()#check connecting

 2. ต่อมาให้เราใส่โค้ดนี้เพื่อเชื่อมต่อกับ ntp-server                                                                                                                                    

try:
    import usocket as socket
except:
    import socket
try:
    import ustruct as struct
except:
    import struct

# (date(2000, 1, 1) - date(1900, 1, 1)).days * 24*60*60
NTP_DELTA = 3155673600

host = "th.pool.ntp.org"

def time():
    NTP_QUERY = bytearray(48)
    NTP_QUERY[0] = 0x1b
    addr = socket.getaddrinfo(host, 123)[0][-1]
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.settimeout(1)
    res = s.sendto(NTP_QUERY, addr)
    msg = s.recv(48)
    s.close()
    val = struct.unpack("!I", msg[40:44])[0]
    return val - NTP_DELTA

# There's currently no timezone support in MicroPython, so
# utime.localtime() will return UTC time (as if it was .gmtime())
def settime():
    t = time()
    import machine
    import utime
    tm = utime.localtime(t)
    tm = tm[0:3] + (0,) + tm[3:6] + (0,)
    machine.RTC().datetime(tm)
    print(utime.localtime())
    ThTime =  utime.localtime()
    if (18<=ThTime[3]<=23):
      ThTime[3] = ThTime[3]-24
      
    print("เวลาในไทย = ",ThTime[3]+7,".",ThTime[4],".",ThTime[5],"น.")

3.กด run ใน ซีเรียลมอนิเตอร์จะได้ดังนี้ก็จะปรากฏ ip,netmask,gateway,DNS และข้อความ True                                                                       

 4.ถ้าหากเราจะเรียกดูเวลา เราก็สามารถ ใช้คำสั่ง settime() ดูเวลาได้เลย

 

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

References    ว

                            

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
5
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
10
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
41
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
163
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
185
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
140
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women
Unsurpassed Сasual Dating - True Females
โดย pongsu1968 ศ 12 เม.ย. 2024 5:47 am บอร์ด Microsoft Office Knowledge & line & Etc
0
160
ศ 12 เม.ย. 2024 5:47 am โดย pongsu1968 View Topic Unsurpassed Сasual Dating - True Females
Question Tag ใช้อย่างไรในภาษาอังกฤษ
โดย internTk21 พฤ 11 เม.ย. 2024 10:46 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
83
พฤ 11 เม.ย. 2024 10:46 pm โดย internTk21 View Topic Question Tag ใช้อย่างไรในภาษาอังกฤษ