ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

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    ว

                            

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ฟอร์มรับเงิน Omise เราสามารถเปลี่ยน logo ได้มั้ยคะ
โดย thatsawan ศ 03 ก.ค. 2020 6:03 pm บอร์ด Programming - PHP
0
10
ศ 03 ก.ค. 2020 6:03 pm โดย thatsawan
input type="date" ไม่เเสดงเป็นปฎิทินวันที่ให้ใน safari แก้ไขยังไงคะ
โดย thatsawan พฤ 02 ก.ค. 2020 2:31 pm บอร์ด HTML CSS
0
37
พฤ 02 ก.ค. 2020 2:31 pm โดย thatsawan
การสร้าง bot messenger ของ facebook โดยใช้ pymessenger
โดย jirawoot พฤ 02 ก.ค. 2020 1:44 pm บอร์ด Python Knowledge
0
38
พฤ 02 ก.ค. 2020 1:44 pm โดย jirawoot
Q - ทดลองทำเอกสารยื่นแบบผ่านเน็ตแล้ว ไฟล์ txt ใช้ไม่ได้
โดย natthanit.r2538 พ 01 ก.ค. 2020 4:59 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
3
53
พ 01 ก.ค. 2020 5:41 pm โดย natthanit.r2538
สรุปการยื่นแบบภาษีออนไลน์
โดย natthanit.r2538 อ 30 มิ.ย. 2020 5:32 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
51
อ 30 มิ.ย. 2020 7:18 pm โดย natthanit.r2538
หลักการคิดค่าคอมมิชชั่น และวิธีการคิด รายได้จาก Commission
โดย natthanit.r2538 อ 30 มิ.ย. 2020 11:31 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
49
อ 30 มิ.ย. 2020 11:31 am โดย natthanit.r2538
MJUpgrade อัพเกรดไม่สำเร็จ Error: zip file not found
โดย chaiyaphat ศ 26 มิ.ย. 2020 11:01 am บอร์ด Joomla Development
3
503
ศ 26 มิ.ย. 2020 1:24 pm โดย mindphp
ตั้งค่าใช้ Email ใน phpbb เเล้ว ไม่ทำงาน
โดย thatsawan พฤ 25 มิ.ย. 2020 5:37 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
5
96
ส 27 มิ.ย. 2020 4:43 pm โดย thatsawan
เจอปัญหาตอนทำรายการ Omise เป็นบางครั้ง Error Uncaught OmiseInvalidChargeException
โดย thatsawan พฤ 25 มิ.ย. 2020 3:56 pm บอร์ด Programming - PHP
2
68
จ 29 มิ.ย. 2020 5:29 pm โดย thatsawan
ต้องการจะสร้างไฟล์ HTML เเต่นำค่า php ไป HTML โดย Twig เขียนใน phpbb จะทำยังไงคะ
โดย thatsawan พ 24 มิ.ย. 2020 5:45 pm บอร์ด Programming - PHP
3
71
พฤ 25 มิ.ย. 2020 3:49 pm โดย Sirayu
ถ้าเราต้องการแสดงค่าตอน onchange ใน option ที่มี value มากกว่า 1
โดย thatsawan อ 23 มิ.ย. 2020 12:51 pm บอร์ด JavaScript & Jquery Ajax
2
125
อ 23 มิ.ย. 2020 3:01 pm โดย thatsawan
4 จุดเช็คอิน เกาะล้าน ยอดฮิต
โดย A2d จ 22 มิ.ย. 2020 10:44 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
72
ส 27 มิ.ย. 2020 12:01 am โดย A2d
ต้องการจะเปลี่ยนคำปุ่ม omise จาก Pay with Omise เป็นคำที่เรากำหนดขึ้นเอง
โดย thatsawan จ 22 มิ.ย. 2020 5:18 pm บอร์ด PHP Knowledge
2
103
จ 22 มิ.ย. 2020 5:39 pm โดย thatsawan
สาเหตุที่เด็กทารกแพ้นมวัว คุณแม่จะรับมือปัญหานี้อย่างไรดี
โดย medalezga จ 22 มิ.ย. 2020 1:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
62
จ 22 มิ.ย. 2020 1:58 pm โดย medalezga
ไม่เข้าใจคำสั่ง preg_replace
โดย profess79 ส 20 มิ.ย. 2020 11:56 am บอร์ด Programming - PHP
1
103
ส 20 มิ.ย. 2020 6:19 pm โดย profess79
วิธีการทำทศนิยม 3 ตำแหน่ง ด้วย python
โดย bolue ศ 19 มิ.ย. 2020 4:49 pm บอร์ด Python Knowledge
0
78
ศ 19 มิ.ย. 2020 4:49 pm โดย bolue
วิธีการ เพิ่มข้อมูล ลงฐานข้อมูล พร้อม รีเทิร์น id กลับมา ด้วยคำสั่ง sql
โดย bolue ศ 19 มิ.ย. 2020 3:25 pm บอร์ด SQL Knowledge
0
547
ศ 19 มิ.ย. 2020 3:25 pm โดย bolue
เจอปัญหา ส่งเมลผิดพลาด : Language string failed to load: from_failed บน phpmailer
โดย mindphp ศ 19 มิ.ย. 2020 3:26 am บอร์ด Programming - PHP
2
1434
ศ 19 มิ.ย. 2020 5:47 pm โดย mindphp
กฎหมายที่ใช้ควบคุมโรค โควิด-19 ฝ่าฝืนได้รับโทษอย่างไรบ้าง?
โดย Decha Thaweeumanjvaroj พฤ 18 มิ.ย. 2020 10:17 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
100
พฤ 18 มิ.ย. 2020 10:17 am โดย Decha Thaweeumanjvaroj
ไม่สามารถ start openerp-server ของ openerp 7 ได้
โดย bolue พฤ 18 มิ.ย. 2020 10:09 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
10
171
ศ 19 มิ.ย. 2020 12:49 pm โดย bolue