iot education kit - lite iot education kit iot (internet ... · iot iot education kit - lite 3...

64
IoT IoT Education Kit - Lite 1 IoT Education Kit Lite version IoT (Internet of Things) NodeMCU www.inex.co.th ธีรวุฒิ จิตรพรมมา ชัยวัฒน ลิ้มพรจิตรวิไล

Upload: others

Post on 25-Jan-2020

31 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite1

IoT Education Kit

Lite version

IoT

(Internet of Things)NodeMCU

www.inex.co.th

ธี รวุ ฒิ จิ ตรพรมมา

ชั ยวั ฒน ลิ้ มพรจิ ตรวิ ไล

Page 2: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

2IoTIoT Education Kit - Lite

บทน ํา ...............................................................................................................................................3

บทที ่ 1 แนะน ําอ ุปกรณ IoT Education Kit - Lite ...................................................................................5

บทที ่ 2 การพ ัฒนาโปรแกรมภาษา C/C++ ส ําหร ับ NodeMCU ด วย Arduino IDE ........................13

บทที ่ 3 ต ัวอย างการทดลอง...............................................................................................................21

บทที ่ 4 เชื ่อมต อ NodeMCU ก ับคลาวด เซ ิร ฟเวอร ...........................................................................49

Page 3: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite3

Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั บสิ่ งของ เป นเทคโนโลยี ที่ บ งบอกชั ดเจนว า เป นการน ําอ ินเทอร เน ็ตมาเป นส วนหนึ ่งของสิ ่งของต างๆ ท ําให สิ ่งของถ ูกทํ าให เก ิดความเชื ่อมโยงเชื่ อมต อ แลกเปลี่ ยนข อมู ล สั่ งงาน ควบคุ ม หรื อตรวจสอบได โดยคนหรื อระบบที่ ดู แลการติ ดต อนั้ นจะอยู ที่ ใดก็ ได เพราะการสื่ อสารกั นจะกระทํ าผ านเครื อข ายอิ นเทอร เน็ ต

ในอด ีต การต ิดต อสื ่อสารและควบค ุมอ ุปกรณ ผ านเคร ือข ายพื ้นฐานหร ือ LAN เป นเรื ่องไม ง ายและถ ายิ่ งเป นการสื่ อสารแบบไร สายผ าน WiFi ยิ่ งเป นเรื่ องที่ เมกเกอร หรื อนั กเล น นั กทดลอง ต องใช ความพยายามสู ง บวกกั บอุ ปสรรคใหญ คื อ ราคาของอุ ปกรณ ทํ าให การพั ฒนาอุ ปกรณ IoT กลายเป นเรื่ องถู กจํ ากั ดไว ในวงแคบๆ ของนั กพั ฒนาด านไฮเอ็ นด เท านั้ น

จนกระทั ่งม ีโมด ูล WiFi ราคาถ ูกมากที ่ชื ่อว า ESP8266 เก ิดขึ ้น ท ําให การพ ัฒนาอ ุปกรณ IoTเปลี ่ยนโฉมหน าไปตลอดกาล ก อให เก ิดการตื ่นต ัวในการพ ัฒนาอ ุปกรณ เพื ่อเชื ่อมต อระบบเคร ือข าย WiFiราคาประหย ัดอย างกว างขวางไปทั ้งโลก รวมไปถ ึงความพยายามในการสร างเครื ่องม ือพ ัฒนาโปรแกรมให แก ESP8266 ให ง ายและสะดวกขึ ้น นั ่นจ ึงท ําให เก ิด Arduino IDE for ESP8266 ขึ ้นด วยความง ายของโปรแกรมภาษา C/C++ .ในสไตล Arduino ท ําให ใครๆ ก ็สามารถเข าสู การพ ัฒนาอ ุปรณ เพื ่อเชื ่อมต อเคร ือข าย WiFi ได และต อยอดไปสู การต ิดต อหร ือควบค ุมระบบผ านเคร ือข ายอ ินเทอร เน ็ตได ไม ยาก

ในช ุด IoT Education Kit - Lite ม ีการจ ัดท ําเนื ้อหาของคู ม ือการใช งาน เพื ่อให เข าใจถ ึงแนวทางการพ ัฒนาอ ุปกรณ IoT อย างง ายด วย NodeMCU-12E หร ือ V2 หร ือ V1 Development kit ก ับซอฟต แวร Arduino IDE รุ นพ ิเศษที ่ม ีไลบราร ีรองร ับการท ํางานก ับ NodeMCU และการเชื ่อมต อก ับเคร ือข าย WiFiโดยจะเริ ่มต นจากการแนะน ําให รู จ ักก ับเอ ุปกรณ ที ่ใช ในการเร ียนรู เครื ่องม ือทางซอฟต แวร ที ่ใช ในการพ ัฒนาโปรแกรม การทดลองใช งาน NodeMCU เบื ้องต น ต ัวอย างการทดลองเพื ่อเชื ่อมต อก ับเคร ือข ายWiFi โปรโตคอลที่ ใช ในการสื่ อสารเบื้ องต น รู จั กกั บคลาวด เซิ ฟเวอร การติ ดต อเพื่ อรั บส งข อมู ลจนนํ าไปสู การสร างแอปพลิ เคชั่ นของอุ ปกรณ IoT อย างง ายขึ้ นมาได

คณะผู จั ดทํ าดํ าเนิ นการในแบบ “เล าเท าที่ รู ” และพยายามทํ าให ผู อ านหรื อผู ที่ นํ าไปใช ในการเริ่ มต นเรี ยนรู เข าใจให ได มากที่ สุ ด วั นนี้ เราต องเริ่ มต นนั บหนึ่ งกั บการเรี ยนรู และพั ฒนาอุ ปกรณ IoTแล ว แม ว าในปลายทางจะสามารถเป นผู ผล ิตอ ุปกรณ เพื ่อจํ าหน ายได หร ือไม ก ็ตาม หากแต การที ่รู และเข าใจจะช วยให อย างน อยเราใช งานหรื อดู แลอุ ปกรณ เหล านี้ ได อย างมี ประสิ ทธิ ภาพตามสมควร

Page 4: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

4IoTIoT Education Kit - Lite

Page 5: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite5

IoT Education kit - Lite

ประกอบด วยอุ ปกรณ ต างๆ ดั งนี้

1. NodeMCU-12E มิ นิ บอร ดไมโครคอนโทรลเลอร 32 บิ ตที่ มี WiFi ในตั ว บางครั้ งเรี ยกNodeMCU V2 หรื อ Development Kit V1.0 ขึ้ นกั บผู ผลิ ตแต ละราย โดยมี พื้ นฐานมาจากโมดู ล WiFiคอนโทรลเลอร ESP8266-12E

2. AX-NodeMCU บอร ดอ ินพุ ตเอาต พ ุตสํ าหรั บ NodeMCU-12E

3. ZX-LED บอร ดขั บ LED 8 มม.

4. ZX-DHT11 โมดู ลตั วตรวจจั บความชื้ นสั มพั ทธ และอุ ณหภู มิ

5. สาย microB-USB สํ าหรั บอั ปโหลดโปรแกรมและเชื ่อมต อกั บคอมพ ิวเตอร ผ านพอร ต USB

6. สายเชื่ อมต อและทดลองวงจรรุ น IDC1MF และ IDC1FF แบบละ 10 เส น (คละสี )

7. ไขควงปลายแฉกขนาดเล็ ก

8. เอกสารประกอบการใช งาน (เล มนี้ )

1.1 NodeMCU-12E โมดู ลไมโครคอนโทรลเลอร 32 บิ ตพร อม WiFiเพ่ื อการพั ฒนาอุ ปกรณ IoT

โมด ูล NodeMCU-12E หร ือ V2 หร ือ Development Kit V1.0 (ชื ่อที ่แตกต างนี ้มาจากการเร ียกของผู ผล ิต) นี ้เป นการนํ าโมด ูล ESP8266-12E มาต อร วมก ับช ิปแปลงส ัญญาณ USB เป น UART เบอร CP2102ของ Slilcon Lab (โปรดระวั งของเล ียนแบบจะใช ช ิปเบอร CH340) ม ีสว ิตช เพื ่อเข าสู โหมดโปรแกรมเฟ ร มแวร มาพร อม บรรจ ุรวมก ันอยู บนแผงวงจรขนาดเล ็กที ่ออกแบบมาให ต ิดตั ้งลงบนเบรดบอร ดหร ือแผงต อวงจรได โดยย ังม ีร ูของเบรดบอร ดเหล ือให ต อสายเพื ่อเชื ่อมต อก ับอ ุปกรณ ภายนอกได สะดวก ช วยให การพ ัฒนาต นแบบและการเร ียนรู เกี ่ยวก ับ IoT ท ําได ง ายขึ ้น

คุ ณสมบั ติ ทางเทคนิ คที่ สํ าคั ญ มี ดั งนี้

Page 6: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

6 IoTIoT Education Kit - Lite

ใช โมดู ล ESP8266-12E ที่ ภายในมี ไมโครคอนโทรลเลอร 32 บิ ต หน วยความจํ าแบบแฟลช ความจุ 4 เมกะไบต และวงจร WiFi ในตั ว

ม ีช ิป CP2102 สํ าหร ับแปลงส ัญญาณพอร ต USB เป น UART เพื ่อเช่ื อมต อคอมพ ิวเตอร ส ําหร ับโปรแกรมเฟ ร มแวร (ของเล ียนแบบจะใช ช ิปเบอร CH340)

ใช ไฟเลี้ ยงภายนอก +5V มี วงจรควบคุ มแรงดั นไฟเลี้ ยงสํ าหรั บอุ ปกรณ 3.3V กระแสไฟฟ าสู งสุ ด 800mA

มี ขาพอร ต SPI สํ าหรั บติ ดต อกั บ SD การ ด

มี สวิ ตช RESET และ FLASH สํ าหรั บโปรแกรมเฟ ร มแวร ใหม

มี อิ นพุ ตเอาต พุ ตดิ จิ ตอล (ลอจิ ก 3.3V) รวม 16 ขา

มี อิ นพุ ตอะนาลอก 1 ช อง รั บแรงดั นไฟตรง 0 ถึ ง +3.3Vdc เข าสู วงจรแปลงสั ญญาณอะนาลอก เป นดิ จิ ตอล ความละเอี ยด 10 บิ ต (ที่ อิ นพุ ตมี วงจรแบ งแรงดั น เนื่ องจากอิ นพุ ตอะนาลอกของ ESP8266-12E รั บแรงดั นได เพี ยง 0 ถึ ง 1V จึ งต องมี การต อตั วต านทานเพื่ อช วยลดแรงดั นลงจาก+3.3V ให เหล ือไม เกิ น 1.0V)

เส ียบลงบนเบรดบอร ดเพื ่อท ําการทดลองได ท ันท ี หร ือน ําไปต ิดตั ้งบนแผงวงจรประย ุกต ที ่ออกแบบขึ ้นเองได สะดวก

ร ูปที ่ 1-1 หน าตาของ NodeMCU-12E และการจ ัดขา

Page 7: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite7

1.2 AX-NodeMCU บอร ดอิ นพุ ตเอาต พุ ตส ําหรั บทดลองและใช งาน

โมดู ล NodeMCU-12E เพื่ อการพั ฒนาอุ ปกรณ IoT

ในการใช งานโมด ูล NodeMCU-12E หร ือ V2 หร ือ Development Kit V1.0 ง ายที ่ส ุดก ็เพ ียงเส ียบโมด ูลลงบนเบรดบอร ด แล วต อสายเข าก ับพอร ต USB ของคอมพ ิวเตอร ก ็จะท ําการพ ัฒนาและอ ัปโหลดโปรแกรมได แล ว ด านไฟเลี ้ยงก ็ใช จากพอร ต USB หากต องการใช งานแบบโดยล ําพ ัง จะต องจ ัดหาแหล งจ ายไฟภายนอกเพิ ่มเต ิม ซึ ่งที ่หาได ง ายและสะดวกค ือ เพาเวอร แบงก (power bank) เนื ่องจากให แรงด ัน+5V แล วใช สาย Micro-USB เชื ่อมต อ

อย างไรก็ ตาม หากต องการให โมดู ล NodeMCU-12E ท ํางานกั บแผงวงจรตรวจจั บและอ ุปกรณ อิ นพ ุตเอาต พุ ตของผู ผล ิตที่ มี อยู อย างหลากหลาย การจั ดการขาพอร ตให มี จุ ดต อที่ สะดวกต อการเชื ่อมต อก็ น าจะเป นทางเลื อกที่ ดี ในที่ นี้ แนะนํ าให ใช AX-NodeMCU บอร ดทดลองและเรี ยนรู สํ าหรั บNodeMCU-12E

ร ูปที ่ 1-2 บอร ด AX-NodeMCU สํ าหร ับต ิดตั ้งและใช งานโมด ูล NodeMCU-12E

Page 8: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

8 IoTIoT Education Kit - Lite

1.2.1 คุ ณสมบั ติ ทางเทคนิ คที่ สํ าคั ญ

มี ซ็ อกเก็ ตสํ าหรั บติ ดตั้ งโมดู ล NodeMCU-12E หรื อ V2 หรื อ V1.0 Development kit

ม ีจ ุดต อพอร ตอ ินพ ุตเอาต พ ุตทั ้งหมดของโมด ูล NodeMCU-12E ในร ูปแบบของคอนเน ็กเตอร JST 2.0 มม. ต ัวผู และ IDC 2.54 มม. ทั ้งต ัวผู และต ัวเม ีย ท ําให ใช งานก ับบอร ดอ ินพ ุตเอาต พ ุต และต ัวตรวจจ ับได ท ุกรุ น ท ุกผู ผล ิต รวมถ ึงการใช งานก ับแผงต อวงจรหร ือเบรดบอร ด

พิ มพ ชื่ อ, หมายเลข และฟ งก ชั่ นการทํ างานของขาพอร ตต างไว อย างชั ดเจน

ม ีตั วต านทานปรั บค าได ต ิดตั ้งบนบอร ดสํ าหรั บทดสอบการทํ างานของอ ินพุ ตอะนาลอก ซึ ่งใช งานร วมกั บจุ ดต ออิ นพุ ตอะนาลอก A0 โดยมี จั๊ มเปอร เลื อกต อใช งาน

มี จุ ดต อไฟเลี้ ยงจากภายนอกผ านแจ กอะแดปเตอร พร อมสวิ ตช เป ดป ด

มี LED แสดงสถานะไฟเลี้ ยง

ม ีไดโอดป องก ันการจ ายไฟกล ับขั ้ว และป องก ันแรงด ันย อนกล ับหากต อแหล งจ ายไฟภายนอกพร อมก ับต อพอร ต USB หากม ีการต อพอร ต USB โมด ูล NodeMCU-12E จะร ับไฟเลี้ ยงจากพอร ต USB

1.2.2 วงจรและการทํ างานในร ูปที ่ 2-3 แสดงวงจรของบอร ด AX-NodeMCU เริ ่มจากส วนของไฟเลี ้ยง มาได จาก 2 ทางค ือ

ทาง J1 แจ กอะแดปเตอร และจากพอร ต USB ที ่ม ีบนตั วโมด ูล NodeMCU-12E ในกรณ ีที ่จ ายไฟผ านทางJ1 แรงด ัน +5V (ส ูงส ุดไม เก ิน +5.6V) จะได ร ับการต ัดต อเพื ่อเข าสู วงจรด วยสว ิตช SW1 ม ีไดโอด D1ต อไว เพื ่อป องก ันการจ ายไฟกล ับขั ้ว และใช ป องก ันไม ให แรงด ัน +5V จากพอร ต USB ย อนกล ับเข าไปที ่แหล งจ ายไฟภายนอกด วย C1 และ C2 ช วยลดส ัญญาณรบกวน ส วนการแสดงสถานะไฟเลี ้ยงใช LED1

ซ ็อกเก ็ตส ําหร ับรองร ับต ัวโมด ูล NodeMCU-12E ค ือ K21 ขาพอร ตทั ้งหมดของโมด ูล NodeMCUจะถ ูกต อเข าก ับ K19 และ K20 รวมถ ึง K2 ถ ึง K18 ซึ ่งเป นคอนเน ็กเตอร JST 2.0 มม. 3 ขา โดยจ ัดสรรร วมก ับขาไฟเลี ้ยง +3.3V และกราวด (GND) และม ีต ัวต านทาน R2 ถ ึง R18 ต ออน ุกรมเพื ่อจํ าก ัดกระแสไฟฟ าที ่ไหลผ านขาพอร ต ลดโอกาสที ่ขาพอร ตจะเส ียหายจากการต อไฟเก ินหร ือล ัดวงจร

ส วนอ ินพ ุตอะนาลอก A0 นั ้นจะต อเข าก ับ JP1 เพื ่อเล ือกใช งานในแบบต อก ับแรงด ันอะนาลอกภายนอก หร ือต อก ับแรงด ันที ่ได จากต ัวต านทานปร ับค าได VR1 ที ่ม ีบนแผงวงจร

1.2.3 การนํ าไปใช งาน

หากการใช งานไม ม ีอ ุปกรณ ที ่ต องการกระแสไฟฟ าส ูง การใช ไฟเลี ้ยงจากพอร ต USB น ับเป นทางเล ือกที ่สะดวก โดยต ิดตั ้งโมด ูล NodeMCU-12E แล วต อสายจากพอร ต USB ของคอมพ ิวเตอร หากต ิดตั ้งโปรแกรมและไดรเวอร ไว แล ว ก ็จะใช งานทั ้ง NodeMCU และบอร ด AX-NodeMCU ได ท ันท ี

Page 9: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite9

ร ูปที ่ 1-3 วงจรของ AX-NodeMCU บอร ดอ ินพุ ตเอาต พุ ตส ําหร ับทดลองและใช งานโมด ูล NodeMCU-12E

K1A0

(0-3.3V)

MOD1NodeMCU

V2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

21

20

19

18

17

16

30

29

28

27

26

25

24

23

22

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+3.3V

+5V

+3.3V

FLASHRST

+3.3V

K2D12/SD3

K3D11/SD2

K4SPI_INT/SD1

K5MOSI/CMD

K6MISO/SD0

K7SCLK/CLK

K18D0

K17D1

K16D2

K15D3

K14D4

K13D5

K12D6

K11D7/RxD2

K10D8/TxD2

K9D9/RxD0

K8D10/TxD0

J1DC INPUT

+5V...+5.6V+Vin

C1470/16V

SW1C2

0.1/63V

D11N5819

~5VR11k

LED1ON

JP1ADC

A0

VR

VR110k

K19 K20 K19K20K21

+3.3V

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

R18

R2-R1847 x 17

C30.1/63V

ร ูปที ่ 1-4 แสดงบอร ด AX-NodeMCU ที ่ได ต ิดตั ้งโมด ูลNodeMCU เร ียบร อย พร อมใช งาน

ร ูปที ่ 1-5 แสดงการต อใช งานโมด ูล NodeMCU-12Eและบอร ด AX-NodeMCU กั บคอมพิ วเตอร ผ านพอร ต USB

Page 10: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

10 IoTIoT Education Kit - Lite

1.3 ZX-LED บอร ดขั บ LED

เป นบอร ดอ ุปกรณ เอาต พ ุต ใช ข ับ LED 8 ม ิลล ิเมตร ต องการลอจ ิก “1” ในการข ับ LED ให สว างม ีวงจรแสดงในร ูปที ่ 1-6

1.4 ZX-SWITCH01 บอร ดสวิ ตช อิ นพุ ต 1 ช อง

มี วงจรแสดงในรู ปที ่ 1-7 ประกอบด วยสวิ ตช พร อมไฟแสดงผล ต องการไฟเลี ้ยงในย าน +3 ถึ ง+5V ใช กระแสไฟฟ า 10mA ในการทํ างาน เมื่ อมี การกดสวิ ตช

ให เอาต พุ ตคื อ หากมี การกดสวิ ตช จะส งลอจิ ก “0” (ระดั บแรงดั น 0V) และไฟสี แดงติ ด

Q1KRC102

(DTC114)

R1(Default = 510)

LED1

+

S

ร ูปที ่ 1-6 ร ูปร างและวงจรของ ZX-LED บอร ดข ับ LED

ร ูปที ่ 1-7 ร ูปร างและวงจรของบอร ดสว ิตช อ ินพุ ต 1 ช อง (ZX-SWITCH01)

DATAR3220

R210k

R1510

LED1

S1Switch

Indicator

Signal output

GND

+V

ZX-S

WIT

CH

01 D

Page 11: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite11

1.5 ZX-DHT11 บอร ดวั ดความชื้ นสั มพั ทธ และอุ ณหภู มิ

ZX-DHT11 เป นแผงวงจรขนาดเล ็กที ่บรรจ ุโมด ูลตรวจจ ับและว ัดความช้ื นส ัมพ ัทธ เบอร DHT11ซึ่ งนอกจากจะวั ดความชื้ นสั มพั ทธ ได แล ว ยั งให ค าของอุ ณหภู มิ ของพื้ นที่ ที่ ตรวจวั ดความชื้ นด วยการต ิดต อเป นแบบหนึ ่งสาย นั ่นค ือใช ขาพอร ตของไมโครคอนโทรลเลอร เพ ียง 1 หนึ ่งขาในการท ํางานในรู ปที่ 1-8 แสดงหน าตาของ ZX-DHT11 และการจั ดขา

ZX-DHT11 มี คุ ณสมบั ติ ทางเทคนิ คที่ ควรทราบเพื่ อเป นข อมู ลประกอบในการใช งานดั งนี้

ใช โมดู ล DHT11 ติ ดตั้ งบนแผ นวงจรพิ มพ

ม ีต ัวต านทานต อพ ูลอ ัปที ่ขา DATA ทํ าให เชื ่อมต อก ับขาพอร ตของไมโครคอนโทรลเลอร ได โดยไม ต องต อต ัวต านทานเพิ ่ม

ใช ไฟเลี้ ยง +3 ถึ ง +5.5V ต องการกระแสไฟฟ า 2.5mA

วั ดความชื้ นสั มพั ทธ ได 20 ถึ ง 80%RH มี ความผิ ดพลาด 5%RH และมี ความละเอี ยดในการวั ด 1 % ขนาดของข อมู ล 8 บิ ต

ว ัดอุ ณหภ ูม ิได 0 ถ ึง 50 องศาเซลเซ ียส มี ความผ ิดพลาด 2 องศาเซลเซ ียส ความละเอ ียดในการวั ด 1 องศาเซลเซี ยส ขนาดของข อมู ล 8 บิ ต

อั ตราการสุ มวั ด 1 วิ นาที

ความเร็ วในการตอบสนองต อการเปลี่ ยนแปลงในการวั ด 6 ถึ ง 30 วิ นาที

ขนาด 12 x 28 มิ ลลิ เมตร

ร ูปที ่ 1-8 หน าตาและการจ ัดขาของ ZX-DHT11 บอร ดว ัดความชื ้นส ัมพั ทธ และอ ุณหภ ูม ิหมายเหต ุ : ม ีผู ผล ิตแผงวงจรตรวจจ ับที ่ใช โมด ูล DHT11 หลายราย อาจม ีการจ ัดขาที ่ต างไปจากนี ้ ด ังนั ้นจ ึงควรตรวจสอบต ําแหน งขาให ถ ูกต องก อนเชื ่อมต อเพ่ื อใช งาน

Page 12: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

12 IoTIoT Education Kit - Lite

1.6 สาย JST3AA-8 : สายเชื่ อมต อระหว างบอร ดแบบหั วต อ JST

สาย JST3AA-8 ใช เชื ่อมต อระหว างบอร ด AX-NodeMCU กั บบอร ดอ ุปกรณ ตรวจจ ับและบอร ดแผงวงจรอุ ปกรณ ต างๆ เป นสายแพ 3 เส น ยาว 8 นิ้ ว ปลายสายทั้ งสองด านติ ดตั้ งคอนเน็ กเตอร แบบJST 3 ขา ตั วเมี ย ระยะห างระหว างขา 2 มิ ลลิ เมตร มี การจั ดขาดั งนี้

ระยะหางระหวางขา 2 มม. ระยะหางระหวางขา 2 มม.

GNDS

+5V

เป นสายสั ญญาณที่ ต อกั บแผงวงจร ZX-LED และ ZX-SWITCH01

1.7 สาย IDC1MF สายเชื่ อมต อระหว างบอร ดแบบหั วต อ IDC

เป นสายสั ญญาณส ําหร ับเชื ่อมต อระหว างจุ ดต อขาพอร ตของ NodeMCU ที ่ใช หั วต อแบบ IDCทั้ งตั วผู และตั วเมี ย ยาว 25 ซม. มี ระยะห างของแต ละขาคื อ 2.54 มิ ลลิ เมตร

1.8 สาย microB-USB

เป นสายสั ญญาณสํ าหรั บเชื่ อมต อระหว างพอร ต USB ของคอมพิ วเตอร กั บโมดู ล NodeMCU-12E ยาว 1.5 เมตรโดยประมาณ

Page 13: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite13

การพั ฒนาโปรแกรมเพื่ อใช งาน NodeMCU ทํ าได ด วยโปรแกรมภาษา Lua และ C/C++สํ าหรั บในที่ นี้ เลื อกใช โปรแกรมภาษา C/C++ โดยใช เครื่ องมื อพั ฒนาที่ ได รั บความนิ ยมสู งนั่ นคื อArduino IDE โดยมี นั กพั ฒนาอิ สระชื่ อ Christian Klippel ได เริ่ มต นพั ฒนาเครื่ องมื อที่ ชื่ อว า Esptoolโดยใช ข อมู ลจาก Espressif SDK ที่ พั ฒนาโดย Espressif ผู ผลิ ตโมดู ล ESP8266 จากนั้ น IvanGrokhotkov ชาวร ัสเซ ีย จากเซนต ป เตอร สเบ ิร กได เข ามาสานต อและพ ัฒนาด วยการเพิ ่มคอมไพเลอร สํ าหรั บ NodeMCU ลงใน Arduino IDE ก อให เกิ ดเป น Arduino IDE รุ นพิ เศษ มี ข อมู ลและโปรแกรมให ดาวน โหลดที ่ https://github.com/esp8266/arduinoโดยม ีขั ้นตอนตามปกต ิค ือ ต ิดตั ้ง Arduino IDEเวอร ชั น 1.6.xx (แนะนํ าเวอร ชั น 1.6.4.xxx) ก อน จากนั้ นจึ งผนวกคอมไพเลอร สํ าหรั บ ESP8266 ซึ่ งก็ คื อ อุ ปกรณ หลั กของ NodeMCU ซึ่ งในขั้ นตอนนี้ ต องทํ าการเชื่ อมต อกั บเว็ บไซต ของผู พั ฒนาและดาวน โหลดโปรแกรมลงมาผนวกเข ากั บ Arduino IDE โดยปกติ จะใช เวลานานพอสมควร นอกจากนั ้นในขั ้นตอนการผนวกคอมไพเลอร และไลบราร ีจะต องม ีการแก ไขไฟล ภายในเล ็กน อย จ ึงจะใช งานArduino IDE ในการพั ฒนาโปรแกรมให แก NodeMCU หรื อโมดู ล ESP8266 ทุ กรุ นได

License and credits Arduino IDE is developed and maintained by the Arduino team. The IDEis licensed under GPL.

ESP8266 core includes an xtensa gcc toolchain, which is also underGPL.

Esptool written by Christian Klippel is licensed under GPLv2, currentlymaintained by Ivan Grokhotkov: https://github.com/igrr/esptool-ck.

Espressif SDK included in this build is under Espressif MIT License.

ESP8266 core files are licensed under LGPL.

SPI Flash File System (SPIFFS) written by Peter Andersson is used inthis project. It is distributed under MIT license

Ivan Grokhotkov ผู พ ัฒนาArduino IDE ส ําหร ับโมด ูลESP8266 (ภาพจากhttps://github.com/igrr)

Page 14: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

14IoTIoT Education Kit - Lite

2.1 Arduino IDE 1.6.5R2 for ESP8266/NodeMCU

อย างไรก็ ตาม เพื่ อให เกิ ดความสะดวกมากขึ้ น วิ ศวกรของบริ ษั ท อิ นโนเวตี ฟ เอ็ กเพอริ เมนต จํ ากั ด หรื อ INEX ได ทํ าการสร างไฟล ติ ดตั้ งซอฟต แวร Arduino IDE for ESP8266/NodeMCU ขึ้ นมาใหม เป นไฟล Arduino1.6.5r5_Setup151116.exe (เลขเวอร ชั่ นอาจเปลี่ ยนแปลงได )

โดยต ัดขั ้นตอนการผนวกไฟล และแก ไขไฟล องค ประกอบหล ังจากการต ิดตั ้ง ท ําให การต ิดตั ้งโปรแกรมง าย เหมื อนกั บการติ ดตั้ งโปรแกรมประยุ กต ทั่ วไป นั่ นคื อ ดั บเบิ ลคลิ กไฟล ติ ดตั้ ง คลิ กปุ มเพื่ อตอบรั บการติ ดตั้ งโปรแกรม รอจนกระทั่ งการติ ดตั้ งเสร็ จสมบู รณ ก็ จะใช งานได ทั นที

Arduino IDE for ESP8266/NodeMCU ที่ INEX จั ดทํ าขึ้ น ดาวน โหลดได โดยไม มี ค าใช จ ายที่ https://www.dropbox.com/home?preview=IoTeduKit_Tools.rar

2.2 ต ิดตั ้งโปรแกรมและไดรเวอร

(2.2.1) ดาวน โหลดไฟล IoTeduKit_Tools.rar จากนั้ นทํ าการแตกไฟล ออกมา จะได ไฟล ติ ดตั้ ง Arduino1.6.5r5_Setup151116.exe

(2.2.2) ด ับเบิ ้ลคล ิกเพื ่อสั ่งให ไฟล ต ิดตั ้งท ํางาน จะปรากฏข อความต อนร ับการต ิดตั ้งโปรแกรมคลิ กปุ ม Next และปุ มตอบรั บในทุ ดขั้ นตอนจนกระทั่ งติ ดตั้ งโปรแกรมเสร็ จสิ้ น

Page 15: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite15

(2.2.2) จากนั้ นติ ดตั้ งไดรเวอร ของอุ ปกรณ พอร ต USB คลิ กปุ ม Next

(2.2.5) คลิ กปุ มตอบรั บ จนกระทั่ งการติ ดตั้ งไดรเวอร เสร็ จสิ้ น คลิ กปุ ม Finish

(2.2.6) จากนั้ นจะเข าสู การติ ดตั้ ง Tool chain สํ าหรั บ ESP8266/NodeMCU ให กั บ ArduinoIDE 1.6.5 ให คลิ กปุ ม Install เพื่ อทํ าการติ ดตั้ ง

(2.2.7) รอจนกระทั่ งการติ ดตั้ งเสร็ จสมบู รณ จะได ArduinoIDE ที่ พร อมสํ าหรั บการพั ฒนาโปรแกรมให กั บโมดู ล ESP8266 และ NodeMCU

Page 16: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

16IoTIoT Education Kit - Lite

2.3 ทดสอบโปรแกรมเบื ้องต น

(2.3.1) เชื่ อมต อโมดู ล NodeMCU กั บพอร ต USB โดย

(A) หากใช โมดู ล NodeMCU-12E กั บเบรดบอร ด ให เสี ยบโมดู ล NodeMCU-12E ลงบนเบรดบอร ด ดั งรู ปที่ 3-1 จากนั้ นต อสาย microB-USB เข ากั บโมดู ล NodeMCU-12E และพอร ต USBของคอมพิ วเตอร รอส ักครู เพื่ อให การเชื ่อมต อสมบู รณ

(B) หากใช โมดู ล NodeMCU-12E กั บบอร ด AX-NodeMCU ให ทํ าการติ ดตั้ งโมดู ลNodeMCU-12E บนซ็ อกเก็ ตของบอร ด AX-NodeMCU ดั งรู ปที่ 3-2 จากนั้ นต อสาย microB-USB เข าก ับโมด ูล NodeMCU-12E และพอร ต USB โดยไม ต องจ ายไฟเลี ้ยงเข าที ่แจ กอะแดปเตอร บนบอร ด AX-NodeMCU

รู ปที่ 3-1 ทดสอบการทํ างานเบื้ องต นของNodeMCU-12E บนแผงต อวงจรหรื อเบรดบอร ด

ร ูปที ่ 3-2 การใช งาน NodeMCU-12E ก ับบอร ด AX-NodeMCUเพื ่อการทดลอง เร ียนรู และใช งานจร ิง

Page 17: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite17

(2.3.2) ตรวจสอบพอร ตเชื่ อมต อที่ เกิ ดขึ้ นจากไดรเวอร ของ NodeMCU ได ที่ Control panel> System > Hardware > Device Manager > Port สั งเกตหั วข อ Silicon Labs CP210x USB toUART Bridge (COMxx) ในที่ นี้ คื อ COM3

(2.3.3) เป ดซอฟต แวร ArduinoIDE 1.6.5R2 แล วเลื อกฮาร ดแวร โดยไปที่ เมน ู Tools > Board> NodeMCU 1.0 (ESP-12E Module)

Page 18: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

18IoTIoT Education Kit - Lite

(2.3.4) เลื อกพอร ตเชื่ อมต อ โดยไปที่ เมนู Tools > Port > COM 3

(2.3.5) จะได ข อมู ลการเชื่ อมต อในภาพรวม ดั งนี้

Page 19: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite19

(2.3.6) เขี ยนโปรแกรมต อไปนี้ const int PIN_LED = D0;void setup(){

pinMode(PIN_LED, OUTPUT);}void loop(){

digitalWrite( PIN_LED, HIGH );delay(1000);digitalWrite( PIN_LED, LOW );delay(1000);

}

(2.3.7) อ ัปโหลดโค ด คล ิกที ่ปุ ม Upload หร ือเล ือกเมน ู Sketch > Upload หร ือกดค ีย Ctrl ตามด วย U

Page 20: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

20IoTIoT Education Kit - Lite

LED ที่ ตํ าแหน ง D0 บนโมดู ลNodeMCU กะพริ บทุ กๆ วิ นาที

(2.3.8) ซอฟต แวร จะท ําการคอมไพล โค ด (compiling) เมื ่อเสร ็จแล วจะแสดงผลการคอมไพล ขนาดไฟล พื ้นที ่เหล ือของหน วยความจ ํา ตามด วยการอ ัปโหลดโค ด แสดงสถานะการอั ปโหลดด วยจ ุดไข ปลาส ีแดง ..... ที่ หน าต างสถานะ พร อมก ันนั ้น LED แสดงสถานะการอ ัปโหลดบนบอร ด NodeMCU-12E (ซึ ่งต อก ับขาพอร ต D4 หร ือ GPIO2) จะต ิดกะพร ิบตามจ ังหวะการถ ายทอดข อม ูล การอ ัปโหลดโค ดจะใช เวลาประมาณ 30 ว ินาท ี เมื ่ออ ัปโหลดโค ดไปย ังบอร ดได ส ําเร ็จ จะแจ งด วยข อความ Done uploadingที ่ช องแสดงสถานะ

(2.3.9) เมื่ ออั ปโหลดโค ดเสร็ จ NodeMCU จะเริ่ มทํ างานทั นที

LED สี นํ้ าเงิ นตํ าแหน ง D4 บนโมดู ลNodeMCU กะพริ บถี่ ๆ ตามจั งหวะการสื่ อสารข อมู ล

Page 21: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite21

3.1 ขั ้นตอนการพ ัฒนาโปรแกรมภาษา C/C++ เพื ่อใช งาน NodeMCU-12E

ขั ้นตอนการพ ัฒนาโปรแกรมส ําหร ับโมด ูล WiFi คอนโทรลเลอร NodeMCU-12E หร ือ V2 หร ือDevelopment kit 1.0 แสดงเป นแผนภาพดั งรู ปที่ 3-1

ร ูปที ่ 3-1 แสดงผ ังงานของการพ ัฒนาโปรแกรมเพื ่อควบค ุมการท ํางานของโมด ูล NodeMCU-12E ด วยภาษาC/C++ โดยใช ArduinoIDE 1.6.5r2 เป นรุ นที ่ปร ับปร ุงให ใช งานก ับโมด ูล NodeMCU ได สะดวกและง ายขึ ้น

สรางไฟลสเก็ตชเขียนโปรแกรมภาษา C บน Arduino IDE

คอมไพล

อัปโหลดโปรแกรม (ใชเวลา 30 วินาที)

อัปโหลดโปรแกรมผานพอรต USB1. ตอสาย microB-USB เขากบัพอรต USB และโมดลู NodeMCU-12E2. ตรวจสอบตําแหนง USB Serial port (COMx)ทีเ่กดิข้ึน3. เลอืกฮารดแวรเปน NodeMCU1.0 (ESP8266-12E)4. ทาํการอปัโหลดโปรแกรม

รันโปรแกรมหลงัจากอัปโหลดโปรแกรมเสร็จสมบูรณแลวจากนั้นระบบจะเริ่มทํางานทันที

ติดต้ังซอฟตแวร- Arduino1.6.5r2 ซอฟตแวรพัฒนาโปรแกรมภาษา C/C++มีทั้งสวนของเท็กซเอดิเตอรสําหรับเขียนโปรแกรม, ไฟลไลบรารีESP8266wifi.h, คอมไพเลอร และสวนของการอัปโหลดโคดไปยังโมดูล NodeMCU-12E- ไดรเวอรอุปกรณ USB ของโมดูล NodeMCU-12E เปนไดรเวอรสําหรับชิป CP2102 เปนตัวแปลงสญัญาณพอรต USB เปนพอรตอนุกรมแบบ UART

พอรต USB

Page 22: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

22IoTIoT Education Kit - Lite

3.2 ข อควรทราบในการเขี ยนโปรแกรมภาษา C/C++ ด วย Arduino IDEส ําหร ับ NodeMCU-12E

ในการเขี ยนโปรแกรมภาษา C/C++ สํ าหรั บโมดู ล NodeMCU-12E โดยใช ภาษาของ Arduino(Arduino programming language) ผู พ ัฒนาโปรแกรมควรม ีความเข าใจในส วนประกอบของโปรแกรมเสี ยก อน ซึ่ งแบ งได เป น 2 ส วนหลั กคื อ

1. โครงสร างภาษา (structure) ตั วแปรและค าคงที่

2. ฟ งก ชั่ น (function)

ภาษาของ Arduino จะอ างอิ งตามภาษา C/C++ จึ งอาจกล าวได ว าการเขี ยนโปรแกรมสํ าหรั บArduino ก็ คื อการเขี ยนโปรแกรมภาษา C โดยเรี ยกใช ฟ งก ชั่ นและไลบรารี ที่ ทาง Arduinoได เตรี ยมไว ให แล ว ซึ่ งสะดวก และทํ าให ผู ที่ ไม มี ความรู ด านไมโครคอนโทรลเลอร อย างลึ กซึ้ งสามารถเขี ยนโปรแกรมสั่ งงานได

โปรแกรมของ Arduino แบ งได เป นสองส วนคื อ

void setup() และ

void loop()

โดยฟ งก ชั่ น setup() เมื่ อโปรแกรมทํ างานจะทํ าคํ าสั่ งของฟ งก ชั่ นนี้ เพี ยงครั้ งเดี ยว จึ งเหมาะที่ จะใช ในการกํ าหนดค าเริ่ มต นของการทํ างาน โดยปกติ ใช กํ าหนดโหมดการทํ างานของขาต างๆ

ส วนฟ งก ชั่ น loop() เป นส วนทํ างาน โปรแกรมจะทํ าคํ าสั่ งในฟ งก ชั่ นนี้ ต อเนื่ องกั นตลอดเวลา เช น อ านค าอิ นพุ ต ประมวลผล สั่ งงานเอาต พุ ต ฯลฯ สํ าหรั บการกํ าหนดค าเริ่ มต น เช น ตั วแปรจะต องเข ียนที ่ส วนห ัวของโปรแกรม ก อนถ ึงต ัวฟ งก ชั ่น นอกจากนั ้น ย ังต องค ําน ึงถ ึงต ัวพ ิมพ เล ็ก-ใหญ ของตั วแปรและชื่ อฟ งก ชั่ นให ถู กต องด วย

Page 23: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite23

3.2.1 ส วนของฟ งก ชั ่น setup()ฟ งก ชั่ นนี้ จะเขี ยนที่ ส วนต นของโปรแกรม ทํ างานเมื่ อโปรแกรมเริ่ มต นเพี ยงครั้ งเดี ยว ใช เพื่ อ

กํ าหนดค าของตั วแปร โหมดการทํ างานของขาต างๆ เริ่ มต นเรี ยกใช ไลบรารี ฯลฯ

ตั วอย างที่ 3-1int LEDpin = D0;void setup(){

pinMode(LEDpin, OUTPUT);}void loop(){

digitalWrite(LEDpin,HIGH);delay(500);digitalWrite(LEDpin,LOW);delay(500);

}

จากต ัวอย างนี ้ ฟ งก ชั ่น setup() ใช ก ําหนดโหมดการท ํางานของขาพอร ตที ่อ างอ ิงด วยชื ่อ LEDpin ซึ ่งก ็ค ือ ขาพอร ต D0 ของโมด ูล NodeMCU-12E ให เป นขาพอร ตเอาต พ ุตด ิจ ิตอล

3.2.2 ส วนของฟ งก ชั ่น loop()หล ังจากที ่เข ียนฟ งก ชั ่น setup()ที ่ก ําหนดค าเริ ่มต นของโปรแกรมแล ว ส วนถ ัดมาค ือฟ งก ชั ่น

loop() ซึ ่งม ีการทํ างานตรงตามชื ่อค ือ จะทํ างานตามฟ งก ชั ่นนี ้วนต อเนื ่องตลอดเวลา ภายในฟ งก ชั ่นนี้ จะมี โปรแกรมของผู ใช เพื่ อรั บค าจากพอร ต ประมวล แล วสั่ งเอาต พุ ตออกขาต างๆ เพื่ อควบคุ มการทํ างานของบอร ด

ตั วอย างที่ 3-2int LEDpin = D0;void setup(){

pinMode(LEDpin, OUTPUT);}void loop(){

digitalWrite(LEDpin,HIGH);delay(500);digitalWrite(LEDpin,LOW);delay(500);

}

จากตั วอย างนี้ ฟ งก ชั่ น loop() เป นการสั่ งให ขาพอร ตท่ี อ างอิ งด วยชื่ อ LEDpin ซึ่ งก็ คื อ ขาพอร ต D0 ของโมดู ล NodeMCU-12E มี สถานะเป น “1” (HIGH) และ “0” (LOW)สลั บกั นทุ กๆ 0.5 วิ นาที และวนทํ างานเช นน้ี ไปตลอด

Page 24: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

24IoTIoT Education Kit - Lite

3.3 การทดลองต ิดต อก ับอ ุปกรณ อ ินพ ุตเอาต พ ุต

ก อนที ่จะเข าสู ขั ้นตอนการพ ัฒนาอ ุปกรณ IoT ด วย NodeMCU ขั ้นตอนหนึ ่งที ่ส ําค ัญและผู พ ัฒนาควรให ความสนใจค ือ การพ ัฒนาโปรแกรมเพื ่อใช งานโมด ูล NodeMCU-12E ในการต ิดต อก ับอ ุปกรณ อ ินพ ุตเอาต พ ุตภายนอกพื ้นฐาน เช น LED และติ ดต อจากต ัวตรวจจ ับทั ้งแบบอะนาลอกและแบบด ิจ ิตอลที ่ต องใช การสื ่อสารข อม ูลอน ุกรมผ านระบบบ ัส

ทั้ งนี้ เพื่ อให แน ใจว า การทํ างานของฮาร ดแวร ทั้ งในการรั บค าจากตั วตรวจจั บและอุ ปกรณ อ ินพ ุตต างๆ ก ับการส งส ัญญาณหร ือข อม ูลไปย ังอ ุปกรณ เอาต พ ุตเป นไปอย างถ ูกต อง เมื ่อเข าสู กระบวนการเชื่ อมต อกั บเครื อข ายอิ นเทอร เน็ ตแล ว การพั ฒนาต อจากนั้ นจะถู กโฟกั สไปยั งกระบวนการทางซอฟต แวร เป นหลั ก ไม ว าจะเป นการนํ าข อมู ลไปแสดงผลในรู ปของกราฟ กแบบต างๆ การประมวลผลและจั ดเก็ บฐานข อมู ล การดู แลรั กษาด านความปลอดภั ยของข อมู ล

หากการท ํางานทางฮาร ดแวร ไม ม ีความแน นอนหร ือไม เสถ ียร ข อม ูลที ่ได ร ับหร ือส งต อจากการเชื่ อมต อกั บอุ ปกรณ ฮาร ดแวร จะไม เกิ ดประโยชน ส งผลให อุ ปกรณ IoT ตั วนั้ นๆ ล มเหลวในการนํ าไปใช งานอย างสิ้ นเชิ ง นั่ นหมายความว า ในการพั ฒนาอุ ปกรณ IoT จะต องมี ความสมบู รณ พร อมทั้ งฮาร ดแวร ซอฟต แวร การจ ัดการด านเคร ือข าย และการบร ิหารพื ้นที ่หน วยความจ ํา จ ึงจะท ําให อ ุปกรณ IoT ตั วนั้ นๆ หรื อระบบนั้ นๆ ทํ างานได อย างมี ประสิ ทธิ ภาพ

รู ปที่ 3-2 อุ ปกรณ ทางฮาร ดแวร ทั้ งหมดที่ ใช ในบทนี้ อย างไรก็ ตาม ผู พั ฒนาสามารถเปลี่ ยนอุ ปกรณ จากมิ นิ บอร ดสํ าเร็ จรู ปเป นอุ ปกรณ อิ เล็ กทรอนิ กส พื้ นฐาน โดยดู จากวงจรที่ ใช ในการทดลอง แล วท ําการต อวงจรขึ ้นใหม บนแผงต อวงจรหร ือเบรดบอร ดก ็ได (ส ําหร ับผู จ ัดซื ้อช ุด IoT Education Kit - Lite

จะม ีอ ุปกรณ ทั ้งหมดนี ้ครบถ วน)

Page 25: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite25

3.3.1 ต ัวอย างการต ิดต ออ ุปกรณ อ ินพ ุตเอาต พ ุตพื ้นฐานของโมด ูล NodeMCU-12Eขั้ นตอนการพั ฒนาโปรแกรมในแต ละตั วอย างในหั วข อนี้ จะเหมื อนกั น นั่ นคื อ เป ดซอฟต แวร

ArduinoIDE 1.6.5r2 ที่ ปรั บปรุ งมาเป นพิ เศษสํ าหรั บพั ฒนาโปรแกรมให กั บโมดู ล NodeMCU-12Eทํ าการเขี ยนโปรแกรม คอมไพล และอั ปโหลดลงบนโมดู ล NodeMCU-12E จากนั้ นต อวงจรเพื่ อทดสอบการทํ างาน

การต อวงจรสํ าหรั บเชื่ อมต อกั บอุ ปกรณ อิ นพุ ตเอาต พุ ตให แก โมดู ล NodeMCU-12E ในหั วข อนี้ มี ด วยกั น 2 ลั กษณะคื อ แนะนํ าวงจรที่ ผู ทดลองสามารถต อวงจรบนเบรดบอร ดได แม ไม ได จั ดซื้ อชุ ด IoT Education Kit - NodeMCU กั บอี กลั กษณะคื อ การต อวงจรโดยใช อุ ปกรณ ที่ จั ดเตรี ยมมาพร อมในชุ ด IoT Education Kit

สิ่ งสํ าคั ญที่ ต องเน นยํ้ าคื อ

1. การจ ายไฟให แก โมดู ล NodeMCU-12E ทํ าได 2 ทาง นั่ นคื อ จ ายไฟผ านทางพอร ต USB

และจ ายไฟ +5V เข าที่ ขา +Vcc ของโมดู ล NodeMCU-12E แต ต องไม ทํ าพร อมกั น

2. ในการเข ียนโปรแกรม ต องเล ือกฮาร ดแวร หร ือ Tool > Board > NodeMCU1.0(ESP-12E module) และเล ือกช องการเชื ่อมต อในเมน ู Tool > Port ให ถ ูกต อง ก อนท ํา

การคอมไพล และอ ัปโหลดโค ดโปรแกรม

Page 26: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

26IoTIoT Education Kit - Lite

3.3.2 ใช งานพอร ตเอาต พุ ตขั บ LED

3.3.2.1 คุ ณสมบั ติ ของขาพอร ตเอาต พุ ต

สํ าหรั บขาพอร ตทุ กขาของ NodeMCU-12E กํ าหนดให เป นเอาต พุ ตดิ จิ ตอลได ทั้ งหมด เมื่ อทํ าการกํ าหนดเป นเอาต พุ ตดิ จิ ตอลแล ว ขาพอร ตจะมี สถานะเป นอิ มพี แดนซ ตํ่ า ทํ าให จ ายกระแสไฟฟ าให ก ับวงจรภายนอกได ส ูงส ุด 15mA ซึ ่งเพ ียงพอส ําหร ับข ับให LED สว าง (ต องต อต ัวต านทานอน ุกรมเพื ่อจ ําก ัดกระแสไฟฟ าให LED ด วย) หร ือใช ก ับอ ุปกรณ เอาต พ ุตด ิจ ิตอลอื ่นๆ ได แต ไม เพ ียงพอส ําหร ับขั บรี เลย โซลี นอยด หรื อมอเตอร โดยตรง

3.3.2.2 การกํ าหนดโหมดของขาพอร ต

ในรู ปที่ 3-3 แสดงขั้ นตอนการใช งานขาพอร ตของโมดู ล NodeMCU-12E เป นพอร ตเอาต พุ ตด ิจ ิตอล โดยก อนใช งานต องก ําหนดโหมดการท ํางานเส ียก อน ด วยฟ งก ชั ่น pinMode()ม ีร ูปแบบด ังนี ้

pinMode(pin,mode);

เมื ่อ pin คื อ หมายเลขขาพอร ตท่ี ต องการ

Mode คื อ โหมดการทํ างานเป นอิ นพุ ต (INPUT) หรื อ เอาต พุ ต (OUTPUT)

หล ังจากก ําหนดให เป นพอร ตเอาต พ ุตแล ว เมื ่อต องการเข ียนค าไปย ังขาพอร ตนั ้นๆ ให เร ียกใช ฟ งก ชั่ น digitalWrite() โดยมี รู ปแบบดั งนี้

digitalWrite(pin,value);

เมื ่อ pin คื อ หมายเลขขาพอร ตท่ี ต องการ

value สถานะลอจิ กที่ ต องการ (HIGH หรื อ LOW)

pinMode(pin,INPUT)

pinMode(pin,OUTPUT)

analogWrite(pin, value)

digitalWrite(pin, value)

LOW

HIGH

ร ูปที ่ 3-3 ไดอะแกรมแสดงกลไกการก ําหนดให ขาพอร ตของ NodeMCU-12E เป นพอร ตเอาต พ ุตด ิจ ิตอล(บล ็อกส ีเทาแทนการท ํางานหร ือเงื ่อนไขที ่ต องการ) ในการเข ียนโปรแกรมด วย Arduino IDE

Page 27: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite27

3.3.2.3 ตั วอย างโปรแกรมขั บ LED

ในต ัวอย างนี ้เป นการสั ่งให พอร ตท ํางานเป นเอาต พ ุต จากนั ้นสั ่งให ขาพอร ตเอาต พ ุตนั ้นๆ เป นลอจิ ก “0” หรื อ “1” ตามที่ ต องการ โดยต อกั บ LED สั่ งให LED ติ ดดั บต อเนื่ องกั น

เริ ่มต นด วยการต อวงจร ด ังร ูปที ่ 3-4 โดยในร ูปที ่ 3-4 (A) เป นวงจรทดลองที ่แนะน ําให ต อลงบนเบรดบอร ดหร ือแผงต อวงจร ส วนร ูปที ่ 3-4 (B) เป นการต อทดลองโดยใช อ ุปกรณ ที ่ม ีในช ุด IoT EducationKit - Lite

โดย LED ทํ างานที่ ลอจิ ก “1” คื อเมื่ อสั่ งให ขาพอร ตเป น HIGH จะทํ าให LED ติ ด เมื่ อสั่ งให ขาเป น LOW หรื อ “0” LED จะดั บ เมื่ อต ออุ ปกรณ แล ว ให เขี ยนโปรแกรมที่ 3-1 ทดลองคอมไพล อั ปโหลดลง NodeMCU-12E ศึ กษาผลการทํ างาน

เมื่ ออั ปโหลดโค ดและรั นโปรแกรม

LED ที่ ต อกั บขาพอร ต D1 ติ ดดั บทุ กๆ 1 วิ นาที

ESP-12E

WiFi

5D

1

16

D0

4D

22

D4

12

D6

0D

314

D5

13

D7

5D

8

3D91D10

RxD0TxD0

+3V3

GND

D10 1

D9 3

D8 15

D7 13

D6 12

14

GND

+3V3

D4 2

D3 0

D2 4

D1 5

D0 16

GPIO

Vin +5VdcON

POWER

AX-NodeMCUNodeMCU carrier board

TxD

2

A0

RSV

RSV

10 D12

9 D11

SD3

SD2

INT/SD1

MOSI/CMD

MISO/SD0

SCK/CLK

GND

+3V3

EN

nRST

GND

+Vcc+5V

GPIO

A0

VR

A0

SD

3SD

2

10

D12

9D

11

MO

SI/C

MD

MIS

O/S

D0

SCK/C

LKIN

T/S

D1

ADCSELECT

D5

D1

D2

D3

R11k

D1/GPIO5

R21k

D2/GPIO4

R31k

D3/GPIO0

LED1RED

LED2YEL

LED3GRN

IoT Education Kit

NodeMCU-12E*

ZX

-LE

DO

+S

ZX

-LE

DO

+S

ZX

-LE

DO

+S

ร ูปที ่ 3-4 วงจรส ําหร ับทดลองใช งานขาพอร ตเอาต พ ุตของ NodeMCU-12E ในการข ับ LED 3 ดวง

Page 28: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

28IoTIoT Education Kit - Lite

#define ledPin1 D1 // Define pin namevoid setup(){ pinMode(ledPin1,OUTPUT); //Set D1 pin as output}

void loop(){ digitalWrite(ledPin1, 0); //Set display pattern off-off-on delay(1000); //Delay 1 second digitalWrite(ledPin1, 0); //Set display pattern off-on-on delay(1000); //Delay 1 second}

ค ําอธ ิบายโปรแกรมเพิ ่มเต ิม

ในโปรแกรมนี ้ม ีการก ําหนดชื ่อของขาพอร ตที ่ใช ในตอนต นของโปรแกรมด วยค ําสั ่ง #define ยกต ัวอย างในโปรแกรมก ําหนดค าคงที ่ให ข อความ ledPin1 ม ีค าเท าก ับ D1 หล ังจากบรรท ัดนี ้ในโปรแกรมเมื ่อพบข อความledPin1 จะหมายถึ ง ขาพอร ต D1 เป นต น

ส วนของฟ งก ชั่ น setup() ใช ก ําหนดการทํ างานของขาพอร ตให เป นเอาต พุ ตด วยคํ าสั ่ง pinMode

ส วนของฟ งก ชั ่น loop() เป นโปรแกรมก ําหนดให LED ทํ างานติ ดดั บคั ่นด วยการหน วงเวลา 1 วิ นาที ด วยคํ าสั่ ง delay(1000); อั นเป นการเรี ยกใช ฟ งก ชั่ น delay()โดยส งค า 1000 ให กั บฟ งก ชั่ น เพื่ อให เก ิดการหน วงเวลา 1000 ม ิลล ิว ินาท ี (ms) หร ือ 1 ว ินาท ี เปลี ่ยนค าในวงเล ็บเป นค าอื ่นๆ ได หากค ายิ ่งมากการท ํางานของแต ละร ูปแบบจะนานขึ ้น

โปรแกรมที ่ 3-1 ไฟล NodeMCU_LED1.ino โปรแกรมส ําหร ับใช งานขาพอร ตเอาต พ ุตของ NodeMCU-12Eเพื่ อขั บ LED

Page 29: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite29

3.3.3 สร างสั ญญาณ PWM ผ านพอร ตเอาต พุ ตของ NodeMCUใน Arduino มี ฟ งก ชั่ น analogWrite() ทํ าให NodeMCU-12E สร างสั ญญาณอะนาลอกส ง

ออกทางขาพอร ตเอาต พ ุตได โดยอาศ ัยเทคน ิคการสร างส ัญญาณ PWM (Pulse Width Modulation) หร ือสั ญญาณมอดู เลชั่ นทางความกว างพั ลส ผู ใช งานสามารถปรั บค าดิ วตี้ ไซเกิ ลของสั ญญาณพั ลส ได ระหว าง 0 ถึ ง 255 เมื่ อค าเป น 0 แรงดั นของขาพอร ตที่ กํ าหนดไว จะมี ค าเป น 0V หากมี ค าเป น 255แรงดั นที่ ขาพอร ตจะเป น +3.3V สํ าหรั บค า 0 ถึ ง 255 จะทํ าให ขาที่ กํ าหนดไว มี ค าแรงดั นเปลี่ ยนแปลงสลั บไปมาระหว าง 0 และ +3.3V ถ ามี ค าสู ง ช วงเวลาที่ ขาพอร ตนั้ นมี แรงดั น +3.3V จะนานขึ้ น

ถ าค าเป น 51 สั ญญาณพั ลส จะมี ระดั บสั ญญาณ +3.3V เป นเวลานาน 20% ของคาบเวลา และมี แรงดั น 0V นาน 80% ของคาบเวลา หรื อมี ค าดิ วตี้ ไซเกิ ลเท ากั บ 20%นั่ นเอง

ถ ามี ค าเป น 127 สั ญญาณพั ลส จะมี ระดั บสั ญญาณ +3.3V เป นเวลานานครึ่ งหนึ่ งของคาบเวลาและ 0V นานครึ่ งหนึ่ งของคาบเวลา หรื อมี ค าดิ วตี้ ไซเกิ ล 50%

ถ ามี ค าเป น 191 นั่ นคื อ สั ญญาณพั ลส จะมี ระดั บสั ญญาณ +3.3V เป นเวลานานสามส วนสี่ ของคาบเวลา และมี แรงดั น 0V นานหนึ่ งส วนสี่ ของคาบเวลา หรื อมี ค าดิ วตี้ ไซเกิ ล 75%

ในรู ปที่ 3-5 แสดงสั ญญาณ PWM ที่ ค าดิ วตี้ ไซเกิ ลต างๆ

ร ูปที ่ 3-5 แสดงส ัญญาณ PWM ที ่ค าด ิวตี ้ไซเก ิลต างๆ

20%

50%

75%

Page 30: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

30IoTIoT Education Kit - Lite

ค าแรงดั นของสั ญญาณพั ลส จะได เป นค าเฉลี่ ยของสั ญญาณพั ลส ซึ่ งสามารถคํ านวณได จากความสั มพั นธ ทางคณิ ตศาสตร ต อไปนี้

แรงดั นเอาต พุ ต = (ค าเวลาของลอจิ กสู ง / ค าเวลาของลอจิ กตํ่ า) x ไฟเล้ี ยง

ผู ใช งานสามารถนํ าสั ญญาณ PWM ที่ ได จากคํ าสั่ งนี้ ไปใช ในการปรั บความสว างของ LEDหร ือต อขยายกระแสเพื ่อต อปร ับความเร ็วของมอเตอร ได หล ังจากเร ียกใช ค ําสั ่งนี ้ ที ่ขาพอร ตที ่ก ําหนดจะมี สั ญญาณ PWM ส งออกมาอย างต อเนื่ อง จนกว าจะเรี ยกใช ฟ งก ชั่ น analogWrite ในรอบใหม หรื อเรี ยกใช ฟ งก ชั่ น digitalRead หรื อ digitalWrite ที่ ขาพอร ตเดี ยวกั น

3.3.3.1 ฟ งก ชั่ นสํ าหรั บสร างสั ญญาณ PWM

ฟ งก ชั่ นใน Arduino IDE ที่ ใช สร างสั ญญาณ PWM คื อ analogWrite()สํ าหรั บ NodeMCU-12E ทํ างานร วมกั บฟ งก ชั่ นนี ้ได เป นอย างดี โดยผู พั ฒนาโปรแกรมสํ าหรั บกํ าหนดให ขาพอร ตดิ จิ ตอลทุ กขาของ NodeMCU เป นขาพอร ตเอาต พุ ตเพื่ อขั บสั ญญาณ PWM ได ทั้ งหมด นั บเป นความสามารถที่ ยอดเยี่ ยมของ NodeMCU

รายละเอี ยดของฟ งก ชั่ น analogWrite()มี ดั งนี้

รู ปแบบ

analogWrite(pin, value)

ใช ในการเขี ยนค าอะนาลอกไปยั งขาพอร ตที่ กํ าหนดไว เพื่ อสร างสั ญญาณ PWM โดยมี ค าความถี่ ประมาณ 490Hz

พาราม ิเตอร

pin - หมายเลขขาพอร ตของ NodeMCU

value - เป นค าดิ วตี้ ไซเกิ ลมี ค าระหว าง 0 ถึ ง 255

เม่ื อค าเป น 0 แรงดั นของขาพอร ตท่ี กํ าหนดจะเป น 0V เม่ื อมี ค าเป น 255 แรงดั นท่ี ขาพอร ตจะเป น +5V สํ าหรั บค าระหว าง 0 ถึ ง 255 จะทํ าให ขาพอร ตท่ี กํ าหนดไว มี ค าแรงดั นเปลี่ ยนแปลงในย าน 0 ถึ ง 5V

ค าที่ ส งกลั บจากฟ งก ชั่ น

เลขจํ านวนเต็ มจาก 0 ถึ ง 255

Page 31: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite31

โปรแกรมที ่ 3-2 ไฟล NodeMCU_PWM.ino โปรแกรมส ําหร ับใช งานขาพอร ตเอาต พ ุตของ NodeMCU-12Eเพื ่อควบค ุมความสว างของ LED ด วยส ัญญาณ PWM

3.3.3.2 ตั วอย างโปรแกรมใช งานขาพอร ต NodeMCU ขั บ LED ด วยสั ญญาณ PWM

ใช วงจรในรู ปที่ 3-4 ในการทดลอง

จากนั้ นเขี ยนโปรแกรมที่ 3-2 ทํ าการคอมไพล และอั ปโหลดไปยั ง NodeMCU-12E จากนั้ นทํ าการรั นโปรแกรมเพื่ อทดสอบการทํ างาน

LED จะเริ่ มต นด วยการดั บ แล วค อยๆ สว างขึ้ น จนสว างเต็ มที่ จากนั้ นจะค อยหรี่ ลงจนดั บ วนทํ างานแบบนี้ อย างต อเนื่ อง

#define LED_PIN D1 // LED at D1int value = 0; // variable to keep the actual valuevoid setup(){

pinMode(LED_PIN,OUTPUT);}void loop(){

for (value = 0; value <= 255; value += 5) // fade in (min to max){analogWrite(LED_PIN, value); // sets the value (0 to 255)delay(30); // waits for 30 milliseconds

}for (value = 255; value >= 0; value -= 5) // fade out (max to min){analogWrite(LED_PIN, value);delay(30);

}delay(1000);

}

Page 32: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

32IoTIoT Education Kit - Lite

3.3.4 ใช งานพอร ตอิ นพุ ตดิ จิ ตอล

3.3.4.1 คุ ณสมบั ติ ของขาพอร ตอิ นพุ ต

ขาพอร ตของ NodeMCU เมื่ อถู กกํ าหนดเป นอิ นพุ ตดิ จิ ตอล จะมี สถานะเป นอิ มพี แดนซ สู งทํ าให ม ี ีความต องการกระแสไฟฟ าจากอุ ปกรณ ที่ ต องการอ านค าอิ นพุ ตน อยมาก ไม สามารถรั บหรื อจ ายกระแสให กั บวงจรภายนอก

ส ําหร ับขาอ ินพ ุต เมื ่อไม ม ีอ ินพ ุตป อนให จะต องก ําหนดค าแรงด ันให แน นอน ท ําได โดยต อต ัวต านทานพ ูลอ ัป (pull-up resistor) โดยต อขาของต ัวต านทานขาหนึ ่งไปย ังไฟเลี ้ยง หร ือต อพ ูลดาวน (pull- down)ซึ ่งต อขาหนึ ่งของต ัวต านทานจากขาพอร ตลงกราวด ค าต ัวต านทานที ่ใช ทั ่วไปค ือ 10k ด ังร ูปที ่ 3-6

ขาพอร ตด ิจ ิตอลของ NodeMCU รองร ับการก ําหนดให เป นอ ินพ ุตได ทั ้งหมด เมื ่อต องการก ําหนดเป นอ ินพ ุต ด ิจ ิอลต องก ําหนดด วยฟ งก ชั ่น pinMode และอ านค าอ ินพ ุตได จากฟ งก ชั ่น digitalReadซึ ่งม ีร ูปแบบด ังนี ้

pinMode(pin,INPUT);

เม่ื อ pin คื อ หมายเลขขาพอร ตท่ี ต องการdigitalRead(pin);

เม่ื อ pin ค ือหมายเลขขาที ่ต องการอ านค าสถานะ

เมื่ อฟ งก ชั่ นทํ างาน จะคื นค าเป นสถานะของขาที่ ต องการอ านค า โดยคื นค าเป น LOW(ค าเป น “0”) หรื อ HIGH (ค าเป น “1”)

+Vcc

Rpull-up

Di INPUT

ปกติเปนลอจิกสูง(HIGH หรือ "1")

Rpull-down

Di INPUT

ปกติเปนลอจิกตํ่า(LOW หรือ "0")

(ก) การตอตัวตานทานพูลอัป (ข) การตอตัวตานทานพูลดาวน

รู ปที่ 3-6 แสดงการต อตั วต านทานเพื่ อกํ าหนดสภาวะของขาพอร ตอิ นพุ ตของไมโครคอนโทรลเลอร ในขณะที ่ย ังไม ม ีอ ินพ ุตส งเข ามา

Page 33: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite33

ในร ูปที ่ 3-7 แสดงไดอะแกรมการเข ียนค ําสั ่งเพื ่อก ําหนดให ใช งานขาพอร ตของ NodeMCU-12Eทํ างานเป นขาพอร ตอิ นพุ ตดิ จิ ตอล

3.3.4.2 ทดลองรั บค าสวิ ตช อย างง าย

ในการทดลองนี้ จะทดลองอ านค าสถานะของสวิ ตช แบบกดติ ดปล อยดั บเพื่ อควบคุ ม LEDเมื่ อกดสวิ ตช ทํ าให LED ติ ดสว าง เมื่ อปล อยสวิ ตช LED จะดั บ โดยมี วงจรแสดงได ดั งรู ปที่ 3-8 และเขี ยนเป นโปรแกรมได ดั งโปรแกรมที่ 3-3

ในการใช งานขาอิ นพุ ตดิ จิ ตอลต องต อตั วต านทานพู ลอั ป (ต อตั วต านทานจากไฟเลี้ ยง +3.3Vมายั งขาอิ นพุ ต) เพื่ อกํ าหนดสถานะที่ แน นอนให กั บขาอิ นพุ ตในภาวะที่ ไม มี การกดสวิ ตช ดั งวงจรในรู ปที่ 4-13 (A) เมื่ อไม ได กดสวิ ตช ที่ ขาพอร ต D1 จะมี สถานะเป นลอจิ กสู งหรื อ HIGH หรื อ “1” เมื่ อกดสวิ ตช จะทํ าให ขา D1 ต อลงกราวด อ านค าสถานะเป นลอจิ กตํ่ าหรื อ LOW หรื อ “0”

การทํ างานของ LED1 จะตรงข ามกั บสถานะของสวิ ตช คื อ เมื่ อไม กดสวิ ตช จะอ านสถานะของขา D1 ได ลอจิ กสู ง จึ งต องสั่ งให ขา D3 เป นลอจิ กตํ่ าหรื อ “0” เพื่ อทํ าให LED1 ดั บ เมื่ อกดสวิ ตช อ านค าสถานะของขา D1 ได ลอจิ ก “0” ต องสั่ งให ขา D3 เป น “1” เพื่ อขั บ LED1 ติ ดสว าง

pinMode(pin,INPUT)

pinMode(pin,OUTPUT)

digitalWrite(pin, HIGH)

val = digitalRead(pin);

val

รู ปที่ 3-7 ไดอะแกรมแสดงกลไกการกํ าหนดให ขาพอร ตของ NodeMCU-12E เป นพอร ตอิ นพุ ตด ิจ ิตอล (บล ็อกส ีเทาแทนการท ํางานหร ือเงื ่อนไขที ่ต องการ)

Page 34: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

34IoTIoT Education Kit - Lite

ESP-12E

WiFi

5D

1

16

D0

4D

22

D4

12

D6

0D

314

D5

13

D7

5D

8

3D91D10

RxD0TxD0

+3V3

GND

D10 1

D9 3

D8 15

D7 13

D6 12

14

GND

+3V3

D4 2

D3 0

D2 4

D1 5

D0 16

GPIO

Vin +5VdcON

POWER

AX-NodeMCUNodeMCU carrier board

TxD

2

A0

RSV

RSV

10 D12

9 D11

SD3

SD2

INT/SD1

MOSI/CMD

MISO/SD0

SCK/CLK

GND

+3V3

EN

nRST

GND

+Vcc+5V

GPIO

A0

VR

A0

SD

3SD

2

10

D12

9D

11

MO

SI/C

MD

MIS

O/S

D0

SCK/C

LKIN

T/S

D1

ADCSELECT

D5

D1

ZX

-LE

DO

D3

R14.7k

D1/GPIO5

R21k

D3/GPIO0

LED1RED

IoT Education Kit

NodeMCU-12E*

ZX-SWITCH01

D

+S +S

SW1

+3.3V

ร ูปที ่ 3-8 วงจรส ําหร ับทดลองใช งานขาพอร ตอ ินพ ุตของ NodeMCU-12E ในการร ับค าสว ิตช เพื ่อข ับ LED

#define sw1 D1 // Define D1 as switch pin#define ledPin1 D3 // Define D1 as LED pinint st_sw1 = 0;void setup(){ pinMode(ledPin1, OUTPUT); // Set pin as output pinMode(sw1, INPUT); // set pin as input}void loop(){ st_sw1 = digitalRead(sw1); // Read input digitalWrite(ledPin1, ~st_sw1); // Invert output}

โปรแกรมที ่ 3-3 ไฟล NodeMCU_SW.ino โปรแกรมทดลองใช งานขาพอร ตอ ินพ ุตของ NodeMCU-12E ในการร ับค าสว ิตช เพื ่อข ับ LED

Page 35: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite35

3.4 ใช งานอิ นพุ ตอะนาลอกของ NodeMCU-12E

3.4.1 เกี่ ยวกั บอิ นพุ ตอะนาลอกของ NodeMCU-12Eความสามารถในการแปลงสั ญญาณอะนาลอกเป นดิ จิ ตอลของ NodeMCU-12E ถื อว าอยู ใน

เกณฑ ที่ ใช งานได ดี โดยม ีความละเอ ียดในการแปลงสั ญญาณ 10 บิ ต ให ข อมู ลดิ จิ ตอลมี ค า 0 ถึ ง 1,023(เลขฐานสิ บ) แต ที่ เป นข อจํ ากั ดเล็ กน อยคื อ NodeMCU-12E มี อิ นพุ ตอะนาลอกเพี ยง 1 ช องคื อ A0และโดยปกต ิแล วตั ว ESP8266-12E ที ่เป นโมด ูลหล ักของ NodeMCU-12E จะร ับแรงดั นไฟตรงส ําหร ับอ ินพ ุตอะนาลอกได ในย าน 0 ถ ึง 1V เท านั ้น ในการออกแบบ NodeMCU-12E จ ึงม ีการต อวงจรลดทอนแรงดั นเข าที่ อิ นพุ ตอะนาลอก เพื่ อให รองรั บแรงดั นไฟตรงได สู งถึ ง +3.3V

ดั งนั้ น NodeMCU-12E จึ งมี อิ นพุ ตอะนาลอก 1 ช อง ที่ รั บแรงดั นได 0 ถึ ง +3.3V และม ีความละเอี ยดในการแปลงสั ญญาณอะนาลอกเป นดิ จิ ตอล 10 บิ ต ให ข อมู ลดิ จิ ตอลในช วง 0 ถึ ง 1,023 รวม1,024 ค า จึ งวั ดระดั บการเปลี่ ยนแปลงของสั ญญาณไฟฟ าได ละเอี ยดถึ ง 0.003 V (ที่ +3.3V)

3.4.2 ฟ งก ชั่ นอ านค าสั ญญาณอะนาลอกใน Arduino IDE สํ าหรั บ NodeMCU-12Eมี เพี ยง 1 ฟ งก ชั่ นคื อ analogRead() มี คํ าอธิ บายโดยสรุ ปดั งนี้

รู ปแบบ

int analogRead(pin)

เป นฟ งก ชั ่นอ านค าจากขาพอร ตที ่ก ําหนดให เป นอ ินพ ุตอะนาลอกของ NodeMCU-12E ซึ ่งม ีช องเดี ยวคื อ A0 มี วงจรแปลงสั ญญาณอะนาลอกเป นดิ จิ ตอลความละเอี ยด 10 บิ ต ทํ าให แปลงค าแรงดั นอิ นพุ ต 0 ถึ ง +3.3V ให เป นข อมู ลตั วเลขจํ านวนเต็ ม ระหว าง 0 ถึ ง 1,023

พาราม ิเตอร

pin - หมายเลขของขาอิ นพุ ตอะนาลอก ซึ่ งก็ คื อขา A0

ค าที่ ส งกลั บ

เลขจํ านวนเต็ มจาก 0 ถึ ง 1023

หมายเหต ุ

ส ําหร ับขาอ ินพ ุตอะนาลอกไม จ ําเป นต องประกาศแจ งว า เป นอ ินพ ุตหร ือเอาต พ ุต

Page 36: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

36IoTIoT Education Kit - Lite

3.4.3 ต ัวอย างโปรแกรมอ านค าอ ินพ ุตอะนาลอกของบอร ด AX-NodeMCUในต ัวอย างจะใช ต ัวต านทานปร ับค าได บนบอร ด AX-NodeMCU เป นแหล งก ําเน ิดแรงด ันไฟตรง

เพื ่อป อนสู อ ินพ ุตอะนาลอกของ NodeMCU-12E ด ังร ูปที ่ 3-9 หากผู ทดลองที ่ไม ได ใช บอร ด AX-NodeMCUให ใช ต ัวต านทานปร ับค าได ต อลงบนเบรดบอร ดด ังวงจรในร ูปที ่ 3-10 (A) ส วนผู ที ่ใช ช ุด IoT EducationKit ให ต อวงจรด ังร ูปที ่ 3-10 (B) ส ําหร ับโปรแกรมทดลองแสดงในโปรแกรมที ่ 3-4 ให เป ดซอฟต แวร Arduino IDE เพื ่อเข ียนโปรแกรมและอ ัปโหลดไปย ัง NodeMCU-12E

รู ปที่ 3-9 แสดงตํ าแหน งของตั วต านทานปรั บค าได บนบอร ด AX-NodeMCU ที่ ใช เป นแหล งกํ าเนิ ดแรงด ันอะนาลอกเพื ่อการทดสอบการแปลงส ัญญาณอะนาลอกเป นด ิจ ิตอลของ NodeMCU-12E

ต ัวต านทานปร ับค าได ส ําหร ับใช เป นแหล งจ ายไฟตรงเพื ่อการทดสอบวงจรแปลงส ัญญาณ

อะนาลอกเป นด ิจ ิตอลของNodeMCU-12E

#define ANALOG_PIN A0 // Analog input at pin A0.int analogValue = 0; // Variable for store analog value

void setup(){ Serial.begin(115200); // set serial port at 115200 bps}

void loop(){ analogValue = analogRead(ANALOG_PIN);// Read analog input at pinAn 0. Serial.print("Analog input0 = "); // Send string to serial port. Serial.println(analogValue); // Send analog value to serial port. delay(300); // Delay 0.3 second.}

โปรแกรมที่ 3-4 ไฟล NodeMCU_AnalogTest.ino โปรแกรมอ านค าอิ นพุ ตอะนาลอกของ NodeMCU-12Eเพื ่อน ํามาแสดงที ่หน าต าง Serial Monitor

Page 37: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite37

ร ูปที ่ 3-10 การต อวงจรเพื ่อทดลองอ านค าอ ินพ ุตอะนาลอกของ NodeMCU-12E มาแสดงที ่หน าต าง SerialMonitor

ESP-12E

WiFi

5D

1

16

D0

4D

22

D4

12

D6

0D

314

D5

13

D7

5D

8

3D91D10

RxD0TxD0

+3V3

GND

D10 1

D9 3

D8 15

D7 13

D6 12

14

GND

+3V3

D4 2

D3 0

D2 4

D1 5

D0 16

GPIO

Vin +5VdcON

POWER

AX-NodeMCUNodeMCU carrier board

TxD

2

A0

RSV

RSV

10 D12

9 D11

SD3

SD2

INT/SD1

MOSI/CMD

MISO/SD0

SCK/CLK

GND

+3V3

EN

nRST

GND

+Vcc+5V

GPIO

A0

VR

A0

SD

3SD

2

10

D12

9D

11

MO

SI/C

MD

MIS

O/S

D0

SCK/C

LKIN

T/S

D1

ADCSELECT

D5

IoT Education Kit

NodeMCU-12E*+3.3V

A0VR110k

ร ูปที ่ 3-11 แสดงการเป ดหน าต าง Serial Monitor ของ Arduino IDE เพื ่อแสดงข อม ูลของการสื ่อสารระหว างคอมพ ิวเตอร ก ับ NodeMCU-12E ผ านพอร ตอน ุกรมเสม ือนจากพอร ต USB (USB serial port)

Page 38: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

38IoTIoT Education Kit - Lite

เมื ่ออ ัปโหลดโปรแกรมเสร ็จแล ว ต องเป ดหน าต าง Serial Monitor โดยคล ิกที ่ปุ มของ Serial Minitorที ่อยู ม ุมบนขวา ด ังร ูปที ่ 3-11 จะเห ็นหน าต าง Serial Monitor ปรากฏขึ ้นมา ตั ้งค าการท ํางานด ังนี ้

(1) ตั้ งค าอั ตราบอดหรื อบอดเรตที่ ช องมุ มขวาล างสุ ดเป น 115200 บิ ตต อวิ นาที

(2) เลื อก No line ending

(3) คลิ กท ําเครื ่องหมายที ่ช อง Autoscroll เพื ่อให การแสดงผลเกิ ดการเลื ่อนบรรท ัดอ ัตโนม ัต ิเมื ่อม ีข อม ูลใหม เข ามา

จะได ผลการทํ างานตามรู ปที่ 3-12

จากการทํ างานของโปรแกรมที่ 3-4 พบว าตั วโปรแกรมจะส งผลการแปลงสั ญญาณอะนาลอกซึ่ งก็ คื อ ค าแรงดั นไฟตรงจากขาอิ นพุ ต A0 เป นข อมู ลดิ จิ ตอลของเลขจํ านวนเต็ มมาแสดงที่ หน าต างSerial Monitor จากการทดสอบการทํ างานหลายๆ ครั้ ง พบว า บางครั้ งที่ แรงดั นอิ นพุ ต 0V (วั ดด วยมั ลติ มิ เตอร ) ค าการแปลงสั ญญาณไม ได ค าเป น 0 อาจมี ค า 7 ถึ ง 8 ในขณะที่ แรงดั นอิ นพุ ตสู งสุ ด (เท าไฟเลี้ ยง +3.3V) อ านได ค า 1024

ค า 7 หรื อ 8 ที่ ได จากการแปลงสั ญญาณอะนาลอกเป นดิ จิ ตอล เมื่ อนํ ามาคํ านวณกลั บเป นแรงด ันไฟตรง จะได ค าแรงด ันเท าก ับ (7/1023) x 3.3V = 0.02256V หร ือ (8/1024) x 3.3V = 0.0258Vซึ ่งม ีค าใกล เค ียง 0V ท ําให ค าที ่ว ัดได นี ้ย ังอยู ในกรอบที ่น ําไปใช ก ับงานที ่ไม ต องการว ัดแรงด ันไฟตรงที ่ตํ ่ามากๆ ได

ในขณะที่ ค า 1024 เมื่ อเที ยบกั บมาเป นแรงดั นไฟตรงในทางปฏิ บั ติ ก็ จะไม มี ทางเกิ นไฟเลี้ ยง+3.3V ไปได ดั งนั้ นจึ งอาจยอมรั บค าข อมู ลสู งสุ ดทั้ ง 1023 และ 1024 ได

ร ูปที ่ 3-12 ผลการอ านค าอ ินพ ุตอะนาลอกของโมด ูล NodeMCU-12E มาแสดงผล ที ่หน าต าง Serial Monitor

Page 39: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite39

ด ังนั ้นการใช งาน NodeMCU-12E ในการอ านค าแรงด ันอ ินพ ุตอะนาลอกจ ึงเหมาะก ับต ัวตรวจจั บที่ ให ค าแรงดั น 0.05V ถึ ง +3.2V

ถ าต องการให ส งข อม ูลเป นค าของแรงด ันในหน วยโวลต (V) ที ่ม ีการแสดงเป นต ัวเลขทศน ิยมที่ หน าต าง Serial Monitor จะต องมี การแก ไขโปรแกรม ดั งโปรแกรมที่ 3-5

ในโปรแกรมที ่ 3-5 นี ้ ท ําการค ํานวณเพื ่อแปลงค าที ่อ านได จากอ ินพ ุต A0 ให เป นแรงด ันด วยส ูตร

temp = analogValue*3.3/1023;

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

temp = analogValue*3.3/1023*1000;

ค ําตอบที ่ได เป นเลขจ ํานวนเต ็มจาก 0022 (0.022V) ถ ึง 3303 (3.303V) แล วจ ึงแปลงเป นข อความและส งออกพอร ตอน ุกรมท ีละต ัวอ ักษร โดยต องใส ต ําแหน งของจ ุดทศน ิยมให ถ ูกต อง

#include <stdio.h> // include file stdio.h for function sprintf()#define ANALOG_PIN A0 // Analog input at pin An 0.int analogValue = 0; // variable to store analog valuevoid setup(){ Serial.begin(115200);// set serial port at 9600 bps}void loop(){ char str[5]; // Declare string variable int temp; // Temporary variable. analogValue = analogRead(ANALOG_PIN);// Read analog input A0. temp = analogValue * 3.3/1023* 1000; // convert to volt and scale *1000 sprintf(str, "%4d", temp); // convert interger to string Serial.print("Analog input0 = "); // print string Serial.print(str[0]); // print voltage in first digit Serial.print("."); if (str[1] == ' ') Serial.print("0"); else Serial.print(str[1]); // print voltage in 3rd digit (0.1 volt) if (str[2] == ' ') Serial.print("0"); else Serial.print(str[2]); // print voltage in 4th digit (0.01 volt) Serial.print(str[3]); // print voltage in 5th digit (0.001 volt) Serial.println(" Volt"); delay(200); // wait 0.2 second}

โปรแกรมที ่ 3-5 ไฟล NodeMCU_AnalogTest02.ino โปรแกรมอ านค าอ ินพ ุตอะนาลอกของ NodeMCU-12Eแปลงเป นค าแรงด ันในหน วยโวลต (V) ทศน ิยม 3 ต ําแหน ง แล วน ํามาแสดงที ่หน าต าง Serial Monitor

Page 40: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

40IoTIoT Education Kit - Lite

3.5 ใช งาน ZX-DHT11 มิ นิ บอร ดวั ดความชื้ นสั มพั ทธ และอุ ณหภู มิ

ZX-DHT11 เป นแผงวงจรขนาดเล ็กที ่บรรจ ุโมด ูลตรวจจ ับและว ัดความชื ้นส ัมพ ัทธ เบอร DHT11ซึ่ งนอกจากจะวั ดความชื้ นสั มพั ทธ ได แล ว ยั งให ค าของอุ ณหภู มิ ของพื้ นที่ ที่ ตรวจวั ดความชื้ นด วยการต ิดต อเป นแบบหนึ ่งสาย นั ่นค ือใช ขาพอร ตของไมโครคอนโทรลเลอร เพ ียง 1 หนึ ่งขาในการท ํางาน

ร ูปที ่ 3-13 ผลการอ านค าอ ินพ ุตอะนาลอกของโมด ูล NodeMCU-12E จากโปรแกรมที ่ 3-5 น ํามาแสดงผลที ่หน าต าง Serial Monitor ในหน วยโวลต (Volts) ความละเอ ียดทศน ิยม 3 ต ําแหน ง

รู ปที่ 3-14 หน าตาและการจั ดขาของ ZX-DHT11แผงวงจรว ัดความชื ้นส ัมพ ัทธ และอ ุณหภ ูม ิหมายเหตุ : มี ผู ผลิ ตแผงวงจรตรวจจั บที่ ใช โมดู ลDHT11 หลายราย หากไม ได ใช รุ นที ่แนะน ํา อาจม ีความเป นไปได ที่ จะมี การจั ดขาที่ แตกต างออกไปด ังนั ้น จ ึงควรตรวจสอบต ําแหน งขาให ถ ูกต อง ก อนเชื ่อมต อเพื ่อใช งาน

Page 41: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite41

3.5.1 คุ ณสมบั ติ ทางเทคนิ คของ ZX-DHT11ZX-DHT มี คุ ณสมบั ติ ทางเทคนิ คที่ ควรทราบเพื่ อเป นข อมู ลประกอบในการใช งานดั งนี้

ใช โมดู ล DHT11 ติ ดตั้ งบนแผ นวงจรพิ มพ

ม ีต ัวต านทานต อพ ูลอ ัปที ่ขา DATA ท ําให เชื ่อมต อก ับขาพอร ตของไมโครคอนโทรลเลอร ได โดยไม ต องต อต ัวต านทานเพิ ่ม

ใช ไฟเลี้ ยง +3 ถึ ง +5.5V ต องการกระแสไฟฟ า 2.5mA

วั ดความชื้ นสั มพั ทธ ได 20 ถึ ง 80%RH มี ความผิ ดพลาด 5%RH และมี ความละเอี ยดในการวั ด 1 % ขนาดของข อมู ล 8 บิ ต

ว ัดอ ุณหภ ูม ิได 0 ถ ึง 50 องศาเซลเซ ียส ม ีความผ ิดพลาด 2 องศาเซลเซ ียส ความละเอ ียดในการวั ด 1 องศาเซลเซี ยส ขนาดของข อมู ล 8 บิ ต

อั ตราการสุ มวั ด 1 วิ นาที

ความเร็ วในการตอบสนองต อการเปลี่ ยนแปลงในการวั ด 6 ถึ ง 30 วิ นาที

ขนาด 12 x 28 มิ ลลิ เมตร

รู ปที่ 3-14 แสดงหน าตาของ ZX-DHT11 และการจั ดขา

3.5.2 การติ ดต อกั บ DHT11DHT11 ต ิดต อก ับไมโครคอนโทรลเลอร ด วยสายส ัญญาณ 1 เส น บางครั ้งเร ียกการต ิดต อแบบนี ้ว า

การสื่ อสารแบบบั สเดี่ ยว (single bus communication) จึ งต องมี การกํ าหนดจั งหวะระหว างไมโครคอนโทรลเลอร และ DHT11 ให เหมาะสม (synchronization) จ ึงจะอ านและเข ียนค าก ับ DHT11 ได ถ ูกต อง

3.5.2.1 รู ปแบบข อมู ลของ DHT11

ข อมู ลใน 1 รอบของการติ ดต อมี ทั้ งสิ้ น 40 บิ ต และ DHT11 จะส งข อมู ลบิ ตนั ยสํ าคั ญสู งสุ ดออกมาก อนเป นบิ ตแรก รู ปแบบของข อมู ลเป นดั งนี้

Page 42: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

42IoTIoT Education Kit - Lite

3.5.2.2 กระบวนการสื่ อสารกั บ DHT11

ในร ูปที ่ 3-15 เป นไดอะแกรมเวลาแสดงกระบวนการต ิดต อระหว างไมโครคอนโทรลเลอร ก ับ DHT11

(1) ไมโครคอนโทรลเลอร ส งส ัญญาณเริ ่มต น ด วยการท ําให บ ัสเป นลอจ ิกตํ ่านานอย างน อย 18ไมโครว ินาท ี จากนั ้นท ําให บ ัสกล ับมาเป นลอจ ิกส ูง เพื ่อรอการตอบสนองจาก DHT11 โดยจะรอประมาณ20 ถ ึง 40 ไมโครว ินาท ี

(2) เมื่ อ DHT11 ได รั บสั ญญาณเริ่ มต นการติ ดต อ ก็ จะตอบสนองกลั บมา ด วยการทํ าให สถานะของบั สเป นลอจิ กตํ่ านาน 80 ไมโครวิ นาที และลอจิ กสู งนาน 80 ไมโครวิ นาที เพื่ อแจ งกลั บมายั งไมโครคอนโทรลเลอร จะเริ่ มต นส งข อมู ลกลั บมา 40 บิ ต

(3) DHT11 เริ ่มต นส งข อม ูลด วยบ ิตเริ ่มต นเป นลอจ ิกตํ ่านาน 50 ไมโครว ินาท ี จากนั ้นทยอยส งข อม ูลต อเนื ่อง 40 บ ิต โดยข อม ูล “0” จะท ําให บ ัสม ีสถานะลอจ ิกส ูงนาน 26 ถ ึง 28 ไมโครว ินาท ี ในขณะที่ ข อมู ล “1” จะทํ าให บั สมี สถานะลอจิ กสู งนาน 70 ไมโครวิ นาที ข อมู ลแต ละบิ ตจะถู กคั่ นด วยสถานะลอจ ิกตํ ่านาน 50 ไมโครว ินาท ี

(4) เมื่ อส งข อมู ลครบ DHT11 จะทํ าให บั สมี สถานะลอจิ กตํ่ านาน 50 ไมโครวิ นาที อี กครั้ งเพื่ อแจ งว าข อมู ลส งครบแล ว จากนั้ น DHT11 จะทํ าให บั สกลั บมามี สถานะลอจิ กสู งอี กครั้ ง เพื่ อกลั บเข าสู สภาวะพร อมท ํางานในรอบใหม ต อไป

ร ูปที ่ 3-15 ไดอะแกรมเวลาแสดงกระบวนการต ิดต อสื ่อสารระหว างไมโครคอนโทรลเลอร ก ับ DHT11

+Vcc

GND

1

"1" "0"

2 3 4

Page 43: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite43

3.5.3 ต ิดต้ั งและผนวกไฟล ไลบราร ี DHT.hในการใช งานโมดู ล DHT11 กั บ NodeMCU-12E และใช ซอฟต แวร Arduino IDE 1.6.5r5 ใน

การพ ัฒนาโปรแกรมจะต องต ิดตั ้งไฟล ไลบราร ี DHT.h เส ียก อน โดยไฟล ไลบราร ีจะมาพร อมก ับไฟล ติ ดตั้ งโปรแกรมที่ ดาวน โหลดจาก https://www.dropbox.com/home?preview=IoTeduKit_Tools.rar

เมื ่อต องการผนวกไฟล ไลบราร ี DHT.h เข าไปในโปรแกรม ให ใช ค ําสั ่ง #include <DHT.h>กํ าหนดไว ที่ ตอนต นของโปรแกรม

3.5.4 ตั วอย างการทดสอบอ านค าจาก DHT11 ด วย NodeMCU-12Eตั วอย างที่ นํ าเสนอต อไปนี้ เป นการทดลองติ ดต อกั บ ZX-DHT11 โดยใช NodeMCU-12E เพื่ อ

อ านค าความชื้ นสั มพั ทธ และอุ ณหภู มิ โดยพั ฒนาโปรแกรมด วย Arduino IDE

(3.5.4) ต อวงจรตามรู ปที่ 3-16 เพื่ อทดสอบการทํ างาน

รู ปที่ 3-16 การต อวงจรเพื่ อทดลองใช งาน ZX-DHT11ด วย NodeMCU-12E เพื่ อวั ดความชื้ นสั มพั ทธ แล วน ําค ามาแสดงที ่หน าต าง Serial Monitor ของ Arduino IDE

ESP-12E

WiFi

5D

1

16

D0

4D

22

D4

12

D6

0D

314

13

D7

5

3D91D10+3V3

GND

D10 1

D9 3

D8 15

D7 13

D6 12

14

GND

+3V3

D4 2

D3 0

D2 4

D1 5

D0 16

GPIO

Vin +5VdcON

POWER

AX-NodeMCUNodeMCU carrier board

TxD

2

A0

RSV

RSV

10 D12

9 D11

SD3

SD2

INT/SD1

MOSI/CMD

MISO/SD0

SCK/CLK

GND

+3V3

EN

nRST

GND

+Vcc+5V

GPIO

A0

VR

A0SD

3SD

2

10

D12

9D

11

MO

SI/C

MD

MIS

O/S

D0

SCK/C

LKIN

T/S

D1

ADCSELECT

D5

IoT Education Kit

NodeMCU-12E*

GND

DHT-11

out

DH

T11

out

DH

T11

GND+3.3V

GND

D4/GPIO2

+3.3V

D4

Page 44: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

44IoTIoT Education Kit - Lite

#include <DHT.h> // Include DHT sensor library#define DHTTYPE DHT11 // Define type of sensor#define DHTPIN D4 // Define connected pin

DHT dht(DHTPIN, DHTTYPE, 15); // Initial DHT sensor

void setup(){ dht.begin(); // Start DHT sensor operation Serial.begin(115200); // set serial port at 115200 bps}void loop(){ float humid = dht.readHumidity(); // Read humidity data float temp = dht.readTemperature(); // Read temperature data Serial.print("Humidity = "); // Send string to serial port. Serial.print(humid); // Send analog value to serial port. Serial.print(" Temperature = "); // Send string to serial port. Serial.println(temp); // Send analog value to serial port. delay(300); // Delay 0.3 second before restart}

โปรแกรมที ่ 3-6 ไฟล NodeMCU_DHT11.ino โปรแกรมทดลองใช งานโมด ูล DHT11 ด วย NodeMCU-12Eน ําค ามาแสดงที ่หน าต าง Serial Monitor ของ Arduino IDE

ร ูปที ่ 3-17 ผลการอ านค าจาก DHT11 ของโมด ูล NodeMCU-12E มาแสดงผล ที ่หน าต าง Serial Monitor

Page 45: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite45

(3.5.2) เขี ยนคํ าสั่ งตามโปรแกรมที่ 3-6 บั นทึ กไฟล เป น NodeMCU_DHT11.ino

(3.5.3) อั ปโหลดโปรแกรม เป ดหน าต าง Serial Monitor โดยคล ิกที ่ปุ มของ Serial Minitorที ่อยู ม ุมบนขวาของหน าต างโปรแกรม Arduiono IDE จะเห ็นหน าต าง Serial Monitor ปรากฏขึ ้นมา ตั ้งค าการท ํางานด ังนี ้

(3.5.3.1) ตั้ งค าอั ตราบอดหรื อบอดเรตที่ ช องมุ มขวาล างสุ ดเป น 115200 บิ ตต อวิ นาที

(3.5.3.2) เลื อก No line ending

(3.5.3.3) คลิ กท ําเครื ่องหมายที ่ช อง Autoscroll เพื ่อให การแสดงผลเก ิดการเลื ่อนบรรท ัดอ ัตโนม ัต ิเมื ่อม ีข อม ูลใหม เข ามา

จะได ผลการทํ างานตามรู ปที่ 3-17

3.6 ทดสอบการเชื ่อมต อเคร ือข าย WiFi ของ NodeMCU-12E

ในการทดสอบการเชื่ อมต อเครื อข าย WiFi ของ NodeMCU-12E จะต องเตรี ยมการดั งนี้

(1) จั ดเตรี ยมตั วกระจายคลื่ น WiFi หรื อเราเตอร

(2) เตรี ยมรหั ส SSID หรื อชื่ อเครื อข ายและ Password หรื อรหั สผ านของเครื อข าย

(3) เป ดเราเตอร และรอจนพร อมท ํางาน

(4) ส วนของ NodeMCU-12E ไม ต องมี อุ ปกรณ อิ นพุ ตเอาต พุ ตต อเพิ่ มเติ ม เพี ยงจ ายไฟให ก ับ NodeMCU-12E ด วยการเชื ่อมต อก ับพอร ต USB ของคอมพ ิวเตอร ก ็พร อมส ําหร ับการร ับโปรแกรมและสื่ อสารข อมู ลกั บคอมพิ วเตอร

ร ูปที ่ 3-18 แสดงส วนของโมด ูล WiFi และสายอากาศของ NodeMCU-12E

Page 46: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

46IoTIoT Education Kit - Lite

โปรแกรมที ่ 3-7 ไฟล NodeMCU_WiFiTest.ino โปรแกรมทดสอบการเชื ่อมต อ WiFi ของ NodeMCU-12E

#include <ESP8266WiFi.h> // Include ESP8266 libraryconst char* ssid = "Your SSID"; // SSID is setconst char* password = "Your password"; // Password is set#define LEDpin D0void setup(){ Serial.begin(115200); // Enable UART Serial.println(); Serial.println(); Serial.print("Connecting to "); // Print title message Serial.println(ssid); // Print SSID name pinMode(LEDpin, OUTPUT); digitalWrite(LEDpin, 0); // WiFi detected indicator - active low WiFi.begin(ssid, password); // Send password while (WiFi.status() != WL_CONNECTED) // Check WiFi status { delay(500); Serial.print("."); // Print dot for showing the progress status } Serial.println(""); Serial.println("WiFi connected"); // Print the connected message Serial.println("IP address: "); // Print IP address Serial.println(WiFi.localIP());}void loop(){ digitalWrite(LEDpin, 0); // WiFi connected indicator - active low while (WiFi.status() != WL_CONNECTED)// Check WiFi status { digitalWrite(LEDpin, 0); // LED at D0 blink when disconnect WiFi delay(400); Serial.println("connection WiFi failed"); // Print error message digitalWrite(LEDpin, 1); delay(100); }}

ค ําอธ ิบายโปรแกรมเพิ ่มเต ิม

ส วนส ําค ัญของโปรแกรมนี ้ค ือ การผนวกไฟล ไลบราร ี ESP8266.h เพราะไลบราร ีนี ้จะท ําหน าที ่ก ําหนดการท ํางานของ WiFi ภายในต ัว NodeMCU-12E ทั ้งหมด สิ ่งที ่ต องกระท ําค ือ ก ําหนดชื ่อ SSID และ passwordหร ือรห ัสผ านของเคร ือข าย WiFi ที ่ใช ในการทดสอบ ด ังนั ้นผู พ ัฒนาโปรแกรมต องระบ ุให ถ ูกต อง

การแจ งสถานะการทํ างานมี 2 ส วนคื อ แสดงผลผ านทางหน าต าง Serial Monitor ด วยการใช คํ าสั่ งSerial.println(); และผ าน LED บนตั ว NodeMCU ที่ ต อกั บขาพอร ต D0 โดยการขั บให LED ตั วนี้ สว างต องเขี ยนข อม ูล 0 ไปย ังขาพอร ต D0 (แอกต ีฟด วยลอจ ิกตํ ่า)

การกํ าหนดค ารวมถึ งการเชื่ อมต อ WiFi จะเกิ ดขึ้ นในฟ งก ชั่ น setup(); ทั้ งหมด ส วนในฟ งก ชั่ นloop(); เป นโปรแกรมตรวจสอบการเชื่ อมต อ WiFi ด วยคํ าสั่ ง while (WiFi.status() !=

WL_CONNECTED) หากการเชื่ อมต อเป นปกติ LED ที่ ขา D0 จะติ ดสว าง แต ถ าหากการเชื่ อมต อล มเหลวLED จะกะพร ิบ และม ีการแสดงข อความแจ งการเชื ่อมต อล มเหลวที ่หน าต าง Serial Monitor

Page 47: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite47

เมื่ อเตรี ยมความพร อมเรี ยบร อยแล ว ทํ าการเขี ยนโปรแกรมที่ 3-7 คอมไพล และอั ปโหลดโปรแกรมไปยั ง NodeMCU-12E โดยในบรรทั ด

const char* ssid = "Your SSID";

และconst char* password = "Your password";

ของโปรแกรมที ่ 3-7 ผู พ ัฒนาต องก ําหนดชื ่อ SSID และรห ัสผ าน password ของต ัวเองที ่เตร ียมไว ใส ลงในโปรแกรม

เมื่ ออั ปโหลดโปรแกรมเสร็ จแล ว คลิ กปุ ม Serial Monitor เพื่ อเป ดหน าต าง Serial Monitorโดยการทํ างานของ NodeMCU-12E นั บจากนี้ จะมี การรายงานสถานะการทํ างานในทุ กขั้ นตอนที่ สํ าคั ญมายั งหน าต าง Serial Monitor นี้

เมื่ อ NodeMCU-12E เริ่ มทํ างาน มั นจะทํ าการเชื่ อมต อกั บเครื อข าย WiFi ที่ กํ าหหนด หน าต างSerial Monitor แสดงข อความ Connecting to INEX และจุ ด .... ไปอย างต อเนื่ องดั งรู ป จนกว าจะเชื่ อมต อ WiFi สํ าเร็ จ

Page 48: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

48IoTIoT Education Kit - Lite

เมื่ อ NodeMCU-12E เชื่ อมต อ WiFi ได แล ว จะแสดงหมายเลข IP ที่ ได รั บดั งรู ป พร อมกั นนั้ นLED ที่ ตํ าแหน ง D0 บนตั ว NodeMCU-12E จะติ ดค าง

ในกรณี ที่ เครื อข าย WiFi หยุ ดทํ างาน ไม ว าจะด วยสาเหตุ ใด NodeMCU-12E จะแสดงสถานะการเชื่ อมต อผ านหน าต าง Serial Monitor ด วยข อความ connection WiFi failed ดั งรู ป LEDที่ ตํ าแหน ง D0 บนตั ว NodeMCU-12E จะติ ดกะพริ บเพื่ อแจ งเตื อน

จากการทดสอบในบทนี ้ เป นการแสดงให เห ็นว า NodeMCU-12E สามารถเชื ่อมต อก ับเคร ือข าย WiFiได ไม ยาก ด วยการก ําหนดพาราม ิเตอร หล ักๆ 2 ต ัว น ับเป นการเริ ่มต นที ่ด ีส ําหร ับการพ ัฒนาอ ุปกรณ IoT ด วยต ัวเอง โดยใช NodeMCU-12E

Page 49: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite49

แนวคิ ดของ IoT (Internet of Things) คื อ ต องการทํ าให ทุ กอุ ปกรณ สามารถติ ดต อสื่ อสารกั นได ทั่ วโลก การจะบรรลุ เป าหมายดั งกล าวจะต องมี การวางระบบการทํ างานที่ ชั ดเจน และมี ความเป นมาตรฐานอย างเพ ียงพอ เพราะจะต องให น ักพั ฒนาอ ุปกรณ IoT เห ็นสอดคล อง และยอมร ับกรอบกต ิกาของรู ปแบบการสื ่อสารข อมู ล

ระบบ IoT จะเกิ ดขึ้ นได ต องมี องค ประกอบครบอย างน อย 5 อย างคื อ

1. สิ่ งของ

2. อุ ปกรณ (ตั วควบคุ ม, ตั วตรวจจั บ และอุ ปกรณ ขั บโหลดหรื ออุ ปกรณ เอาต พุ ต)

3. ระบบเชื่ อมต ออิ นเทอร เน็ ต (จะเป นแบบมี สายหรื อไร สายก ็ได )

4. ข อมู ล

5. ระบบจั ดการฐานข อมู ลคลาวด เซิ ร ฟเวอร (Cloud server)

ในบทก อนหน านี้ ได อธิ บายถึ งอุ ปกรณ อั นประกอบด วย บอร ดควบคุ ม NodeMCU-12Eตั วตรวจจั บ และตั วแสดงผลแบบต างๆ รวมถึ ง การเชื่ อมต อกั บเครื อข ายข อมู ลไร สาย WiFi ในบทนี้ จะอธิ บายเกี่ ยวกั บการเชื่ อมต อเครื อข ายอิ นเทอร เน็ ตและกั บคลาวด เซิ ร ฟเวอร นํ าเสนอตั วอย างโปรแกรมในการทดสอบการทํ างาน เพื่ อให เข าใจถึ งกลไกในการทํ างาน

4.1 กลไกการทํ างานโดยรวมของอุ ปกรณ IoT

ในร ูปที่ 4-1 แสดงไดอะแกรมการทํ างานโดยรวมของอุ ปกรณ IoT อย างง ายโดยใช NodeMCU-12E เป นตั วควบคุ มหลั ก จะเห็ นว า NodeMCU จะต องเชื่ อมต อกั บเครื อข าย WiFi ภายใน โดยต อกั บเราเตอร ในแบบไร สาย จากนั้ นเชื่ อมต อกั บเครื อข ายอิ นเทอร เน็ ตโดยใช บริ การของผู ให บริ การหรื อInternet Service Provider (ISP) แล วส งผ านข อมู ลไปเก็ บไว ยั งคลาวด เซิ ร ฟเวอร ซึ่ งทํ าหน าที่ เป นตั วกลางหรื อโบรกเกอร (broker) เพื่ อแลกเปลี่ ยนข อมู ลที่ ส งขึ้ นไปจาก NodeMCU-12E กั บอุ ปกรณ อื่ นๆบนเครื อข ายอิ นเทอร เน็ ต โดยคลาวด เซิ ร ฟเวอร ที่ เลื อกมาเป นตั วอย างคื อ dweet.io

Page 50: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

50 IoTIoT Education Kit - Lite

ร ูปที ่ 4-1 ไดอะแกรมการท ํางานโดยรวมของอ ุปกรณ IoT อย างง ายโดยใช NodeMCU-12E เป นต ัวควบค ุมหล ัก

Page 51: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite51

เมื ่อข อม ูลถ ูกฝากไว ที ่ dweet.io แล ว จะม ีขั ้นตอนการจ ัดการเล ็กน อย เพื ่อท ําให ผู ด ูแลระบบหร ือใช ข อม ูลได ร ับต ําแหน งของเซ ิร ฟเวอร ที ่ใช เก ็บข อม ูล ซึ ่งข อม ูลนั ้นม ักเป นข อม ูลด ิบ อาจสื ่อสารก ับบ ุคคลทั ่วไปได อย างจํ าก ัด จ ึงต องหาต ัวช วยเพื ่อท ําให ข อม ูลที ่อ ุปกรณ IoT เก ็บร ักษาไว สื ่อสารก ับผู สนใจให ด ูง ายขึ ้น เว ็บไซต ที ่เล ือกมาใช ในการอธิ บายในที ่นี ้ค ือ freeboard.io ท ําหน าที ่เป นหน าป ดของระบบ โดยต ัว freeboard ม ีการจ ัดการข อม ูลที ่เข าก ับ dweet.io ได เป นอย างด ี ที ่ freeboard.io จะม ีต ัวอย างของหน าป ดแสดงผลให เล ือกค อนข างหลากหลาย และผู ใช งานสามารถตั ้งชื ่อของข อม ูลและหน วยที ่ต องการแสดงผลในการใช งานทั ้ง dweet.io และ freeboard.io ม ีทั ้งแบบฟร ีและแบบม ีค าใช จ าย สํ าหร ับในหน ังส ือเล มนี ้เล ือกแบบไม ม ีค าใช จ าย เพื ่อให ผู สนใจท ุกคนได ทดลองใช งานให คล องก อน หากต องการความสามารถหร ือขนาดของพื ้นที ่เก ็บข อม ูลมากขึ ้น จ ึงค อยเล ือกช องทางแบบม ีค าใช จ ายต อไป

ดั งนั้ น โดยสรุ ปขั้ นตอนการพั ฒนาอุ ปกรณ IoT อย างง าย มี ดั งนี้

(1) พั ฒนาฮาร ดแวร

(2) พ ัฒนาโปรแกรมบนต ัวฮาร ดแวร หร ืออ ุปกรณ เพื ่ออ านค าหร ือสั ่งการอ ุปกรณ ต อพ วงให สมบู รณ

(3) พั ฒนาโปรแกรมเพื่ อเชื่ อมต อกั บเว็ บไซต dweet.io

(4) นํ าข อมู ลจาก dweet.io มาแสดงผลด วยหน าป ดที่ เลื อกจากเว็ บไซต freeboard.io

4.2 เก่ี ยวกั บ dweet.io

dweet.io (อ านว า ดะ-วี ต) เป นเว็ บไซต ที่ ทํ าหน าที่ เป นคลาวด เซิ ร ฟเวอร (cloud server) สํ าหรั บงาน IoT โดยเฉพาะ จั ดตั้ งโดย Bug Labs, Inc. โดย dweet.io ทํ าหน าที่ เป นได ทั้ งตั วให ข อมู ลหรื อพั บล ิชเชอร (publisher) และตั วบอกรั บข อม ูลหร ือซ ับสไครเบลอร (subscribler) จ ึงท ําให dweet.io ทํ าหน าที ่เป นตั วกลางจั ดการข อมู ลหรื อโบรกเกอร ได เป นอย างดี ในร ูปที ่ 4-2 แสดงไดอะแกรมของความเกี ่ยวข องของส วนประกอบที่ ช วยในการจั ดการข อมู ลของอุ ปกรณ IoT

ร ูปที ่ 4-2 ไดอะแกรมการท ํางานของส วนจ ัดการข อม ูลในคราวด เซ ิร ฟเวอร ของอ ุปกรณ IoT

ตัวกลางจัดการขอมูล(Broker)

อุปกรณบอกรับขอมูล(Subscribe)

โนดอุปกรณขับโหลด

แอปพลิเคชั่น

อุปกรณใหขอมูล(Publisher)

โนดตัวตรวจจับ

แอปพลิเคชั่น

แจงสงขอมูล

ขอมูลท่ีสง

แจงสถานะพรอมรับขอมูล

ขอมูลท่ีสง

Page 52: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

52 IoTIoT Education Kit - Lite

จ ุดเด นของ dweet.io ค ือ ใช ร ูปแบบการถ ายทอดข อม ูลในล ักษณะข อความสั ้น คล ายๆ ก ับการทว ีตในเว ็บไซต ทว ีตเตอร (tweeter.com) นั ่นค ือ dweet จ ึงเป นการล อค ํามาจาก tweet โปรโตคอลการร ับส งข อม ูลของ dweet.io เป นแบบ http แต เนื ่องจากใช แนวค ิดแบบข อความสั ้น จ ึงทํ าให ขนาดของการส งผ านข อม ูลม ีขนาดกะท ัดร ัด เพ ียงระบ ุชื ่อของต ําแหน งที ่เก ็บข อม ูลหร ือเร ียกว า Thing แล วตามด วยชื ่อของข อมู ล ค าของข อม ูล ซึ ่งเพ ียงพอต อการส งและอ านข อม ูลของตั วตรวจจ ับ, ต ัวควบค ุม, หุ นยนต และอ ุปกรณ สื ่อสารสม ัยใหม ซึ ่งนั ่นเป นไปตามความต องการของการพ ัฒนาอ ุปกรณ IoT

ขนาดของข อม ูลที่ dweet.io รองรั บได ต อการถ ายทอดข อมู ลแต ละครั้ งคื อ สู งสุ ดไม เกิ น 2,000ตั วอั กษร หากเที ยบกั บ tweeter นั บว า ใหญ กว ามาก เพราะ tweeter จํ ากั ดไว ที่ 140 ตั วอั กษร

การใช งาน dweet.io ม ีทั้ งแบบไม มี ค าใช จ ายและแบบเสี ยค าใช จ าย ในกรณ ีที่ เป ดให การเข าถึ งThing แต ละตั วใน dweet.io เป นแบบสาธารณะ จะใช งานได โดยมี ค าใช จ าย แต ถ าหากต องการชื่ อThing ที่ เฉพาะเจาะจง เป นส วนตั ว รวมถึ งมี การป องกั นการเข าถึ ง จะต องเสี ยค าใช จ ายในราคา 0.99ดอลล าร สหรั ฐต อล็ อก (lock) ต อเดื อน

ด านการเก ็บร ักษาข อม ูล dweet.io จะเก ็บข อม ูล 500 ครั ้งล าส ุดไว ภายใน 24 ชั ่วโมง และถ าหากไม ม ีการใช งานข อม ูลในต ําแหน งนั ้นเลย 24 ชั ่วโมง ข อม ูลทั ้งหมดจะหายไป เมื ่อเป นเช นนั ้น ผู ใช งานสามารถเชื ่อมต อข อม ูลในแต ละต ําแหน งไปย ังเว ็บไซต ส ํารองข อม ูลชื ่อด ัง อาท ิ Dropbox, AWS, Tempo-DB ซึ ่งการทํ าเช นนั ้นผู ใช งานต องด ําเน ินการเอง ทาง dweet.io ย ังไม ม ีเครื ่องม ือรองร ับ (ในขณะที ่จ ัดท ําหน ังส ือเล มนี ้) ด ังนั ้น หากต องการใช ฟร ีและได ความเป นส วนต ัว แนะนํ าให ตั ้งชื ่อต ําแหน งหร ือ Thingที่ เป นพิ เศษ และยากที่ จะมี คนอื่ นใช ซํ้ าได

สํ าหรั บการถ ายทอดข อมู ล dweet.io มี API (Application Programming Interface) ช วย โดยเข าไปที ่ https://dweet.io/play ทํ าให ใช งานง าย โดย dweet.io ไม ต องการการติ ดตั ้งหร ือการลงทะเบี ยนใดๆ เพี ยงให ข อมู ลแล วส งต อออกไป ขั้ นตอนจึ งสั้ น ง าย กระชั บ เหมาะอย างยิ่ งกั บการสื่ อสารข อมู ลระหว างเครื่ องจั กรต อเครื่ องจั กรหรื อ M2M (machine-to-machine) ซึ่ งก็ คื อ แนวคิ ดของ IoT นั่ นเอง

4.3 ตั วอย างการทดลองเพื่ อเชื่ อมต อ NodeMCU-12E กั บ dweet.io

4.3.1 ติ ดต อเบื้ องต นในตั วอย างแรกนี้ จะทดสอบการเชื่ อมต อกั บเว็ บไซต dweet.io ของ NodeMCU-12E

(4.3.1.1) พ ิมพ โปรแกรมที ่ 4-1 ลงบน Arduino IDE

(4.3.1.2) อ ัปโหลดไปย ัง NodeMCU-12E

Page 53: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite53

โปรแกรมที่ 4-1 ไฟล NodeMCU_dweetTest.ino โปรแกรมทดสอบการติ ดต อเว็ บไซต dweet.io ของNodeMCU-12E (มี ต อ)

#include <ESP8266WiFi.h> // Include main libraryconst char* ssid = "Your SSID"; // Set SSIDconst char* password = "Your password"; // Set passwordconst char* host = "dweet.io"; // Set host

void setup(){ Serial.begin(115200); // Print setting message delay(10); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); // Print WiFi status } Serial.println(""); Serial.println("WiFi connected"); // Print connect status Serial.println("IP address: "); Serial.println(WiFi.localIP()); // Print IP address}

void loop(){ // Use WiFiClient class to create TCP connections WiFiClient client; const int httpPort = 80; // Set HTTP Port if (!client.connect(host, httpPort)) // Test connection { Serial.println("connection failed"); // Print connection fail messag return; } //https://dweet.io/get/latest/dweet/for/Test01 client.print(String("GET /get/latest/dweet/for/Test01 HTTP/1.1\r\n") +

"Host: " + host + "\r\n" +"Connection: keep-alive\r\n" +"Cache-Control: max-age=0\r\n\r\n");

delay(3000); while (client.available()) { String line = client.readStringUntil('\r'); Serial.println(line); }}

Page 54: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

54 IoTIoT Education Kit - Lite

โปรแกรมที่ 4-1 ไฟล NodeMCU_dweetTest.ino โปรแกรมทดสอบการติ ดต อเว็ บไซต dweet.io ของNodeMCU-12E (จบ)

ค ําอธ ิบายโปรแกรมเพิ ่มเต ิม

เมื ่อร ันโปรแกรม NodeMCU-12E จะท ําการเชื ่อมต อก ับเคร ือข าย WiFi เพื ่อออกสู เคร ือข ายอ ินเทอร เน ็ตผ านเราเตอร คํ าสั ่งในการเชื ่อมต อจะอยู ในฟ งก ชั ่น setup() ทั ้งหมด

เมื ่อเชื ่อมต อได แล ว จะท ําการสร างการเชื ่อมต อแบบ TCP โดยใช ค ําสั ่ง client.connect(host,httpPort) เพื ่อทดสอบการเชื ่อมต อก ับเว ็บไซต ก อน ถ าเชื ่อมต อไม ได จะแสดงข อความ “connection failed” ในโปรแกรมก ําหนด host เป น dweet.io ตามการประกาศต ัวแปร const char* host = "dweet.io";ที ่ส วนห ัวของโปรแกรม และ httpPort เป น 80 ตามการประกาศที ่บรรท ัด const int httpPort = 80;

ลํ าดั บต อไปเป นส งคํ าขอไปยั งเซิ ร ฟเวอร dweet.io ด วยคํ าสั่ ง client.print() ใช เมธอด GETไปย ังโลคั ลพาธ /get/latest/dweet/for/Test01 ที ่ต องการถาม สํ าหร ับเวอร ชั ่นของ HTTP ก ําหนดเป น HTTP/1.1 ส วน Host ใช dweet.io การเชื่ อมต อกั บเซิ ร ฟเวอร จะเป นแบบ Connection: keep-alive คื อ ไม ต องป ดการเชื ่อมต อ เพราะจะม ีการเชื ่อมต ออย างต อเนื ่อง

ต อมาทํ าการแสดง Response Code, Response Headers และ Response Body ตามที่ ปรากฏในรู ปที่ 8-3 และ 8-4 ด วยคํ าสั่ ง client.readStringUntil('\r') นํ ามาแสดงเป นข อความด วยคํ าสั่ งSerial.println()

ร ูปที ่ 4-3 หน าต าง Serial Monitor แสดงผลการต ิดต อก ับ dweet.io ของ NodeMCU-12E ที ่ล มเหลว

(4.3.1.3) เป ดหน าต าง Serial Monitor จะเห็ นผลการทํ างานตามรู ปที่ 4-3

เริ่ มต นด วยการพิ มพ สถานะการเชื่ อมต อ, ช่ื อ SSID, หมายเลข IP แอดเดรส ตามด วยข อความแจ งรู ปแบบของโปรโตคอล จนถึ งบรรทั ดแสดงสถานะการติ ดต อจร ิงแจ งว า

{"this":"failed","with":404,"because":"We couldn’tfind this"}

หมายถึ ง ไม พบข อมู ลหรื อ Thing ที่ ต องการเชื่ อมต อ

Page 55: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite55

(4.3.1.4) จากผลในข อ (4.3.1.3) จึ งต องทํ าการกํ าหนดชื่ อตํ าแหน งหรื อ Thing ที่ ต องการในเว็ บไซต dweet.io เสี ยก อน โดยเป ดเว็ บบราวเซอร อาทิ Google Chrome แล วพิ มพ คํ าสั่ งต อไปนี้ ลงในช องป อน URL หรื อตํ าแหน งของเว็ บไซต แล วกด Enter

https://dweet.io/dweet/for/Test01?Hello

เป นการกํ าหนดชื่ อ Thing เป น Test01 และกํ าหนดข อความเป น Hello

(4.3.1.5) กลั บไปดู ที่ หน าต าง Serial Monitor ใหม

จะได ผลดั งรู ปที่ 4-4 จะเห็ นการเปลี่ ยนแปลงขึ้ นที่ บรรทั ดสุ ดท าย เป นการแจ งว า

{"this":"succeeded","by":"dweeting","the":"dweet","with":"thing":"Test01","created":"2015-11-19T11:36:27.801Z","content":{"Hello":""}}}

หมายถึ ง ขณะนี้ NodeMCU-12E ติ ดต อกั บ dweet.io ด วย thing ที่ ชื่ อว า Test01 และอ านข อความได ว า Hello

ข อพึ งปฏ ิบ ัติ ก อนการอ านค าจาก dweet.io จะต องมี การกํ าหนดชื ่อต ําแหน งหร ือ Thing ก อนเสมอ ด วยคํ าสั ่ง

ที ่ม ีร ูปแบบด ังนี ้

https://dweet.io/dweet/for/Thing_name?Message

โดยที่ Thing_name คื อชื ่อของข อมู ลหรื อ Thing

Message คื อ ข อความใดๆ

ร ูปที ่ 4-4 หน าต าง Serial Monitor แสดงผลการต ิดต อก ับ dweet.io ของ NodeMCU-12E ได ส ําเร ็จ

Page 56: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

56 IoTIoT Education Kit - Lite

4.3.2 ส งค าของตั วตรวจจ ับไปยั งคลาวด เซ ิร ฟเวอร

ในตั วอย างนี ้จะเพิ ่มความซ ับซ อนและความสามารถของระบบ จากต ัวอย างแรกเป นการทดสอบการเชื่ อมต อ โดยในตั วอย างนี้ จะทํ าให เห ็นการทํ างานเป นตั วกลางในการแพร ข อมู ลหรื อโบรกเกอร (broker) ของคลาวด เซ ิร ฟเวอร dweet.io มากยิ ่งขึ ้น

NodeMCU-12E จะส งข อมู ลไปย ังคลาวด เซ ิร ฟเวอร ซึ ่งทํ าหน าที ่เป นต ัวกลางหร ือโบรกเกอร เพื ่อให อ ุปกรณ อื ่นๆ หร ือแม กระทั ่งผู ใช งานอ ินเทอร เน ็ตต ิดต อสื ่อสารผ านทางนี ้ แทนที ่จะเข าถ ึงต ัวอ ุปกรณ NodeMCU-12E โดยตรง ในที ่นี ้ใช เว ็บไซต dweet.io ทํ าหน าที ่เป นโบรกเกอร เพื ่อเข ียนและอ านค า

4.3.2.1 การระบุ ตํ าแหน งของคลาวเซิ ร ฟเวอร เม่ื อใช dweet.io

ในการใช dweet.io เป นคลาวด เซิ ร ฟเวอร และทํ าหน าที่ เป นโบรกเกอร ในระบบ IoT จะมี ข อกํ าหนดในการเก็ บและอ านข อมู ลกั บคลาวด เซิ ร ฟเวอร

(4.3.2.1.1) เริ่ มจากตั้ งชื่ อตํ าแหน งหรื อชื่ อของ Thing เป นของตั วเองก อน เพราะชื่ อ Thingเป นตั วระบุ บตั วตนของอุ ปกรณ ที่ ส งข อมู ลไปยั ง dweet.io มี รู ปแบบดั งนี้

http://www.dweet.io/dweet/for/Thing_name?Value=Data

โดยที่ Thing_name คื อชื ่อของข อมู ลหรื อ Thing

Message คื อ ข อความใดๆ

Data ค ือ ค าหรื อข อมู ล

ตั วอย างที่ 4-1http://www.dweet.io/dweet/for/Test_Thing?val=b1101

สรุ ปได ว า

Thing คื อ Test_Thing

ชื่ อข อมู ล คื อ val

ค าที่ ต องการส งไปยั ง dweet.io คื อ b1101 หรื อ เลขฐานสอง 1101

(4.3.2.1.2) เป ดเว ็บบราวเซอร ขึ ้นมา น ํา URL ที ่ได ไปใส ลงในช องป อนต ําแหน ง URL ด ังร ูปที ่8-5 กดค ีย Enter จะเริ ่มการส งข อม ูลไปย ังเว ็บไซต dweet.io ในร ูปแบบ เมธอด GET

ร ูปที ่ 4-5 แสดงการส งข อความไปย ัง dweet.io และการแสดงผล

Page 57: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite57

(4.3.2.13) เมื ่อเว็ บบราวเซอร ได รั บคํ าสั ่ง ก ็จะเป ดเว ็บเพจเพื ่อแสดงผล ด ังร ูปที ่ 4-5 ค าที ่แสดงอยู รู ปในรู ปแบบ json เป นดั งนี้

{"this":"succeeded","by":"dweeting","the":"dweet",

"with":{"thing":"Test_Thing,"creatd":”2015-07-19T05:27:25.952Z”,“content":{"val":"b1101"}}}

จะเห็ นได ว า ข อความที่ ได จะมี ชื่ อ Thing ที่ กํ าหนดไว และ ค าอื่ นๆ ที่ ระบุ ด วย ดั งนั้ นในการทดลองนั บจากนี้ จะใช วิ ธี นี้ ในการส งค าไปยั ง dweet.io

4.3.2.2 การดู ข อมู ลจากคลาวเซิ ร ฟเวอร เมื่ อใช dweet.io

เมื่ อทํ าการส งข อมู ลไปยั ง dweet.io แล ว หากต องการดู ข อมู ล มี ขั้ นตอนดั งนี้

(4.3.2.2.1) เข าไปที่ http://www.dweet.io/ ดั งรู ป แล วคลิ กที่ Play

(4.3.2.2.2) คลิ กไปที่ /get/latest/dweet/for/{thing} จะปรากฏช องใส ชื่ อ Thing ที่ เคยส งขึ้ นไป ในที่ นี้ คื อ Test_Thing

Page 58: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

58 IoTIoT Education Kit - Lite

(4.3.2.2.3) จะส ังเกตได ว า ที ่รายการ Resquest URL จะแสดง URL ที ่ท ําการถามค าล าส ุดซึ ่งส งมาย ัง dweet.io จะใช URL นี ้ในการด ูค าล าส ุดจาก dweet.io และข อม ูลที ่ได กล ับมาจะอยู ในร ูปแบบjson ด ังร ูป

จะมี ชื่ อ Thing ที่ ระบุ , วั นเวลาที่ ส ง (created), ค าต างๆ ที่ ส งเข ามา นอกจากนั้ น ยั งมี ความสามารถในการด ูค าทั ้งหมดที ่ส งเข ามา ศ ึกษารายละเอ ียดเพิ ่มเต ิมได จาก dweet.io

4.3.3 ต ัวอย างโปรแกรมทดสอบใช งาน dweet.io เป นโบรกเกอร ในการทดลองนี้ NodeMCU-12E จะส งค าจํ านวนนั บและค าข อมู ลดิ จิ ตอลที่ ได จากการแปลง

สั ญญาณอะนาลอกเป นดิ จิ ตอลไปยั งเว็ บไซต dweet.io

(4.3.3.1) ต อวงจรตามรู ปที่ 4-6

(4.3.3.2) พิ มพ คํ าสั่ งในโปรแกรมที่ 4-2 ลงใน Arduino IDE

(4.3.3.3) ทํ าการอั ปโหลดไฟล ไปยั ง NodeMCU-12E

Page 59: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite59

ESP-12E

WiFi

5D

1

16

D0

4D

22

D4

12

D6

0D

314

D5

13

D7

5D

8

3D91D10

RxD0TxD0

+3V3

GND

D10 1

D9 3

D8 15

D7 13

D6 12

14

GND

+3V3

D4 2

D3 0

D2 4

D1 5

D0 16

GPIO

Vin +5VdcON

POWER

AX-NodeMCUNodeMCU carrier board

TxD

2

A0

RSV

RSV

10 D12

9 D11

SD3

SD2

INT/SD1

MOSI/CMD

MISO/SD0

SCK/CLK

GND

+3V3

EN

nRST

GND

+Vcc+5V

GPIO

A0

VR

A0

SD

3SD

2

10

D12

9D

11

MO

SI/C

MD

MIS

O/S

D0

SCK/C

LKIN

T/S

D1

ADCSELECT

D5

IoT Education Kit

NodeMCU-12E*+3.3V

A0VR110k

ร ูปที ่ 4-6 วงจรทดลองการน ําข อม ูลของอ ินพุ ตอะนาลอกของ NodeMCU-12E ส งไปย ังคลาวด เซ ิร ฟเวอร

ร ูปที ่ 4-7 หน าต าง Serial Monitor แสดงผลการท ํางานของการต ิดต อระหว าง NodeMCU-12E และเว ็บไซต dweet.io

Page 60: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

60 IoTIoT Education Kit - Lite

#include <ESP8266WiFi.h> // Include main libraryconst char* ssid = "Your SSID"; // Set your SSIDconst char* password = "Your password"; // Set your passwordconst char* thing = "NodeMCU_Send"; // Set Thing nameconst char* host = "dweet.io"; // Set hostint count = 0;int sensorValue = 0;void setup(){ Serial.begin(115200); // Print setting message delay(10); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); // Print WiFi status } Serial.println(""); Serial.println("WiFi connected"); // Print connect status Serial.println("IP address: "); Serial.println(WiFi.localIP()); // Print IP address}void loop(){ sensorValue = analogRead(A0); // Read analog input delay(1000); ++count; // Count value WiFiClient client; const int httpPort = 80; // Set HTTP port if (!client.connect(host, httpPort))// Test connection {

Serial.println("connection failed"); // Print connection fail messagereturn;

} String url = String("/dweet/for/") + thing + "?"; // Set message url += "count="; url += count; url += "&Analog="; url += sensorValue; client.print(String("GET ") + url + " HTTP/1.1\r\n" +

"Host: " + host + "\r\n" +"Connection: keep-alive\r\n" +"Cache-Control: max-age=0\r\n\r\n");

Serial.println("URL : ");

โปรแกรมที ่ 4-2 ไฟล NodeMCU_dweetGet.ino โปรแกรมส ําหร ับก ําหนดให NodeMCU เชื ่อมต อก ับเว ็บไซต dweet.io เพ่ื อส งค าอ ินพ ุตอะนาลอก โดยรห ัส SSID และ password จะขึ ้นก ับเคร ือข ายที ่ใช งาน (ม ีต อ)

Page 61: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite61

Serial.println(url); // Print URL delay(3000);

while (client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("closing connection"); // Print closing status}

ค ําอธ ิบายโปรแกรมเพิ ่มเต ิม

เมื ่อ NodeMCU-12E ท ํางาน จะท ําการต อ WiFi และแสดงหมายเลข IP แอดเดรสที ่ได จากนั ้นกระท ําค ําสั ่งwhile (WiFi.status() != WL_CONNECTED) เพื ่อตรวจสอบการเชื ่อมต อ WiFi ถ ัดมาทํ าการแสดง URL ที ่จะส งไปย ัง dweet.io ด วยค ําสั ่ง client.print แล วแสดง Response ที ่ได จากการส งข อม ูลด วยคํ าสั ่งclient.readStringUntil('\r')

ด านการประกาศต ัวแปร ม ีด ังนี ้

const char* thing = "NodeMCU_Send"; เป นตั วแปรที่ ระบบชื่ อ thing

const char* host = "dweet.io"; เป นชื่ อโฮสต ที่ ส งข อมู ลเข าไป (ชื่ อเว็ บไซต )

ถ าต องการส งข อม ูลมากกว า 1 ค า จะมี ร ูปแบบดั งนี้ /dweet/for/NodeMCU_Send?count=2&Analog=703

โดยที ่ NodeMCU_Send คื อชื่ อ Thing

count เป นชื ่อที ่ระบ ุค าจ ํานวนน ับ

Analog เป นชื ่อที ่ระบ ุค าอะนาลอกที ่อ านได

ส ังเกตได ว าจะม ีเครื ่องหมาย & คั ่นระหว างช ุดข อม ูล ถ าต องการเพิ ่มชุ ดข อม ูลให ใช เครื ่องหมาย & คั ่นไว สํ าหรั บรู ปแบบการส งข อม ูลเป นแบบ เมธอด GET

โปรแกรมที ่ 4-2 ไฟล NodeMCU_dweetGet.ino โปรแกรมส ําหร ับก ําหนดให NodeMCU เชื ่อมต อก ับเว ็บไซต dweet.io เพ่ื อส งค าอ ินพุ ตอะนาลอก โดยรห ัส SSID และ password จะขึ ้นก ับเคร ือข ายที ่ใช งาน (จบ)

Page 62: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

62 IoTIoT Education Kit - Lite

(4.3.3.4) เป ดหน าต าง Serial Monitor เพื่ อแสดงผลลั พธ ดั งรู ปที่ 8-7

(4.3.3.5) ลํ าดั บถั ดมาเป นการตรวจสอบข อมู ลที่ ส งไปยั ง dweet.io ไปที่ เว็ บไซต http://www.dweet.io/ แล วคล ิกที ่ Play

(4.3.3.6) จากนั้ นคลิ กที่ /get/latest/dweet/for/{thing}

(4.3.3.7) จะปรากฏช องใส ชื่ อ Thing ดั งรู ป แล วคลิ กที่ Try is out!

Page 63: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

IoTIoT Education Kit - Lite63

(4.3.3.8) จะสั งเกตได ว า ที่ ตํ าแหน ง Resquest URL จะแสดง URL ที่ ทํ าการถามค าล าสุ ดที่ ส งไปยั ง dweet.io ดั งรู ป

(4.3.3.9) ใช URL นี้ ในการดู ค าล าสุ ดจาก dweet.io ข อมู ลที่ ได กลั บมาอยู ในรู ปแบบ jsonมี การแสดงชื่ อ Thing และวั นเวลาที่ สร างขึ้ นหรื อส งขึ้ นมา ดั งรู ปที่ 4-8

ร ูปที ่ 4-8 หน าเว ็บเพจของ dweet.io แสดงการอ านข อม ูลจาก Thing ที ่ชื ่อ NodeMCU_Send โดยข อม ูลจร ิงจะม ีการปร ับปร ุงท ุกๆ 1 ว ินาท ี แต ถ าต องการด ูผ านเว ็บเพจ จะต องกดค ีย F5 เพ่ื อปร ับปร ุงการแสดงผลของเว ็บเพจ

Page 64: IoT Education Kit - Lite IoT Education Kit IoT (Internet ... · IoT IoT Education Kit - Lite 3 Internet of Things (IoT) หรื อ อิ นเทอร เน็ ตสํ าหรั

64 IoTIoT Education Kit - Lite