به نام خدا
پیدا کردن آدرس آی پی یک رزبری پای با استفاده از کد پایتون
در این قسمت قصد داریم تا به طور تخصصی بر روی پیدا کردن آدرس آی پی رزبری پای بپردازیم. به این آی پی نیاز داریم تا از طریق SSH به رزبری پای وارد شویم. برای اینکار از کد های مختلفی استفاده می کنیم تا آی پی را بر روی ال سی دی ۲ در ۱۶ نمایش دهد. همچنین از کدی استفاده کردیم تا هر ده دقیقه یک بار آی پی را بررسی کند تا در صورت بروز شدن آن متوجه شویم.
اتصال ای سی دی:
ابتدا باید ال سی دی را به رزبری پای وصل کنیم. در این برنامه قصد داریم تا از یک کتابخانه ی خارجیی استفاده کنیم. برای دانلود از لینک زیر استفاده می کنیم.
حال برای نصب این کتابخانه از دستور زیر استفاده می کنیم.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd ./Adafruit_Python_CharLCD sudo python setup.py install
حال کتابخانه نصب شده است و شما تنها با استفاده از کد زیر این کتابخانه را به برنامه ی پایتون خود اضافه کنید :
import Adafruit_CharLCD as LCD
در کد زیر نیز اتصال پین های رزبری پای و ال سی دی تعریف شده است.
# Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
شماتیک مدار پیدا کردن آدرس آی پی یک رزبری پای با استفاده از کد پایتون:
در شکل زیر شماتیک مدار مورد نظر را مشاهده می کنید.
نمایش آدرس آی پی رزبری پای بر روی ال سی دی:
بعد از راه اندازی ال سی دی حال باید آدرس آی پی رزبری پای را دریافت کنیم و بر روی ال سی دی نمایش دهیم. راه های مختلفی برای دریافت آدرس آی پی می باشد که در اینجا ما سه راه را بررسی می کنیم.
استفاده از دستورات لینوکس:
در پنجره ی ترمینال رزبری پای به راحتی می توانیم با استفاده از دستور hostname –I command می توانید دستور لینوکس از رزبری پای اجرا کرده و آدرس آی پی را دریافت کنیم. برای اینکار از دستور زیر استفاده می کنیم :
import time import Adafruit_CharLCD as LCD import commands # Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) lcd.message('Local IP Address:\n') lcd.message(commands.getoutput('hostname -I')) time.sleep(10.0) # Wait 5 seconds lcd.clear()
همچنین می توانید با تغییر hostname –I command در برنامه با استفاده از کد زیر به آدرس آی پی مورد نظر خود دسترسی پیدا کنید :
lcd.message(commands.getoutput('ifconfig wlan0 | grep "inet\ addr" | cut -d: -f2 | cut -d" " -f1'))
استفاده از ماژول ‘fcntl’ :
این مازول عمل کنترل را بر ورودی و خروجی انجام می دهد. با استفاده از کد زیر میتوانید به راحتی آدرس آی پی را استخراج کنید :
import time import Adafruit_CharLCD as LCD import socket import fcntl import struct # Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) def get_interface_ipaddress(network): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), ۰x8915, # SIOCGIFADDR struct.pack('256s', network[:15]) )[۲۰:۲۴]) lcd.message('Local IP Address:\n') lcd.message(get_interface_ipaddress('wlan0')) # Wait 5 seconds time.sleep(10.0) lcd.clear()
در یافت آی پی هر ۱۵ دقیقه یکبار:
در این قسمت می خواهیم آدرس آی پی را به طورخودکار برای هر ۱۵ دقیقه یکبار به دست آوریم. برای اینکار باید از کد زیر را در پنجره ی فرمان تایپ کنیم
crontab –e
سپس کد زیر را در پنجره ی باز شده وارد کنید و سپس آن را سیو و سپس اجرا کنید.
*/۱۵ * * * * sudo python /home/pi/ip_address_lcd.py
دیدگاهها (0)