รีวิว DEVIO NB-Shield I และ Mini-project: Cellular Tower logger

สวัสดีครับ หลังจากที่ AIS ประกาศ pre-order module NB-IoT ไปเมื่อเดือนธันวา​คม​ที่ผ่านมา ผมซึ่งสนใจจะนำมาใช้กับ senior project อยู่แล้วเลยสั่งซื้อมาชุดหนึ่ง และเมื่อเดือนพฤษภา​คม​ที่ผ่านมา module ก็เปิดให้ซื้อ เลยเป็นที่มาของรีวิวครั้งนี้ครับ NB-IoT คืออะไร NB-IoT หรือ Narrow-band Internet​of Things คือเทคโนโลยี​โทรคมนาคมแบบ LTE ที่ออกแบบมาสำหรับใช้งานกับอุปกรณ์​ที่เน้นการสื่อสารไม่เน้นความเร็วมาก แต่เน้นการประหยัดพลังงาน และมีการติดต่อสม่ำเสมอด้วยข้อมูล​ปริมาณ​น้อย เช่นระบบโทรมาตร หรืออุปกรณ์​สั่งการต่างๆ ที่ไม่เน้นความรวดเร็ว​ในการตอบสนอง (non real-time applications) โดยทำงานในช่วง subcarier กว้างราวๆ 200 KHz ของความถี่สำหรับให้บริการโทรศัพท์​มือถืออยู่แล้ว (กรณีของ AIS ทำงานที่ 900 MHz)​ NB-IoT มีข้อดีสำคัญที่ดีกว่าการใช้เครือข่าย LTE ปกติ เช่น: เครือข่ายของ NB-IoT​ เป็นเคือข่ายที่แยกต่างหากจากเครือข่ายมือถือปกติ ความแออัดจึงน้อยกว่า ประหยัดพลังงานกว่า…

Read More

เตรียมความพร้อมก่อน พรบ. คอมฉบับใหม่บังคับใช้ : keep yourself alive

สวัสดีครับ ในที่สุด แม้จะผลักดันให้แก้ไขกันขนาดไหน ในที่สุด พรบ. คอมพิวเตอร์ ฉบับใหม่ก็มีจะมีผลบังคับใช้แล้ว ในฐานะประชาชนคนไทยที่อยู่ภายใต้การบังคับใช้ฯ คงได้แต่ยอมรับชะตากรรมที่กำลังจะเกิดขึ้นและรับมือต่อไป สำหรับผม มีวิธีการรักษาความปลอดภัยทางคอมพิวเตอร์มาแนะนำ ดังนี้ครับ หมายเหตุ: ผมไม่สนับสนุนให้ใช้การกระทำการดังกล่าวกับการกระทำผิดกฎหมายใดๆ ทั้งสิ้นนะครับ เป็นแต่เพียงการป้องกันตัวเองจากอัตรายที่อาจจะเกิดขึ้นได้โดยไม่ตั้งใจ และผมไม่รับผิดชอบใดๆ หากเกิดความเสียหายอันเนื่องมาจากการกระทำการตามที่แนะนำต่อไปนี้นะครับ การเก็บข้อมูล/หลักฐาน (การแคป) : ไม่แคปแล้วเก็บไว้เอง หนึ่งในการแก้ไขใหม่ คือในมาตรา 14 ที่กำหนดให้ข้อมูลอันเป็นเท็จก็เป็นความผิด แต่ไม่มีการนิยามหรือยกเว้นการเก็บรักษาข้อมูลเพื่ออ้างอิงในเชิงประวัติศาสตร์ ทำให้เป็นที่น่าระแวงได้ว่าหากมีการเก็บข้อมูลแล้วภายหลังหน่วยงานของรัฐระบุว่าเป็นความเท็จ/ผิดกฎหมาย การเก็บข้อมูลนั้นไว้กับตัวอาจจะทำให้ผิดตาม พ.ร.บ. ได้ การแก้ปัญหากรณีนี้ที่ง่ายที่สุด คือการเก็บไว้กับบุคคลที่ 3 ที่อยู่นอกประเทศไทยหรือไม่อยู่ในบังคับของกฎหมายไทยแต่อย่างใด ซึ่งในปัจจุบันก็มีหลายเจ้าที่เปิดให้บริการ cloud storage ฟรี หากบันทึกไว้เป็นไฟล์ก็สามารถเก็บข้อมูลนั้นไว้ได้ แต่สำหรับการเก็บเว็บไซต์ ผมแนะนำให้ใช้บริการ web archive เช่น archive.is เนื่องจากบริการเหล่านี้นอกจากจะเก็บบันทึกข้อมูลในฐานะบุคคลที่ 3 นอกประเทศไทยแล้ว ยังสามารถสืบค้นตาม URL และช่วงเวลาที่มีการบันทึกไว้ โดยเฉพาะ archive.is เองก็มีการทำ…

Read More

ESP8266: สั่งการ ESP ด้วยฟ้าใสผ่าน Anto.io

สวัสดีครับ หลังจากที่ตอนที่แล้วเราอัพเดตเฟิร์มแวร์ไปแล้ว วันนี้เราจะมาลองใช้ ESP8266 เป็นสถานีลูกข่ายในการควบคุมไฟฟ้าและส่งข้อมูลไปกลับกับฟ้าใส เลขาแว่นส่วนตัวผ่านระบบของ Anto.io ครับ หมายเหตุ : ณ วันที่เขียนบทความ ฟ้าใสยังรองรับแค่ระบบของ Anto.io และ NETPIE แต่ผมลองของ NETPIE แล้วใช้งานยาก ไม่สะดวกเท่าที่ควร เลยใช้ระบบของ Anto นะครับ สร้าง Endpoint บน Anto.io หลักๆ สามารถไล่ตาม Tutorial ของ Anto ได้เลยครับ อธิบายชัดเจนดี แต่หลักสำคัญคือ สร้าง Thing เพื่อให้มีหมวดหมู่ของข้อมูล สร้าง Channel และกำหนดประเภทข้อมูลตามรูปแบบที่ต้องการ สร้าง Key ที่สามารถอ่านค่าได้ (และ/หรืออัพเดตค่าได้หากต้องการให้ส่งค่า) สำหรับ ESP สร้าง Key ที่สามารถอัพเดตค่าได้สำหรับแอพฟ้าใส (จริงๆ ใช้ key เดียวกับ ESP ก็ได้…

Read More

ESP8266 กับ Arduino : เชื่อมต่อสายและอัพเดต ROM version ใหม่ (AT Command)

สวัสดีครับ หลังจากที่ผมยำทดลองใช้ Arduinoเมื่อเทอมที่แล้ว ปิดเทอมนี้ หลังจากได้รับการอุดหนุน งปม. ปิดเทอมนี้ผมวางแผนว่าจะลองทำ IoT ต่อ (และมีบทความเป็นซีรีส์ตลอดปิดเทอมนี้นะครับ) นะครับ วันนี้ขอเริ่มด้วยการเริ่มใช้ ESP8266 ครับ (ในที่นี้ผมจะใช้ ESP-12E พร้อม breakout นะครับเพื่อความขี้เกียจลองตัวอื่นสะดวกในการอธิบาย ESP version อื่นก็คิดว่าใช้แบบเดียวกันได้) การเชื่อมต่อสาย ในหลายบทความสอนมักจะแนะนำให้ใช้ FTDI Module นะครับเพราะเป็นอุปกรณ์เฉพาะทางกว่า แต่โดยส่วนตัวผมมองว่าในเมื่อ Arduino มี USB to TTL ในตัวแล้ว ก็น่าจะใช้แทนกันได้ ข้อสำคัญในการใช้งานมีแค่ 3 ข้อ คือต่อสายให้ถูก อย่าให้ Arduino sketch ไปยุ่งกับ Serial (วิธีที่ง่ายที่สุดคืออัพโหลด blink ลงตัว Arduinoก่อนนำไปใช้ ยกเว้นใครใช้ Arduino Mega สามารถใช้ UART ชุดอื่นแล้วทำ bypass…

Read More

Python: การอ่านค่าสีในแต่ละ Pixel ของภาพด้วย PILlow

สวัสดีครับ หลังๆ มานี่ผมไม่ได้เขียน Blog เลย เหมือนเคยครับ งานยุ่งจริงๆ (จริงๆ ช่วงนี้ก็สอบปลายภาคด้วยล่ะครับ แต่นอนไม่หลับ เวลาชีวิตรวนตั้งแต่ทำโปรเจ็กแล้ว แหะๆ) บทความวันนี้ก็เกี่ยวกับโปรเจ็กที่ว่านี่ล่ะครับ เป็นโปรเจ็กเกมบน FPGA แบบง่ายๆ (เรียกว่างานเผาก็ย่อมได้) ใครสนใจไปดูได้บน Github FPGA “IA Journy” game ครับผม แต่ที่ผมจะนำเสนอวันนี้คือ script สร้างโมดูลวาดภาพภาษา Verilog ด้วย Python อีกที งานหลักๆ ก็ตามชื่อบทความนั่นแหละครับ คืออ่านขนาดภาพและไล่อ่านค่าสีของแต่ละ pixel ก่อนเข้าสมการ (เรอะ?) เพื่อกำหนดค่าบิตสีขาออกจากโมดูลครับ ส่วนสาเหตุที่ใช้ Python ก็เนื่องจากว่า docs และ Stack Overflow มันเยอะ เขียนเผาๆ ก็จบงานได้ล่ะ :v This file contains bidirectional Unicode text…

Read More

Quick tip: ลง PyAudio และ Bitarray ใน Python 2.7

สวัสดีครับ วันนี้มีทิปสั้นๆ เกี่ยวกับการลง PyAudio และ Bitarray ให้กับเจ้า Python 2.7 กันครับ เรื่องมันมีอยู่ว่า ผมกำลังทำโปรแกรมถอดรหัสเข้ารหัส AFSK แต่ระบบที่ว่าต้องทำงานกับเสียง เลยต้องใช้ Library PyAudio กับ bitarray ในการประมวลผลข้อมูลครับ แต่แน่นอนครับว่ามันไม่ใช่แค่ pip install afsk pip install –allow-external PyAudio –allow-unverified PyAudio PyAudio แน่ครับ ลงไปลงมา ก็เจอปัญหาจนได้ สุดท้ายก็ได้วิธีแก้ปัญหาดังนี้ครับ pip ไม่มี ปัญหาโลกแตกครับ ทั้งที่จริงแล้วถ้าสั่งรัน pip ตรงไม่ได้ ก็แค่เปลี่ยนจาก pip <bla bla bla> เป็น (เครื่องผมไม่ได้ตั้ง PATH ไว้ เลยต้อง cd C:\Python27 ก่อน) แค่นี้เองครับ…

Read More

สร้าง Icon font ของตัวเองได้ง่ายๆ ด้วย IconMoon App

หนึ่งในองค์ประกอบหลักที่สำคัญของเว็บไซต์ที่จะขาดไปเสียไม่ได้เลยคือ icon เหตุผลหลักก็เหมือนที่มีมีคนเคยกล่าวไว้ว่า “หนึ่งภาพมีค่ายิ่งกว่าร้อยคำพูด” icon ถึงแม้จะไม่ใช่รูปภาพเสียทีเดียว แต่ด้วยความที่เป็นสื่อกลางที่คนไม่ว่าจะชาติภาษาไหนก็เข้าใจได้ง่าย หลายท่านคงอาจเคยใช้งาน icon ไม่ว่าจะเป็นรูปภาพ gif, png svg vector หรือแม้แต่ icon font ที่เป็นที่นิยมอย่างมากในปัจจุบัน (หากสงสัยว่าแล้ว icon font คืออัลไล ลองอ่านบทความของ designil นี้ดูครับ อธิบายได้ดีทีเดียว สรุปสั้นๆ คือมันเป็นฟอนต์ฟอนต์หนึ่งนี่แหละครับ แต่แทนที่จะเก็บแบบตัวอักษรก็เก็บ icon ไว้แทน ถ้านึกไม่ออกก็นึกถึงฟอนต์ Wingdings ที่มี icon แบบนี้ : ( ÿ  ครับ) เพราะทั้งสะดวก ใช้งานง่าย ที่สำคัญคือมีขนาดเล็กและสวยงามดี ไม่มีอาการแตกเมื่อขยายใหญ่เข้า แล้วถ้ามี logo หรือรูป icon ที่อยากทำเป็น icon font เองล่ะจะทำอย่างไร? IconMoon Apps คือคำตอบ…

Read More

ทำขอบเฉียงด้วย CSS3 Gradient

ตามที่สัญญากันไว้ครับ หลายท่านอาจเคยเห็นบางเว็บไซต์ทำขอบเฉียงๆ กันมาบ้างแล้ว อาจจะใช้คุณสมบัติของ CSS Border ทำให้ขอบบางส่วนใส หรือการดัดด้วย transform: skew, SVG element เป็นต้น แต่ด้วยข้อเสียบางอย่างของวิธีการดังกล่าว เช่น CSS Border จำเป็นต้องรู้ขนาดตายตัวเป็น pixel หรือหน่วยที่สัมพันธ์เหมือนกัน (em, rem, vh, vw เป็นต้น) หรือ transform: skew ก็ต้องดัด element นั้นจริงๆ หากต้องใส่ใน element อื่นต้องคำนวนระยะมุมด้วย เป็นต้น หลังจากที่ค้นหาข้อมูลอยู่นาน ผมก็เจอ Fiddle อันหนึ่งที่ใช้การทำขอบเฉียงด้วย CSS Gradient ซึ่งเป็นอะไรที่ถูกใจแจ้จริงๆ ก็เลยนำมาประยุกต์ใช้ครับ ลองดูตัวอย่างนี้ดูครับ มันทำได้อย่างไรกันนี่!? เทคนิค linear gradient ที่เราจะใช้ก็คือการใส่พื้นหลังแบบไล่สีง่ายๆ นี่แหละครับ ตาม syntax ของ W3C linear-gradient() ซึ่งเป็นมาตรฐานที่สรุปแน่นอนแล้ว จะสามารถใช้คำสั่ง…

Read More

Fullpage.js: เฮ! ได้ดั่งใจสั่งด้วย onleave และ YoutubeAPI

สวัสดีครับ หลังจากที่ทำหน้าประกาศผลค่าย Comcamp กันข้ามวันข้ามคืน ในที่สุดก็ทำจนเสร็จเรียบร้อยแล้ว ดีจมากครับที่หลายคนให้คำชื่นชมกันมาว่าสวย น่าใช้ สำหรับเรื่องที่จะนำเสนอวันนี้เป็น Gimmick เล็กๆ ที่ใส่ไว้ในหน้าประกาศว่าน้องติดค่าย คือส่วนก่อนหน้าจะเป็นส่วนล้อเลียน/แกล้งน้องกันก่อน แล้วพอลงมาหน้าล่างสุดก็เล่นวิดิโอแสดงความยินดี (นั่นคือที่มาของ เฮ! ขอหัวเรื่องนี้ครับ) โดยอัตโนมัตินั่นเอง ส่วนที่สำคัญในการทำตรงนี้มี 2 ส่วนครับ คือการเช็คว่าน้องเลื่อนมาหน้าล่างสุดแล้วหรือยัง กับส่วนที่ไปสั่งให้ Youtube เล่นตอนเลื่อนลงมาถึงและสั่งหยุดเมื่อเลื่อนพ้นหรือออกไปหน้าหลัก มาว่ากันที่ส่วนแรกก่อน ตาม Document ของ fullpage.js จะมีอีเวนต์ต่างๆ เช่นตอนที่เริ่มสร้าง element ตอนปรับขนาดหน้าจอ ส่วน event ที่เราจะใช้ก็คือ onLeave หรือตอนที่จะเลื่อน slide ไป slide อื่น จาก Code ที่ผมโชว์ให้เห็นตรงนี้ จะมี 3 parameters หลักๆ ก็คือเลขลำดับ slide ที่กำลังจะออก, เลขลำดับ slide ที่จะไปถึง…

Read More