วันพฤหัสบดีที่ 30 มีนาคม พ.ศ. 2566

OrangePi File Transfer

 วันนี้ได้มีโอกาสเล่น OrangePi

ต้องมีการโยนไฟล์เข้าไปใน OrangePi ก็เลยใช้ FileZilla, แต่ปรากฎว่าทำไม่ได้ เลยต้องลง ftp server ใหม่

- sudo apt-get install vsftpd

- sudo nano /etc/vsftpd.conf

- uncomment 

  • local_umask = 022
  • write_enable = true

- sudo systemctl start vsftpd

- sudo systemctl enable vsftpd

- sudo systemctl restart vsftpd


ลงเสร็จแล้ว ก็สามารถใช้งาน FileZilla ได้เลย


จอบอ




วันอาทิตย์ที่ 19 มีนาคม พ.ศ. 2566

Raspberry Pi Install Nodejs

ในบางครั้ง ถ้าเราเขียนเวป อาจจะต้องมีการใช้ java script เพื่อช่วยให้เวปของเราใช้งานได้ง่ายมากขึ้น

จึงจำเป็นต้องลง nodejs เพื่อใช้งาน java script


โดยการลง nodejs มีให้เลือก 2 แบบ คือ

1. version ล่าสุด

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -


2. version stable, long term support (LTS)

 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -


และต้องใช้คำสั่ง

sudo apt install nodejs


และ ทดสอบว่า nodejs ใช้งานได้หรือไม่ ให้พิมพ์

node -v

ต้องแสดง V18.15.0 หรือตัวเลขอื่นๆที่ใช้ในขณะนั้น


ซึ่งผู้เขียนได้ลองแบบ version ล่าสุด แล้วพบว่าลงไม่ผ่าน

เลยลงแบบ version stable พบว่าลงผ่าน และใช้งานได้


หลังจากลง nodejs เสร็จแล้ว, เราก็สามารถเพิ่ม sctipt เข้าไปใน .html หรือ .php ของเราได้เลย โดยให้อยู่ในระหว่าง <sctipt> และ </script> ยกตัวอย่างเช่น

<!DOCTYPE html>

<html>

<body>

<h1>The Element Object</h1>

<h2>The focus() Method</h2>

<p>The text field below gets focus immediately after the document window has been loaded.</p>

<input type="text" id="myText" value="A text field">

<script>

window.onload = function() {

  document.getElementById("myText").focus();

}

</script>

</body>

</html>


ที่มา

https://pimylifeup.com/raspberry-pi-nodejs/

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_html_focus_onload

วันพุธที่ 14 กันยายน พ.ศ. 2565

ปัญหา RaspberryPi sd-card เนื้อที่เต็ม ที่เกิดจากการสร้าง log

ปัญหา : เนื้อที่ sd-card เต็ม

สาเหตุ : มีการสร้าง Log จาก syslog และ daemon.log จำนวนมหาศาล

แนวทางแก้ไข : 

ให้พิมพ์คำสั่ง ต่อไปนี้

service rsyslog stop

systemctl disable rsyslog

sudo reboot


ที่มา

https://stackoverflow.com/questions/17358499/how-to-disable-all-logs

วันพฤหัสบดีที่ 21 เมษายน พ.ศ. 2565

ทำโปรแกรมของเรา ให้เป็น service

เหตุผลในการทำโปรแกรมของเราให้เป็น service เพื่อให้ง่ายต่อการ service ในภายหลัง

ยกตัวอย่างเช่น หากเราต้องการ หยุด หรือ เริ่ม โปรแกรมของเรา ก็เพียงแค่ใช้คำสั่ง sudo service ชื่อโปรแกรมของเรา stop หรือ start หรือ restart

แต่ถ้าหากเราไม่ได้ทำเป็น service ไว้ ในการที่จะ stop หรือ start โปรแกรม ก็จะยุ่งนิดๆ

ขั้นตอนในการทำโปรแกรมของเรา ให้เป็น service มีดังนี้

1. sudo nano /etc/systemd/system/ชื่อที่จะใช้.service

2. copy code ไปวาง 

[Unit]
Description=ชื่อ service
After=network.target
 
[Service]
User=pi
Group=pi
Type=simple
ExecStart=คำสั่งที่จะเปิดโปรแกรมของเรา เช่น sudo ./home/pi/my_service
Restart=always
RestartSec=5s
 
[Install]
WantedBy=multi-user.target

3. save ด้วยนะ

4. sudo systemctl daemon-reload

5. sudo systemctl enable ชื่อ service ของเรา


คำสั่งที่เราจะใช้บ่อยๆเกี่ยวกับ service มีดังนี้

1. sudo service my_service stop

2. sudo service my_service start

3. sudo service my_service restart

4. sudo service my_service status



เครดิต

https://chokelive.com/2020/01/add-service-to-raspberry-pi.html


วันอาทิตย์ที่ 26 กันยายน พ.ศ. 2564

วันอังคารที่ 2 มีนาคม พ.ศ. 2564

raspberry pi4 picamera scan qrcode

 โปรเจคร้อน ต้องรีบแก้ไข

Scan QR Code โดยใช้ RaspberryPi4 และ pi-camera

sudo raspi-config

เข้าเมนู Interface Options, enable camera

sudo apt-get update

sudo apt-get install libhdf5-serial-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install libjasper-dev

 sudo apt-get install libqtgui4

 sudo apt-get install libqt4-test

 pip3 install opencv-contrib-python==4.1.0.25

 pip3 install pyzbar

 pip3 install imutils

 pip3 install argparse

pip3 install opencv-python 
sudo apt-get install libhdf5-dev
sudo apt-get install libhdf5-serial-dev

 จากนั้นก็เปิด Thonny python IDE

แล้ว Download Code ได้ที่นี่

 https://github.com/kongimi/raspberrypi-camera-qrcode

 แล้วแปะ code ลงไปใน Thonny python IDE แล้วกด Run

จะมีภาพจากกล้องแสดงขึ้นมา เราก็เอา QR Code ไปวางบริเวณหน้ากล้อง


ก็จะสามารถอ่าน QR Code ได้

จอบอ

https://circuitdigest.com/microcontroller-projects/qr-code-scanner-using-raspberry-pi-and-opencv

 https://stackoverflow.com/questions/53347759/importerror-libcblas-so-3-cannot-open-shared-object-file-no-such-file-or-dire

 

วันอังคารที่ 19 มกราคม พ.ศ. 2564

ติดตั้ง mysql + phpmyadmin + remote database ให้กับ raspberry pi4

  sudo update

sudo upgrade

sudo apt install mariadb-server

 หลังจากลงเสร็จแล้ว ก็ต้องตั้ง password ของ database ก่อน โดยใช้คำสั่ง

sudo mysql_secure_installation

จะมีให้เราใส่ password ก็ใส่ไป 2 ที

และตอบ Y ทั้งหมด ถ้าเขาถามอะไรขึ้นมา

ทดสอบการใช้งาน และ password ด้วยการเข้าใช้งานด้วยคำสั่ง

sudo mysql -u root -p

 ใส่ password ที่เราตั้งไว้

 ถ้าเราต้องการออก ให้ใช้คำสั่ง

quit;

ทดลองสร้าง database

CREATE DATABASE exampledb;

 จากนั้นสร้าง user ที่จะสามารถใช้งาน database นี้ได้ โดยตั้งชื่อ user ว่า exampleuser และตั้ง password = pimylifup

CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'pimylifeup';

ต่อมาเราจะกำหนดสิทธิ์ให้ user ที่จะเข้ามาทำอะไรกับ database นี้ ด้วยคำสั่ง

GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';
FLUSH PRIVILEGES;

 

ถ้าเราไม่ถนัดในการใช้ command line ก็สามารถใช้ phpmyadmin ได้

sudo apt install phpmyadmin

ถ้าเราต้องการใช้ php ติดต่อกับ mysql ก็สามารถทำได้

sudo apt install php-mysql

 

เริ่มลง phpmyadmin กัน

เมื่อใช้คำสั่ง sudo apt install phpmyadmin แล้ว จะขึ้นหน้าแบบนี้ ให้เราเคาะ space bar เพื่อเลือก apache2 แล้วกด Enter


 จากนั้นจะมีหน้าคำถามขึ้นมาให้ตอบ Y แล้วใส่ password ตั้งเป็นอะไรก็ได้ แต่ควรจะให้ต่างจาก password ที่ใช้กับ mysql

 มาถึงตอนนี้ เราต้องสร้าง user ใหม่ ให้กับ database ของเรา เพื่อใช้กับ phpmyadmin

sudo mysql -u root -p

และใช้คำสั่งนี้ในการสร้าง user

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

โดยแก้ไข username และ passsword ที่เราตั้งไว้ตอนแรก username = exampleuser , password=pimylifeup จะกลายเป็น

GRANT ALL PRIVILEGES ON *.* TO 'exampleuser'@'localhost' IDENTIFIED BY 'pimylifeup' WITH GRANT OPTION;
FLUSH PRIVILEGES;  

เราจะใช้ username และ password นี้ ในการเข้า phpmyadmin

จากนั้นพิมพ์ quit; เพื่อออกจาก mysql

ให้เปิดไฟล์

sudo nano /etc/apache2/apache2.conf

และเติมบรรทัดนี้ลงไปในด้านล่างสุด

Include /etc/phpmyadmin/apache.conf

 แล้ว re-start apache2 service

sudo service apache2 restart

 ใช้คำสั่งนี้ในการสร้าง link

sudo ln -s /usr/share/phpmyadmin /var/www/html

จากนั้นเปิด browser อะไรก็ได้ แล้วไปที่ http://localhost/phpmyadmin

ถ้าอยากรู้ ip ของ raspberry pi ก็ให้พิมพ์ hostname -I

จะมีให้ใส่ user name และ password

exampleuser / pimylifeup


 ถ้าต้องการให้เครื่องอื่นสามารถเข้ามาอ่าน database ของเราได้ ให้แก้ไข localhost เป็น IP ของเครื่องนั้นๆ

GRANT ALL PRIVILEGES ON my_database.* TO user@'192.168.xxx.xxx' IDENTIFIED BY 'password' WITH GRANT OPTION;
หรือ 
GRANT ALL PRIVILEGES ON my_database.* TO user@'192.168.xxx.xxx' IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES;
quit;
แล้วก็เข้าไปแก้ไขไฟล์นี้
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
เอา comment ออก
port = 3306
และ comment 
#bind-address = 127.0.0.1
control+o, enter, control+x
 
restart mysql ด้วยคำสั่ง 
sudo /etc/init.d/mysql restart

 

จอบอ

 

 ที่มา

https://pimylifeup.com/raspberry-pi-mysql/

 

วันพฤหัสบดีที่ 14 มกราคม พ.ศ. 2564

rpi real time clock ds3231

วันนี้ได้มีโอกาสใช้ Real Time Clock กับ Rpi เป็นครั้งแรก โดยใช้ชิปเบอร์ ds3231

มาถึงก็ต่อสายก่อนเลย

RTC    RPi

VCC    1

GND    6

SCL    5

SDA    3

sudo apt-get update

sudo apt-get upgrade

sudo raspi-conifg

enable i2c

sudo reboot

sudo apt-get install python-smbus i2c-tools

sudo i2cdetect -y 1

จะเห็น address 68

sudo nano /boot/config.txt

เพิ่มบรรทัดนี้เข้าไปที่ด้านล่างสุดของไฟล์

dtoverlay=i2c-rtc,ds3231

ctrl+o, ctrl+x

sudo reboot

sudo apt-get -y remove fake-hwclock

sudo update-rc.d -f fake-hwclock remove

sudo nano /lib/udev/hwclock-set

มาหาบรรทัดนี้

if [ -e /run/systemd/system ] ; then
    exit 0
fi

แล้ว comment out แบบนี้

#if [ -e /run/systemd/system ] ; then
#    exit 0
#fi

ctrl+o, ctrl+x

เราสามารถอ่านเวลาจาก rtc ได้ด้วยคำสั่งนี้

sudo hwclock -D -r

ก่อนที่เราจะทำการ sync เวลาจาก rpi ของเราไปที่ rtc ต้องเช็คก่อนว่าเวลาที่ rpi เป็นเวลาที่ถูกต้อง ด้วยคำสั่ง

date

ถ้าเวลาไม่ตรงกับปัจจุบัน ให้เราต่อ rpi กับ internet เสียก่อน

ถ้าเวลาถูกต้องดีแล้ว ก็จะใช้คำสั่งนี้ในการเขียนข้อมูลเวลาไปที่ rtc

sudo hwclock -w

ให้เราลองอ่านเวลาจาก rtc ดู ด้วยคำสั่งนี้

sudo hwclock -r

เราก็จะได้มีเวลาเป็นของตัวเองสักที

จอบอ


https://www.nelisys.com/tutorials/raspberry-pi-rtc-ds3231

https://pimylifeup.com/raspberry-pi-rtc/