Tuesday, March 15

Mysql server has gone away on Raspberry pi

       มีงานอยู่งานหนึ่ง ผมติดตั้ง Mysql Server V5  ลงบนบอรืด Rpi เพื่อที่จะได้เก็บ Record บางอย่าง โดยรอรับค่าจาก python โดยเจ้าสคริปต์ python ผมทำงานแบบ Event driven ถ้ามีเหตุการณ์เกิดขึ้น จะทำการบันทึก ค้นหา ลงฐานข้อมูล Mysql ทีนี้ เจ้าสคริปต์ตัวนี้ จะทำการสร้าง connection ขึ้นมา แต่ในกรณีที่ไม่เกิด Event ใดๆ เลยเป็นเวลา 8 ชั่วโมง เจ้า Mysql Server จะทำการตัด Connect นั้นทิ้งไป แม้ว่า เราจะยัง connect อยู่ก็ตาม (ไม่เกิดการ Query , Insert , Update ใดๆ)  หลังจาก 8 ชั่วโมงผ่านไปแล้ว ถ้าจู่ๆ มี Event เกิดขึ้นที่ python สคริปตฺ์นี้ มันจะทำการอัพเดทข้อมูลลงฐานข้อมูล แต่เนื่องจากว่า Mysql Server ได้ตัดการเชื่อมต่อทิ้งไปแล้ว ก็จะเกิด Exception ที่ชื่อว่า  Error 2006 Mysql Server has gone away นั่นเอง

ทางแก้ไข คือ ให้เข้าไปแก้ไขค่า my.cnf ที่อยู่ใน /etc/mysql/my.cnf โดยเพิ่มหัวข้อ
wait_timeout = 31536000

อ้างอิงจาก http://dev.mysql.com/doc/refman/5.0/en/gone-away.html

my.cnf

MySQL  MySQL 5.0 Reference Manual  5.1

ลองไปแก้ดูนะครับ หากเจอเหตุการณ์เหมือนผม

อ่านเพิ่มเติม...

Sunday, January 3

How to remote desktop connection to X11 raspberry pi

แต่ก่อนไม่ค่อยได้ยุ่งเกี่ยวกับ XWindow ของ RPi เลย หลังๆ มาเริ่มมีงานที่ต้องเขียน GUI แล้วรันบน XWindow ของ RPi ซึ่งก็ต้องวิ่งหาจอ LCD VGA แยกให้มันต่างหาก ทำงานบน windows ต่างหากอีก 1 จอ ถ้าใครมีจอ LCD เหลือใช้ก็ไม่มีปัญหา แต่สำหรับใครทีี่มีอยู่จอเดียว คู่กายแล้วหล่ะก็ลำบากแน่ๆ
ใน WIndows XP, 7 ขึ้นไป จะมีคำสั่งสำหรับเข้าควบคุมเครื่องอื่นในเนตเวิร์กอยู่โปรแกรมหนึ่ง ชื่อ Remote Desktop connection วิธีการเรียกโปรแกรม ก็กดปุ่ม window + R แล้วก็พิมพ์ mstsc ดังรูป

จะปรากฏหน้าต่างขึ้นมาให้ใส่ IP บอร์ดของ RPi ที่เราต่อไว้กับเนตเวิร์กของเรา (IP อาจจะไม่เหมือนผมก็ได้นะครับ แล้วแต่ท่านตั้งค่าไว้ ดูบทความเก่าๆ ได้ว่าตั้งค่าอย่างไร )

แต่ก่อนจะกด Connect นะครับ ให้ทำการติดตั้งโปรแกรมบนบอร์ดของ Rpi ของเราเสียก่อน ทำการ ssh ไปที่บอร์ด Rpi ของเรา แล้วทำการติดตั้งโปรแกรม XRDP server โดยใช้คำสั่ง
sudo apt-get install xrdp
รอสักครู่ เมื่อเรียบร้อยแล้ว ค่อยกลับมากดปุ่ม connect ที่หน้าต่างโปรแกรม Remote Desktop Connection ครับ
จะปรากฏหน้าต่าง ให้กรอก username / password ถ้าไม่ได้เปลี่ยนแปลงอะไร ก็กรอก pi ในช่อง username แล้วก็กรอก raspberry ในช่อง password ครับ จากนั้นกด OK โปรแกรมจะพาท่านเข้า xwindow ของ Raspberry pi ครับ




เป็นอันเรียบร้อยครับ มี xwindow ของ linux ให้ใช้บน window หล่ะ สบาย จะเขียนโปรแกรมอะไร ก็รีโมทเข้าไปใช้ xwindow ผ่านโปรแกรม Remote Desktop Connection ได้เลยครับ
Rock กันเลย……..


อ่านเพิ่มเติม...

Sunday, November 29

How to install Mosquitto MQTT Broker on RPi2

     เกริ่นนำสักนิดหนึ่ง ตั้งแต่ การเข้ามาของ IOT หรือ Internet of Things ที่กำลังอินเทรนกันอยู่ตอนนนี้ ก็ได้มีความพยายามที่จะหา Protocol ที่เหมาะสำหรับการสื่อสารผ่าน network กับอุปกรณ์พวกไมโครคอนโทรลเลอร์ ก็เลยมีการพัฒนาโปรโตคอลขึ้นมา เพื่อให้เหมาะกับอุปกรณ์เล็กๆ ที่ไม่ต้องการ Header ที่มากไปในการสื่อสารทางเนตเวิร์ก เจ้าโปรโตคอลที่ว่าก็คือ MQTT หรือ MQ Telemetry Transport ไม่รู้ว่าแปลว่าไรเหมือนกัน เอาเป็นว่า ผมอธิบายแบบบ้านๆ เลยหล่ะกัน

image

ในการสื่อสารแบบ MQTT นี้ จะต้องมี MQTT Broker ที่ทำหน้าที่รับข้อความโดยมีหัวข้อ Topic จากผู้ส่ง/จำหน่าย จ่ายแจก หรือ publisher แล้วกระจายส่ิงที่ได้รับมานั้นไปให้ subscriber ที่ได้ทำการลงทะเบียนหัวข้อ Topic นั้นแหละ บอกกับ Broker ไว้แล้ว ว่า ถ้า publisher คน/ตัว ใด ส่ง topic นี้มา ให้เอามาให้ฉัน (subscriber)

อ่านเพิ่มเติม เรื่อง MQTT Protocol ที่รวบรวมไว้ครับ

ตรงส่วน Broker นี้แหละ ที่เราจะเอา Raspberry pi มาทำเป็น MQTT Broker ในที่นี้ ผมใช้ RPi2 ที่ติดตั้ง Raspbian Wheezy

การติดตั้ง MQTT Broker บน RPi
- ทำการ อัพเกรดต่างๆ ก่อน นานหน่อยสำหรับคนที่ไม่ค่อยได้อัพเกรดบ่อย

sudo apt-get upgrade


- แล้วก็รันคำสั่งตามนี้เลยครับ ทีละบรรทัด นะ ใจเย็นๆ ดู Error ด้วย ถ้ามันมี
curl -O http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
rm mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo curl -O http://repo.mosquitto.org/debian/mosquitto-wheezy.list
sudo apt-get update
sudo apt-get install mosquitto mosquitto-clients

บน Rpi เราจะมีทั้ง Mosquitto ที่เอาไว้จัดการ MQTT protocol โดยจะทำให้ Rpi เรากลายเป็น MQTT broker และนอกจากนั้น เราได้ติดตั้ง  mosquitto-clients ซึ่งจะทำให้เราสามารถสั่งให้ Rpi เราเป็นได้ทั้ง subscriber และ publisher ได้อีกด้วย

อันนี้ เป็นคลิปวีดีโอทดสอบของผม ผมลองกับเจ้า ESP8266 และโปรแกรมต่างๆ บน PC โดยทำการ subscribe หัวข้อ topic ที่ชื่อ hello/world ที่ถูกส่ง publish มาจาก ESP8266 โดยที่ RPi ทำหน้า MQTT Broker จัดการรับส่งข้อความทาง MQTT Protocol นั่นเอง

Raspberry pi MQTT_Broker

Youtube : www.youtube.com/watch?v=RvNBlkpGZwU

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

อ้างอิง :

http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi/
http://www.penninkhof.com/2015/05/linking-the-esp8266-a-raspberry-pi-through-mqtt/

อ่านเพิ่มเติม...

Thursday, November 5

Timezone and NTP server Thailand

เราสามารถตั้งค่า Timezone ให้ Raspberry pi ของเราให้เป็น Timezone สำหรับประเทศไทยได้ ด้วยการแก้ไข config

sudo raspi-config

raspi-config timezone

เลือก Internationalisation Options แล้วเลือก  Change Timezone 

raspi-config timezone

จากนั้นเลือก Asia แล้วกด Enter แล้วเลือก Bangkok  Raspberry pi ก็จะปรับเวลาให้ตรงตามเวลาประเทศไทย

เราสามารถที่จะ config ให้ Raspbery pi ไปอัพเดทเวลาจาก NTP server ของประเทศไทยได้ โดยไปแก้ไขที่

sudo nano /etc/ntp.conf

Thailand NTP server list

ทำการ comment ของเก่า แล้วเพิ่มของใหม่เข้าไป ตามภาพ  ซึ่งมีรายชื่อ NTP server  ดังนี้

server 0.th.pool.ntp.org iburst
server 1.th.pool.ntp.org iburst
server 2.th.pool.ntp.org iburst
server 3.th.pool.ntp.org iburst

ทำการบันทึกไฟล์ ntp.conf  แล้วทำการ restart ntp service ด้วยคำสั่ง

sudo /etc/init.d/ntp restart 


และใช้คำสั่งเช็คดูการทำงานของ ntpd service และประสิทธิภาพการ sync เวลากับ NTP server



sudo ntpq -c lpeer  


และใช้คำสั่ง date เช็คเวลาดูอีกที ว่าตรงหรือยัง



เราสามารถเช็คการทำงานของ ntpd ได้ ด้วยการดูที่ syslog ด้วยการใช้คำสั่ง



tail –f /var/log/syslog  หากเห็นข้อความ  host name not found EAI_NODATA: 0.th.pool.ntp.org ให้ทำการเช็คที่ resole.conf



NTP sync issue



sudo nano /etc/resole.conf



config nameserver



แก้ไข nameserver ให้ถูกต้อง ตามรูป  ก็น่าจะโอเค แหละ ให้ restart ntpd service อีกครั้ง  คราวนี้ เวลาของ Raspberry pi ก็จะเดินตรงกับเวลาประเทศไทยแหละ



วันนี้ จบเพียงเท่านี้ ก่อน

อ่านเพิ่มเติม...
 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

Blog อื่นๆของฉัน

Microcontroller Electronics update

สถิติเยี่ยมชมบล๊อก