با عرض سلام مجدد خدمت دوستان عزیز
امروز قسمت پنجم و پایانی درایو کردن یک LCD روی رسپبری پای روی براتون خواهیم گذاشت.
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
آموزش راه اندازی و اتصال نمایشگر LCD با رسپبری پای| پروژه رسپبری پای
مثال ساعت IP
این اسکریپ فرض می کند که می خواهید آدرس ip اترنت (eth0) را نشان دهید. برای آدرس ip وایرلس، باید eth0 را با wlan0 یا wlan1 جایگزین کنید.
1. #!/usr/bin/python
2.
3. from Adafruit_CharLCD import Adafruit_CharLCD
4. from subprocess import *
5. from time import sleep, strftime
6. from datetime import datetime
7.
8. lcd = Adafruit_CharLCD()
9.
10. cmd = "ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1"
11.
12. lcd.begin(16,1)
13.
14. def run_cmd(cmd):
15. p = Popen(cmd, shell=True, stdout=PIPE)
16. output = p.communicate()[0]
17. return output
18.
19. while 1:
20. lcd.clear()
21. ipaddr = run_cmd(cmd)
22. lcd.message(datetime.now().strftime('%b %d %H:%M:%S\n'))
23. lcd.message('IP %s' % ( ipaddr ) )
24. sleep(2)
اجرا کردن کد
1. $ sudo ./Adafruit_CharLCD_IPclock_example.py
چیزی که باید ببینید
init script
مزیت استفاده از کد Adafruit_CharLCD_IPclock_example.py این است که میتوان آن را به صورت دستی اجرا کرد، اما ضعف آن این است که وقتی که رسپبری پای بهش وصل می شود، که زمان و آدرس ip را روی نمایشگر نشان می دهد. این مشکل را میتوان با استفاده از init script حل کرد. که با استفاده از اجرای کد Adafruit_CharLCD_IPclock_example.py و بوت کردن سیستم قابل انجام است.
کد را در مسیر /etc/init.d/lcd کپی کنید(برای نوشتن این مسیر نیاز دارید که از sudo استفاده کنید):
1. ### BEGIN INIT INFO
2. # Provides: LCD - date / time / ip address
3. # Required-Start: $remote_fs $syslog
4. # Required-Stop: $remote_fs $syslog
5. # Default-Start: 2 3 4 5
6. # Default-Stop: 0 1 6
7. # Short-Description: Liquid Crystal Display
8. # Description: date / time / ip address
9. ### END INIT INFO
10.
11.
12. #! /bin/sh
13. # /etc/init.d/lcd
14.
15.
16. export HOME
17. case "$1" in
18. start)
19. echo "Starting LCD"
20. /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD/Adafruit_CharLCD_IPclock_example.py 2>&1 &
21. ;;
22. stop)
23. echo "Stopping LCD"
24. LCD_PID=`ps auxwww | grep Adafruit_CharLCD_IPclock_example.py | head -1 | awk '{print $2}'`
25. kill -9 $LCD_PID
26. ;;
27. *)
28. echo "Usage: /etc/init.d/lcd {start|stop}"
29. exit 1
30. ;;
31. esac
32. exit 0
باید خط زیر را در کد به مسیری که پایتون اسکریپت IPclock را نگه میدارید تغییر دهید.
/home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD/Adafruit_CharLCD_IPclock_example.py
init script قابل اجرا است
sudo chmod +x /etc/init.d/lcd
با استفاده از دستور update-rc.d ، lcd init script به سیستم شناسانده می شود:
sudo update-rc.d lcd defaults
اکنون با هر راه اندازی، LCD به صورت اتوماتیک زمان ، تاریخ و آدرس ip را نشان می دهد. این بدان معنی است که شما می توانید بدون نیاز به مانیتور بفهمید که رسپبری پای چه زمانی قابل دسترس هست و ip آدرس آن چیست.
برنامه ساعت را می توانید با اجرای کد زیر متوقف کنید:
sudo /etc/init.d/lcd stop
تایم زون (Time Zone)
رسپبری پای بر اساس زمان جهانی پیکربندی شده است. اما بهتر است بر اساس زمان منطقه خودتان تنظیم شود. با استفاده از این قسمت می توانید برای هر منطقه، زمان را روی رسپبری پای مشخص کنید.
$ sudo dpkg-reconfigure tzdata
در ادامه یک نمونه نشان داده شده است که به شما اجازه می دهد تا منطقه زمانی خود را انتخاب کنید.