ラズパイはIPアドレスだけでもわかれば他はリモートで触れるというのもあり、LCDを接続して常時表示することはマストアイテムとも言えます。その方法をメモとして残します。
ラズパイのI2CはデフォルトでOFFとなっている為、RaspberryPiの設定で有効にしてください。
また、接続ハーネスを用意する必要があります。石鹸に関しては下記の手書き図面を参考にしてください。
ipアドレス取得に必要なライブラリを取得します。管理者権限にてipgetを取得します。
pi@raspberrypi:~ $ sudo pip3 install ipget
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting ipget
Downloading https://www.piwheels.org/simple/ipget/ipget-0.0.3-py3-none-any.whl
Installing collected packages: ipget
Successfully installed ipget-0.0.3
接続したLCDにIPアドレスを表示するプログラムを作ります。ここではファイル名をip_check.pyとしました。ファイルの中身は下記のとおりです。
#!/usr/bin/env python3
import subprocess
import socket
import ipget
#LCD初期化
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0x02′])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0x0c’])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0x01′])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0xff’])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0x80′])
ip = ipget.ipget()
wifi_ip = ip.ipaddr(“wlan0”)
eth_ip = ip.ipaddr(“eth0”)
print(wifi_ip)
print(eth_ip)
for tmp1 in range(len(wifi_ip)):
wifi_ip_part = str(hex(ord(wifi_ip[tmp1])))
#print(myip_part)
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x40′,wifi_ip_part])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x40′,’0x20′])
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x00′,’0xa0′])
for tmp1 in range(len(eth_ip)):
eth_ip_part = str(hex(ord(eth_ip[tmp1])))
#print(myip_part)
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x40′,eth_ip_part])
#テキスト出力
subprocess.run([‘i2cset’,’-y’,’1′,’0x3c’,’0x40′,’0x20′])
#print(myip)
※文字化けにより文書形式として記載。
下記コマンドで動作確認します。
python3 ip_check.py
cron を使って定期更新します。sudo crontab -eでエディタモードを開き、下記を追記。
*/1 * * * * sudo /usr/bin/python3 /home/pi/ip_check.py
管理者権限でエディタモードに入らないとダメなようです。
以上で完了となります。
©ZEATEC co.,ltd.