วันพฤหัสบดีที่ 15 ธันวาคม พ.ศ. 2559

ESP8266, Error ขณะคอมไพล์

ESP8266 เป็นอุปกรร์ IoT ที่น่าสนใจตัวหนึ่ง เพราะมีขนาดเล็กกินไฟน้อยเพียงแค่ 3.3V จุดเด่นพิเศษ คือ มี Wi-Fi ในตัว มีทั้งรุ่นที่บรรจุสายอากาศภายในตัวเป็นลายทองแดงบนแผ่นปริ้นท์ กับรุ่นที่ต่อสายอากาศภายนอก

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

Error แจ้งไม่รู้จักบอร์ด NodeMCU 1.0 

วันอังคารที่ 13 ธันวาคม พ.ศ. 2559

ESP8266 พิมพ์ข้อความขยะออกทาง Serial Port

กลับมาใช้ NodeMCU อีกครั้งหลังจากที่ทิ้งไว้นานจนลืมไปบ้างแล้ว แต่ก็มีแนวคิดที่จะพัฒนาระบบแสดงผลของ Call Center วัตถุประสงค์ต้องการแสดงสถานะการทำงานของแต่ละ Agent เพื่อให้ทราบว่ากำลังทำอะไร เช่น รับสาย พักเบรค รอรับสาย

สาเหตุที่ใช้ NodeMCU เป็นบอร์ดในการพัฒนานั้นเพราะ มี WiFi ในตัว ง่ายต่อการพัฒนา และมีขา I/O สำหรับต่อพ่วงได้อีกมาก ที่สำคัญสะดวกในการพัฒนาโดยสามารถใช้ Arduino IDE พัฒนาเหมือนกับบอร์ด Arduino เลย แต่ข้อดีกว่า ราคาถูกกว่า Arduino (เมื่อรวม Ethernet Shield แล้ว)

ระหว่างกลับมาก็เขียนโปรแกรมทดสอบเล็กๆ น้อยเพื่อดูว่าบอร์ดใช้งานได้ไหม คำสั่งง่ายๆ ก็แค่พิมพ์คำว่า Start ออกทาง Serial Port


Nanopi M1

ช่วงนี้แนวคิดยังคนวนเวียนซ้ำๆ เรื่องเดิมที่ยังไม่สำเร็จเสียที ก็วนกลับมาเรื่อง Asterisk Monitor เพื่อใช้ในการแสดงผลของระบบโทรศัพท์เพื่อให้คนดูแลได้ทราบรายละเอียดการดำเนินงานต่างๆ แต่เดิมก็ดาวน์โหลดโปรแกรมจากอินเตอร์เน็ทมาใช้พอนานเข้าไม่อัพเดท และหนักสุดหายไปดื้อๆ เลย หาดาวน์โหลดไม่ได้

ก็ไม่ว่ากัน สิ่งต่างๆ บน Opensource ก็เป็นแบบนี้แหละ เกิดขึ้นตั้งอยู่และเสื่อมสลาย เพราะทุกสิ่งอย่างเป็นค่าใช้จ่าย คนที่ใช้บางคนก็รอแต่ของฟรี แต่ไม่ช่วยพัฒนา ไม่ช่วยบริจาค ไม่สนับสนุน สุดท้ายก็อยู่ไม่ได้ จึงถึงคราวที่ต้องพัฒนากันเอง (นี่ไม่นับรวมค่าย Elastix ไปใช้แกนกลางในการพัฒนาเป็นระบบ 3cx ซึ่งเป็นระบบ VoIP เชิงพาณิชย์ งานนี้คงเป็นที่หนักอกหนักใจของแอดมินอีกหลายคนแน่ๆ)

วันเสาร์ที่ 10 ธันวาคม พ.ศ. 2559

เพิ่ม IR Remote ให้กับ LibreElec โดยใช้ Remote TV

LibreElec เป็น Media Center อีกตัวหนึ่งที่ติดตั้งมาพร้อมกับ NOOBS โดยก่อนหน้านั้นจะเป็น OpenElec แต่ OpenElec ดูเหมือนจะหยุดพัฒนาไปนานเลยทีเดียว พอมีปลายปีนี้ทาง Raspberry Pi ก็ติดตั้ง LibreElec เข้าไปแทน โดยรวมก็คล้ายๆ กันโดยใช้แกนกลางเป็น Kodi

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

กำหนดให้ใช้ IR Remote ได้


ให้เข้าไปแก้ไขในไฟล์ /flash/config.txt เพื่อให้เรียกโมดูล lircd ก่อน โดยมีวิธีการแก้ไขดังนี้

#mount -o remount, rw /flash
เพื่อกำหนดให้ /flash สามารถแก้ไขได้ จากนั้นเปิดไฟล์ config.txt ด้วยคำสั่ง nano และเพิ่มบรรทัดสุดท้าย:
dtoverlay=lirc-rpi
เสร็จแล้วกำหนดให้ /flash อ่านได้อย่างเดียวด้วยคำสั่ง
#mount -o remount, ro /flash
รีบูตเครื่องด้วยคำสั่ง reboot ครั้งหนึ่งก่อน แล้วเข้าไปกำหนดค่าปุ่มกด


กำหนดปุ่มกด


ขั้นแรกให้ปิดโปรแกรม lircd ที่เปิดอยู่ด้วยคำสั่ง
#killall lircd
ลำดับต่อมาให้บันทึกไฟล์ lircd.conf ไว้ใน /storage/.config/lircd.conf

#irrecord /storage/.config/lircd.conf
โปรแกรมจะมีข้อความให้อ่าน โดยรวมให้กดปุ่ม Enter สองครั้ง แล้วจะมีหน้าจอรอให้กดปุ่มใดๆ บนรีโมทเพื่อตรวจสอบความถี่และช่วงการกดปุ่ม โดยให้กดปุ่มค้างจะมีเครื่องหมาย . แสดงไปเรื่อยๆ จนหมดบรรทัด

ต่อมาจะมีข้อความขึ้นและรอให้กดปุ่มอีก ทีนี้ กดปุ่มแล้วก็ปล่อยไปเรื่อยๆ จนจะหมดบรรทัด

เมื่อกดปุ่มเสร็จแล้วจะได้ค่าความถี่และการกดปุ่มแล้ว จะมีหน้าจอให้ป้อนค่าของปุ่มกด เช่น KEY_LEFT, KEY_POWER, KEY_PLAY, KEY_STOP เมื่อพิมพ์เสร็จก็กดปุ่ม Enter ถ้าชื่อ Key ไม่ถูกต้องก็จะมีข้อความเตือน เมื่อพิมพ์ชื่อปุ่มถูกต้องแล้วหน้าจะจะมีข้อความให้กดปุ่มที่จะกำหนด

แล้วก็เริ่มให้พิมพ์ชื่อปุ่มกันใหม่ ถ้าไม่ต้องการเพิ่มแล้วก็กดปุ่ม Enter สองครั้ง รอสักครู่จะกลับไปที่หน้าจอคำสั่ง

ระบบจะสร้างไฟล์ lircd.conf ไว้ใน /storage/.config/ ถ้าต้องการเริ่มใหม่ก็ลบไฟล์ lircd.conf ทิ้งก่อนแล้วบันทึกใหม่ หรือจะสร้างชื่ออื่นแล้วคัดลอกปุ่มที่เพิ่มนั้นมาใส่ในไฟล์ lircd.conf ก็ได้เช่นกัน

รายชื่อ KEY ที่จำเป็น

      begin codes
          KEY_STOP                
          KEY_POWER             
          KEY_MENU               
          KEY_VOLUMEUP       
          KEY_VOLUMEDOWN 
          KEY_PLAY                
          KEY_PAUSE             
          KEY_LEFT                
          KEY_RIGHT              
          KEY_UP                  
          KEY_DOWN            
          KEY_OK                  
          KEY_EXIT                
          KEY_FORWARD       
          KEY_REWIND          
          KEY_MUTE              
          KEY_ENTER             

          KEY_1
          KEY_2
          KEY_3
          KEY_4
          KEY_5
          KEY_6
          KEY_7
          KEY_8
          KEY_9
          KEY_0
      end codes





mount -o remount,rw /flash

Gtk4 ตอนที่ 6 Defining a Child object

Defining a Child object A Very Simple Editor ในบทความที่ผ่านมาเราสร้างโปรแกรมอ่านไฟล์ชนิดข้อความ และในบทความนี้ก็จะมาปรับแต่งโปรแกรมกันสักหน...