- రాస్ప్బెర్రీ పైతో 16x2 LCD ని ఇంటర్ఫేసింగ్:
- సర్క్యూట్ రేఖాచిత్రం:
- రాస్ప్బెర్రీ పై యొక్క IP చిరునామాను LCD లో ప్రదర్శించండి:
- 'క్రోంటాబ్' ఉపయోగించి క్రమానుగతంగా స్క్రిప్ట్ను అమలు చేయండి:
రాస్ప్బెర్రీ పైతో పనిచేసేటప్పుడు ప్రధాన సమస్య రాస్ప్బెర్రీ పై యొక్క ఐపి చిరునామాను తెలుసుకోవడం, ఇది కొన్ని ఎస్ఎస్హెచ్ లేదా ఫైల్ ట్రాన్స్ఫర్ క్లయింట్ ఉపయోగించి లాగిన్ అవ్వడానికి అవసరం. కాబట్టి ఈ రోజు మనం నెట్వర్క్లో మీ రాస్ప్బెర్రీ పై యొక్క స్థానిక ఐపి చిరునామాను కనుగొని 16x2 ఎల్సిడి స్క్రీన్లో ప్రదర్శించడానికి కొన్ని పైథాన్ స్క్రిప్ట్లను పంచుకుంటాము. మేము స్క్రిప్ట్ను క్రోంటాబ్లో కూడా జోడిస్తాము, తద్వారా ఇది ప్రతి 10 నిమిషాలకు అమలు చేయగలదు మరియు ప్రతిసారీ నవీకరించబడిన IP చిరునామాను కలిగి ఉంటుంది.
రాస్ప్బెర్రీ పైతో 16x2 LCD ని ఇంటర్ఫేసింగ్:
మేము రాస్ప్బెర్రీ PI యొక్క IP చిరునామాను కనుగొనే ముందు, మొదట మనం 16x2 LCD ని రాస్ప్బెర్రీ పైతో ఇంటర్ఫేస్ చేయాలి. ఇక్కడ ఈ ప్రాజెక్ట్లో మేము 16x2 ఎల్సిడిని రాస్ప్బెర్రీ పైతో ఇంటర్ఫేస్ చేయడానికి బాహ్య అడాఫ్రూట్ లైబ్రరీని ఉపయోగించాము, వీటిని ఉపయోగించి ఎల్సిడిని నడపడానికి మీరు చాలా పంక్తుల కోడ్ రాయవలసిన అవసరం లేదు మరియు మీరు నేరుగా ఎల్సిడిలో ఒక లైన్ ఉపయోగించి ప్రింట్ చేయవచ్చు కోడ్. అయితే ఈ లైబ్రరీని అడాఫ్రూట్ సృష్టించింది, అయితే ఇది HD44780 కంట్రోలర్ ఉన్న ఏదైనా LCD మాడ్యూల్ కోసం ఉపయోగించవచ్చు.
అడాఫ్రూట్ లైబ్రరీని ఉపయోగించడానికి, మేము మొదట దిగువ ఆదేశాలను ఉపయోగించి దీన్ని వ్యవస్థాపించాలి. మొదటి ఆదేశం మీ రాస్ప్బెర్రీ పైలోని చార్ఎల్సిడి రిపోజిటరీని (అడాఫ్రూట్ చేత) క్లోన్ చేస్తుంది, రెండవ ఆదేశం ఆ డౌన్లోడ్ చేసిన డైరెక్టరీ లోపలికి తీసుకెళుతుంది మరియు చివరకు మేము లైబ్రరీని ఇన్స్టాల్ చేయడానికి Adafruit_Python_CharLCD డైరెక్టరీలో సమర్పించిన setup.py స్క్రిప్ట్ను అమలు చేయాలి.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd./Adafruit_Python_CharLCD sudo python setup.py install
ఇప్పుడు 16x2 LCD కోసం లైబ్రరీ వ్యవస్థాపించబడింది మరియు మీరు ఈ లైబ్రరీని మీ పైథాన్ ప్రోగ్రామ్లో దిగుమతి చేయడం ద్వారా ఈ క్రింది పంక్తిని ఉపయోగించి ఉపయోగించవచ్చు:
Adafruit_CharLCD ని LCD గా దిగుమతి చేయండి
లైబ్రరీ ఫోల్డర్ (Adafruit_Python_CharLCD) లో ఉన్న 'ఉదాహరణలు' ఫోల్డర్ లోపల కొన్ని ఉదాహరణ స్క్రిప్ట్స్ ఉన్నాయి. Char_lcd.py ఉదాహరణ స్క్రిప్ట్ను అమలు చేయడం ద్వారా మీరు సెటప్ను పరీక్షించవచ్చు. కానీ దీనికి ముందు, మీరు తరువాతి విభాగంలో సర్క్యూట్ రేఖాచిత్రంలో క్రింద ఇచ్చిన విధంగా ఎల్సిడి పిన్లను రాస్ప్బెర్రీ పైతో కనెక్ట్ చేయాలి.
మీరు రాస్ప్బెర్రీ పై యొక్క కొన్ని ఇతర GPIO పిన్లతో LCD ని కూడా కనెక్ట్ చేయవచ్చు, మీ పైథాన్ ప్రోగ్రామ్లో సరైన ఇంటర్ఫేసింగ్ పిన్లను మీరు క్రింద పేర్కొనాలి. రాస్ప్బెర్రీ పై GPIO పిన్స్ గురించి ఇక్కడ మరింత తెలుసుకోండి.
# రాస్ప్బెర్రీ పై పిన్ సెటప్ lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
ఇప్పుడు మీరు ఎల్సిడిని నియంత్రించడానికి అడాఫ్రూట్ లైబ్రరీ అందించిన విధులను నేరుగా ఉపయోగించవచ్చు. కొన్ని విధులు క్రింద ఇవ్వబడ్డాయి; ఉదాహరణ స్క్రిప్ట్లో మీరు మరింత కనుగొనవచ్చు:
- lcd.message (message) = వచనాన్ని LCD లో ముద్రించడానికి.
- lcd.clear () = LCD ని క్లియర్ చేయడానికి.
- set_cursor (col, row) = కర్సర్ను కాలమ్ మరియు అడ్డు వరుసలోని ఏదైనా స్థానానికి తరలించండి.
- lcd.blink (నిజం) = కర్సర్ను రెప్ప వేయడానికి (నిజం లేదా తప్పు)
- lcd.move_left () = కర్సర్ను ఒక స్థానం ద్వారా ఎడమ వైపుకు తరలించడానికి.
- lcd.move_right () = కర్సర్ను ఒక స్థానం ద్వారా కుడి వైపుకు తరలించడానికి.
మీరు బాహ్య లైబ్రరీని ఉపయోగించకుండా LCD ని కనెక్ట్ చేయాలనుకుంటే, మీరు మా మునుపటి ట్యుటోరియల్ను తనిఖీ చేయవచ్చు, ఇక్కడ మేము 16x2 LCD కోసం అన్ని విధులను వ్రాసాము. ఎల్సిడిని 8-బిట్ మోడ్లో ఇంటర్ఫేస్ చేయడానికి దీన్ని తనిఖీ చేయండి మరియు ఎల్సిడిని 4-బిట్ మోడ్లో ఇంటర్ఫేస్ చేయడానికి ఇది ఒకటి.
సర్క్యూట్ రేఖాచిత్రం:
రాస్ప్బెర్రీ పై యొక్క IP చిరునామాను LCD లో ప్రదర్శించండి:
రాస్ప్బెర్రీ పైతో 16x2 ఎల్సిడిని ఇంటర్ఫేస్ చేసిన తరువాత, ఇప్పుడు మనం రాస్ప్బెర్రీ పై యొక్క ఐపి చిరునామాను పొందాలి మరియు పైథాన్ స్క్రిప్ట్ ఉపయోగించి ఎల్సిడిలో ప్రింట్ చేయాలి. రాస్ప్బెర్రీ పై యొక్క స్థానిక ఐపి చిరునామాను పొందడానికి చాలా మార్గాలు ఉన్నాయి, ఇక్కడ మేము ఐపి చిరునామాను పొందడానికి మూడు పైథాన్ స్క్రిప్ట్లను వివరిస్తున్నాము, మీరు వాటిలో దేనినైనా ఉపయోగించవచ్చు.
Linux ఆదేశాలను ఉపయోగించడం:
టెర్మినల్లో, హోస్ట్ నేమ్ –I కమాండ్ ఉపయోగించి మనం సులభంగా ఐపి అడ్రస్ని పొందవచ్చు , కాబట్టి పైథాన్ నుండి లినక్స్ కమాండ్ను రన్ చేయగలిగితే మనం ఐపి అడ్రస్ని పొందవచ్చు. కాబట్టి పైథాన్ నుండి లైనక్స్ ఆదేశాలను అమలు చేయడానికి మనం ఆదేశాలు అనే లైబ్రరీని దిగుమతి చేసుకోవాలి , కాబట్టి పూర్తి ప్రోగ్రామ్ క్రింద ఉంటుంది:
దిగుమతి సమయ దిగుమతి Adafruit_CharLCD ని LCD దిగుమతి ఆదేశాలుగా # రాస్ప్బెర్రీ పై పిన్ సెటప్ lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # 16x2 LCD కొరకు LCD కాలమ్ మరియు అడ్డు వరుస పరిమాణాన్ని నిర్వచించండి. lcd_columns = 16 lcd_rows = 2 lcd = LCD. ('హోస్ట్ పేరు -I')) time.sleep (10.0) # 5 సెకన్లు వేచి ఉండండి lcd.clear ()
మీరు మరింత విశ్వసనీయమైన ifconfig ఆదేశాన్ని ఉపయోగించి IP చిరునామాను పొందాలనుకుంటే ఈ క్రింది ఆదేశం ద్వారా మీరు ప్రోగ్రామ్లోని హోస్ట్ పేరు -I ఆదేశాన్ని భర్తీ చేయవచ్చు:
lcd.message (command.getoutput ('ifconfig wlan0 - grep "inet \ addr" - cut -d: -f2 - cut -d "" -f1'))
సాకెట్ ప్రోగ్రామింగ్ ఉపయోగించి:
ఇక్కడ ఈ ప్రోగ్రామ్లో మేము కుటుంబం AF_INET యొక్క సాకెట్ను సృష్టిస్తాము మరియు ఈ పంక్తిని ఉపయోగించి SOCK_DGRAM అని టైప్ చేస్తాము: s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) , అప్పుడు మేము 8.8 వంటి కొన్ని హోస్ట్ పేరు లేదా ఐపి చిరునామాను ఉపయోగించి సాకెట్ ద్వారా కనెక్షన్ను సృష్టిస్తాము..8.8, మీరు gmail.com వంటి సాకెట్తో కనెక్ట్ అవ్వడానికి మరికొన్ని వెబ్సైట్ను కూడా ఉపయోగించవచ్చు. కాబట్టి మేము రాస్ప్బెర్రీ పై మరియు డమ్మీ ఐపి అడ్రస్ మధ్య కమ్యూనికేషన్ కోసం సృష్టించబడిన సాకెట్ నుండి RPi యొక్క స్థానిక IP చిరునామాను పొందవచ్చు. పూర్తి కార్యక్రమం క్రింద ఉంది:
దిగుమతి సమయం దిగుమతి Adafruit_CharLCD ని LCD దిగుమతి సాకెట్ # రాస్ప్బెర్రీ పై పిన్ సెటప్ lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # 16x2 LCD కొరకు 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_backad '; s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80%) ip_address = s.getsockname () s.close () return ip_address lcd.message ('స్థానిక IP చిరునామా: \ n ') lcd.message (get_ip_address ()) # 5 సెకన్ల సమయం వేచి ఉండండి. నిద్ర (10.0) lcd.clear ()
పైథాన్లో సాకెట్ ప్రోగ్రామింగ్ గురించి ఇక్కడ మరింత తెలుసుకోండి.
'Fcntl' మాడ్యూల్ ఉపయోగించి:
ఈ మాడ్యూల్ ఫైల్ డిస్క్రిప్టర్లపై ఫైల్ కంట్రోల్ మరియు I / O నియంత్రణను చేస్తుంది. ఇక్కడ ఇది నెట్వర్క్ ఫైళ్ళ నుండి IP చిరునామాను సేకరించేందుకు ఉపయోగించబడుతుంది. పూర్తి పైథాన్ కోడ్ క్రింద ఉంది:
దిగుమతి సమయ దిగుమతి అడాఫ్రూట్_చార్ఎల్సిడిని ఎల్సిడి దిగుమతి సాకెట్ దిగుమతి 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_backface) return socket.inet_ntoa (fcntl.ioctl (s.fileno (), 0x8915, # SIOCGIFADDR struct.pack ('256s', నెట్వర్క్))) lcd.message ('స్థానిక IP చిరునామా: \ n') lcd.message (get_interface_ipaddress ('wlan0')) # 5 సెకన్ల సమయం వేచి ఉండండి. నిద్ర (10.0) lcd.clear ()
'Fcnfl' మాడ్యూల్ ఉపయోగించడం గురించి ఇక్కడ మరింత తెలుసుకోండి.
'క్రోంటాబ్' ఉపయోగించి క్రమానుగతంగా స్క్రిప్ట్ను అమలు చేయండి:
ప్రతి 15 నిమిషాలకు క్రమానుగతంగా ఈ స్క్రిప్ట్ను అమలు చేయడానికి ఎంట్రీని జోడించడం చివరి దశ, తద్వారా మేము ప్రతిసారీ నవీకరించబడిన IP ని పొందవచ్చు. దీన్ని చేయడానికి మేము దిగువ ఆదేశాన్ని ఉపయోగించి క్రాన్ ఫైల్ను సవరించాలి:
crontab –e
ఆపై క్రాన్ ఫైల్ దిగువన ఉన్న క్రింది పంక్తిని ఎంటర్ చేసి CTRL + X ఉపయోగించి సేవ్ చేసి, ఆపై Y, ఆపై ఎంటర్ చేయండి.
* / 15 * * * * sudo python /home/pi/ip_address_lcd.py
మీ పైథాన్ స్క్రిప్ట్ ఫైల్ యొక్క స్థానం ప్రకారం మీరు చిరునామాను మార్చవచ్చు మరియు నవీకరించబడిన ఐపిని పొందడానికి స్క్రిప్ట్ను పదేపదే అమలు చేయాలనుకుంటున్న వ్యవధిని కూడా మీరు మార్చవచ్చు.