株式会社ジーテック

制御機器を小ロット多品種で設計製作

ラズパイに接続したLCDにIPアドレス表示

ラズパイはIPアドレスだけでもわかれば他はリモートで触れるというのもあり、LCDを接続して常時表示することはマストアイテムとも言えます。その方法をメモとして残します。

I2C接続LCDを使用する前準備

ラズパイのI2CはデフォルトでOFFとなっている為、RaspberryPiの設定で有効にしてください。

また、接続ハーネスを用意する必要があります。石鹸に関しては下記の手書き図面を参考にしてください。

ソフトウェア等の準備

ipアドレス取得に必要なライブラリを取得します。管理者権限にてipgetを取得します。

接続した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)

※文字化けにより文書形式として記載。

動作確認

下記コマンドで動作確認します。

cron を使って定期更新します。sudo crontab -eでエディタモードを開き、下記を追記。

管理者権限でエディタモードに入らないとダメなようです。

以上で完了となります。

©ZEATEC co.,ltd.