Data-logger with REST Service

Atitep Anuchettarak
Project-MAR
Published in
2 min readOct 7, 2017

Ep.3 การใช้ Flask เพื่อสร้าง REST API ด้วย Python

เดินทางมาถึงตอนที่ 3 กันแล้วสำหรับ Data-logger with REST Service หรืออุปกรณ์เก็บบันทึกข้อมูลที่สามมารถควบคุมการทำงานและดึงข้อมูลซึ่งบันทึกไว้ผ่าน REST API ที่เตรียมไว้ล่วงหน้าได้

โดยปกติ Data Logger มักจะติดตั้งอยู่ในกล่องหรือ housing ที่แน่นหนาเพื่อป้องกันการเสียหายของอุปกรณ์ต่างๆ ในระบบอันเนื่องมาจากสภาพแวดล้อม(อันโหดร้ายต่ออุปกรณ์อิเล็กทรอนิกส์) แต่การติดตั้งที่แน่นหนานี้ก็มีข้อเสียเช่นกัน เช่น ในกรณีที่ผู้ใช้ต้องการเชื่อมต่อกับ Data Logger เพื่อตั้งค่าหรือเพื่อนำข้อมูลที่บันทึกออกมาใช้งาน เป็นต้น

การใช้ REST API สำหรับเชื่อมต่อคือ ผู้ใช้สามารถเข้าถึงตัว Data Logger ได้ง่าย ไม่ต้องใช้สายต่อ ตัวอย่างเช่น ผู้ใช้สามารถใช้มือถือต่อ wifi (Data Logger ทำตัวเป็น access point) หลังจากนั้นจึงใช้ web browser หรือโปรแกรมที่สร้างไว้ดึงข้อมูลออกมาผ่าน wifi และ REST API ที่เตรียมเอาไว้

ในตอนนี้จะเสนอ Python Code ที่ใช้สร้าง REST API ก่อนที่ไปต่อ สำหรับคนที่ยังไม่ได้เตรียม environment ต้องจัดการให้เรียบร้อยก่อน โดยดูจากบทความที่ 1, 2 นะครับ

สำหรับโปรแกรมนี้มีส่วนที่สำคัญคือ

บรรทัดที่ 10–11 คือ username และ password ที่เราจะต้องใช้ตอนเรียก REST API นะครับ ถ้าไม่มีหรือใส่ผิด ก็จะเรียกใช้ไม่ได้ ทั้งนี้ การ Hard Code username และ password แบบในตัวอย่างทำให้อ่าน code ได้ง่าย เหมาะแก่การทำความเข้าใจแต่ไม่เหมาะในการใช้งานจริง!!!

บรรทัดที่ 30–37 คือข้อมูลของ database ของเรา ว่าชื่ออะไร, ใช้ username/password อะไรในการ login, ตั้งอยู่ที่เครื่อง IP เท่าไร และ port เท่าไร (127.0.0.1 คือ localhost, port 5432 มาจาก config ของ postgresql จากบทความที่ 2)

บรรทัดที่ 28–55 คือ function ที่ถูกเรียกเมื่อผู้ใช้ต่อมายัง

http://192.168.1.19:5000/DumpSensor01

เมื่อเขียนโปรแกรมเสร็จ เราก็ run server ได้เลย

ลองเรียกใช้งาน REST ผ่าน web browser

เมื่อเรียกใช้งานครั้งแรก ก็จะเจอกับหน้า login แบบนี้ ใส่ pi/raspberry ที่เตรียมไว้ได้เลย

เข้ามาได้แล้ว ก็จะเห็นว่ามีข้อมูลอยู่ 1 record (เพราะเราใส่ไว้แค่นั้นไง -*-)

ให้เราเปิด terminal ขึ้นมาอีกอัน โดย terminal อันใหม่นี้จะทำการ run program ที่คอยใส่ข้อมูลลงไปใน database

ในทุกๆ 1 ชม. โปรแกรมนี้จะ random ค่าและใส่ลงไปใน database ของเรา เปิดโปรแกรมนี้ทิ้งไว้ แล้วลองเรียกดูข้อมูลผ่าน REST API อีกครั้ง

เป็นไงบ้างครับ ตอนนี้เราก็มี REST API 1 อันผ่าน HTTP GET แล้ว ไม่ยากใช่มั๊ยครับ สำหรับ Ep.3 ก็หมดเพียงเท่านี้ครับ เจอกันในตอนต่อไปนะครับ

Enjoy :)

--

--