วันพฤหัสบดีที่ 9 ตุลาคม พ.ศ. 2557

Realtime Thermal printer?

สวัสดีครับ

เมื่อไม่นานมานี้ผมและชมรม Chiang Mai Maker Club

ได้ร่วมกันสร้างสิ่งประดิษฐ์ขึ้นมาหนึ่งอย่าง

นั่นก็คือ (เปิดเพลง) ตึง ตึ่ง ตึ้ง

Thermal printer ที่ print ได้ผ่าน Internet ณ ที่นี้ก็คือ website


Thermal printer ที่ทำกันมานี้ก็ได้เอาไปแสดงที่งาน TEDx Chiang Mai ครับ กับบูทของ Chiang Mai Maker Club


Thermal printer ตาม dict ใน internet ก็แปลได้ว่า เครื่องพิมพ์แบบใช้ความร้อน  นั่นคือเครื่องที่ให้ใช้ร้อนลงไปกระดาษนั่นเองครับครับ


Thermal printer เราก็อาจจะเห็นได้ทั่วไปตามร้านอาหารต่างๆ
แล้ว Thermal printer  ที่ทำกันไปเนี้ยมันพิเศษยังไง


แน่นอนครับว่าปริ้นออกมาได้คล้ายกันนะแหล่ะ ก็เครื่องปริ้นนะเนอะ มันจะต่างอะไรกัน(ฮา)

ที่แตกต่างคือกระบวนการบางอย่างที่ทำให้การปริ้นเกิดขึ้นครับ

เพราะ Thermal printer ของเรานี้ไม่ว่าใครก็สามารถมาสั่งปริ้นได้เลย

งงม่ะ ลง driver ก็ไม่ได้ลง จะปริ้นได้ไงบ้าป่าว
อ่ะอ่ะ มาอ่านบทความใช่ไหม แสดงว่าใช้ internet ใช่ไหม มี broswer ก็แน่นอนอยู่แล้ว


งั้นเข้าไปที่ https://radiant-fire-8395.firebaseapp.com/#/ เลยนะ (ตอนนี้ใช้ได้แต่อาจจะไม่ได้ปริ้นนะ ไม่ได้ต่อเครื่องปริ้นเป็นบางเวลาน่ะ (〒ó〒) )

เว็บจาก link ด้านบนนี้จะทำการส่งข้อมูลไปยังคอมพิวเตอร์ (ณ ที่นี้คือ raspberry pi) แล้วจะส่งคำสั่งไปยังเครื่องปริ้นอีกที

ที่นี้เราก็จะสามารถปริ้นได้แล้วววววว ปริ้นรูปกะ bar code ได้ด้วยนะจะบอกให้


มาดูโครงสร้างกันบ้างดีกว่า กว่าจะมาถึงจุดๆนี้ผ่านอะไรมาบ้าง






Front end ที่เราใช้คือ Angularjs โดยที Firebase เป็น database และ pubnub เป็นตัว push data ไปยัง raspberry pi

Client จะส่งข้อมูลที่อยากปริ้นมา
เมื่อได้ข้อมูลมา Firebase จะเก็บข้อมูลและ push ให้เราระดับนึง (แจ่มนะ แต่ถ้าใช้จริงแพงหน่อย)
ส่วน Pubnub จะ push data ที่จะทำการปริ้นไปให้ raspberry pi จากนั้นก็จะส่งต่อไปยัง Arduino ที่เชี่อมกับ raspberry pi อีกทีนึง


ทุกกระบวนท่าจะทำงานผ่าน internet


Code ที่ใช้ใน arduino ที่เชี่ยมต่อกับ Thermal printer
https://github.com/cmmakerclub/arduino-thermal-printer-over-serial-port

Code ที่ใช้รับข้อมูลจาก Pubnub (ใช้ nodejs)
https://github.com/cmmakerclub/thermal-printer-by-pubnub/blob/master/thermal_printer.js

Code ฝั่งเว็บ (ใช้ Angularjs deploy บน firebase push data ไปยัง Pubnub)
https://github.com/allfake/AStatus



เป็นไงกันบ้างเอ่ย ถ้าอ่านมาถึงจุดๆนี้ได้ก็แสดงว่าเข้าใจกันแล้วนะ \(*T▽T*)/

ส่วนงานที่น่าจะสนใจอื่นก็มีอีกเยอะเลยแหล่ะ

ติดตามกันต่อที่ Chiang Mai Maker Club นะ

ขอบคุณที่อ่านจนเหนื่อยนะ
สุดยอดมาก


วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

สร้างและใช้ package manager ใน python

ลง pip ก่อน จากนั้นสร้าง package manager โดย

pip freeze > requirements.txt
install package manager
pip install -r requirements.txt

upgrade drupal core ควรจะทำอะไรบ้าง

อัพเกรดมือ
https://www.drupal.org/node/1223018
https://www.drupal.org/node/1494290
อัพเกรดด้วย drush
https://www.drupal.org/node/1494290#comment-6882712
หลักการคือ
  • backup ทุกอย่าง (files, database mysql)
  • เก็บ .htaccess และ robots.txt ไว้ก่อน
  • เปิด maintenance
  • ลบทุกอย่างที่ไม่ได้อยู่ใน site หรือ folder พิเศษออกให้หมด
  • โหลด drupal version ล่าสุดมาวาง
  • นำ .htaccess และ robots.txt ที่เก็บไว้มาทับ
  • login administrator
  • รัน update.php โดยเข้าที่ http://ชื่อโดเมน/update.php
  • ปิด maintenance
  • ตรวจสอบความถูกต้อง
อัพเกรดด้วย drush
  • backup ทุกอย่าง (files, database mysql)
  • เก็บ .htaccess และ robots.txt ไว้ก่อน
  • drush vset --always-set maintenance_mode 1
  • drush cache-clear all
  • drush up drupal
  • drush vset --always-set maintenance_mode 0
  • drush cache-clear all
  • ตรวจสอบความถูกต้อง
  • drush เองก็จะทำ backupให้เราอยู่ที่ ~/drush-backups/
อย่าลิมตรวจ site status ด้วย
ถ้าลง module calendar systems (ซึ่งก็ลงเกือบทุกเว็บ) อย่าลืม patch core ด้วย