- रास्पबेरी पाई के साथ 16x2 एलसीडी इंटरफैसिंग:
- सर्किट आरेख:
- एलसीडी पर रास्पबेरी पाई का आईपी पता प्रदर्शित करें:
- समय-समय पर स्क्रिप्ट का उपयोग करें 'crontab':
रास्पबेरी पाई के साथ काम करते समय मुख्य समस्या रास्पबेरी पाई के आईपी पते को जानना है, जिसे कुछ एसएसएच या फ़ाइल स्थानांतरण क्लाइंट का उपयोग करके इसे लॉगिन करने की आवश्यकता होगी। इसलिए आज हम नेटवर्क पर आपके रास्पबेरी पाई के स्थानीय आईपी पते को खोजने के लिए कुछ पायथन स्क्रिप्ट साझा करेंगे और इसे 16x2 एलसीडी स्क्रीन पर प्रदर्शित करेंगे । हम Crontab में स्क्रिप्ट भी जोड़ेंगे ताकि इसे हर 10 मिनट पर चलाया जा सके और हमारे पास हर बार अपडेट किया हुआ IP पता होगा।
रास्पबेरी पाई के साथ 16x2 एलसीडी इंटरफैसिंग:
इससे पहले कि हम रास्पबेरी पीआई का आईपी पता प्राप्त करें, पहले हमें रास्पबेरी पाई के साथ 16x2 एलसीडी इंटरफ़ेस करने की आवश्यकता है । यहाँ इस परियोजना में हमने रास्पबेरी पाई के साथ 16x2 एलसीडी को बदलने के लिए एक बाहरी प्रवेश पुस्तकालय का उपयोग किया है, जिसके उपयोग से आपको एलसीडी ड्राइव करने के लिए कोड की कई पंक्तियों को लिखने की आवश्यकता नहीं है और आप सीधे एलसीडी पर सिर्फ एक लाइन का उपयोग करके प्रिंट कर सकते हैं कोड। हालाँकि यह लाइब्रेरी Adafruit द्वारा बनाई गई है लेकिन इसका उपयोग किसी भी LCD मॉड्यूल के लिए किया जा सकता है जिसमें HD44780 कंट्रोलर है।
Adafruit Library का उपयोग करने के लिए, हमें पहले इसे नीचे दिए गए आदेशों का उपयोग करके इंस्टॉल करना होगा । पहला कमांड आपके रास्पबेरी पाई पर चार्लसीडी रिपॉजिटरी (Adafruit द्वारा) को क्लोन करेगा, दूसरा कमांड आपको उस डाउनलोड की गई डायरेक्टरी के अंदर ले जाएगा और अंत में हमें लाइब्रेरी को स्थापित करने के लिए, Adafruit_Python -CharLCD डायरेक्टरी के अंदर, setup.py स्क्रिप्ट को निष्पादित करने की आवश्यकता है ।
git क्लोन क्लोन
अब 16x2 एलसीडी के लिए पुस्तकालय स्थापित किया गया है और आप नीचे दिए गए लाइन का उपयोग करके अपने अजगर कार्यक्रम में सिर्फ इस पुस्तकालय को आयात करके अपने कार्यों का उपयोग कर सकते हैं:
एलसीडी के रूप में Adafruit_CharLCD आयात करें
'उदाहरण' फ़ोल्डर के अंदर कुछ उदाहरण स्क्रिप्ट हैं जो लाइब्रेरी फ़ोल्डर (Adafruit_Python_CharthCD) में मौजूद हैं। आप char_lcd.py उदाहरण स्क्रिप्ट चलाकर सेटअप का परीक्षण कर सकते हैं । लेकिन इससे पहले, आपको एलसीडी पिन को रास्पबेरी पाई से कनेक्ट करने की आवश्यकता है जैसा कि अगले भाग में सर्किट आरेख में नीचे दिया गया है।
आप रास्पबेरी पाई के कुछ अन्य GPIO पिन के साथ एलसीडी को भी कनेक्ट कर सकते हैं, आपको केवल नीचे दिए गए अपने अजगर कार्यक्रम में सही इंटरफेसिंग पिन का उल्लेख करने की आवश्यकता है। रास्पबेरी पाई GPIO पिन के बारे में अधिक जानें यहाँ।
# रास्पबेरी पाई पिन सेटअप lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_back7 = 2
अब आप सीधे एलसीडी को नियंत्रित करने के लिए Adafruit Library द्वारा प्रदान किए गए कार्यों का उपयोग कर सकते हैं । कुछ कार्य नीचे दिए गए हैं; आप उदाहरण स्क्रिप्ट में और अधिक जानकारी प्राप्त कर सकते हैं:
- lcd.message (संदेश) = एलसीडी पर पाठ मुद्रित करने के लिए।
- lcd.clear () = एलसीडी को साफ़ करने के लिए।
- set_cursor (col, row) = कर्सर को कॉलम और रो पर किसी भी स्थिति में ले जाएं।
- lcd.blink (True) = कर्सर को ब्लिंक करने के लिए (सही या गलत)
- lcd.move_left () = कर्सर को बाईं ओर एक स्थिति में ले जाने के लिए।
- lcd.move_right () = कर्सर को एक स्थान पर दाईं ओर ले जाने के लिए।
यदि आप किसी भी बाहरी पुस्तकालय का उपयोग किए बिना एलसीडी कनेक्ट करना चाहते हैं तो आप हमारे पिछले ट्यूटोरियल की जांच कर सकते हैं, जहां हमने 16x2 एलसीडी के लिए सभी फ़ंक्शन लिखे हैं। एलसीडी को 8-बिट मोड में इंटरफ़ेस करने के लिए इसे जांचें और 4-बिट मोड में एलसीडी को इंटरफ़ेस करने के लिए यह एक।
सर्किट आरेख:
एलसीडी पर रास्पबेरी पाई का आईपी पता प्रदर्शित करें:
रास्पबेरी पाई के साथ 16x2 एलसीडी को इंटर करने के बाद, अब हमें रास्पबेरी पाई का आईपी पता प्राप्त करने और इसे पायथन स्क्रिप्ट का उपयोग करके एलसीडी पर प्रिंट करने की आवश्यकता है। रास्पबेरी पाई के स्थानीय आईपी पते को प्राप्त करने के बहुत सारे तरीके हैं, यहां हम आईपी पते को प्राप्त करने के लिए तीन पायथन लिपियों का वर्णन कर रहे हैं, आप उनमें से किसी का भी उपयोग कर सकते हैं।
लिनक्स कमांड का उपयोग करना:
टर्मिनल पर, हम hostname –I कमांड का उपयोग करके आसानी से आईपी एड्रेस प्राप्त कर सकते हैं, इसलिए यदि हम लिन कमांड को अजगर से चला सकते हैं तो हम आईपी एड्रेस प्राप्त कर सकते हैं। इसलिए पायथन से लिनक्स कमांड चलाने के लिए हमें कमांड नामक एक लाइब्रेरी आयात करने की आवश्यकता है , इसलिए पूरा कार्यक्रम नीचे की तरह होगा:
आयात समय आयात Adafruit_CharLCD एलसीडी आयात आदेशों के रूप में # रास्पबेरी पाई पिन सेटअप lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_back7 = 2 # परिभाषित LCD कॉलम और पंक्ति आकार 16x2 LCD के लिए। lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) ('hostname -I')) time.sleep (10.0) # 5 सेकंड प्रतीक्षा करें lcd.clear ()
यदि आप अधिक विश्वसनीय ifconfig कमांड का उपयोग करके IP पता प्राप्त करना चाहते हैं, तो आप नीचे दिए गए कमांड द्वारा hostname –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 जैसे सॉकेट से जुड़ने के लिए कुछ अन्य वेबसाइट का भी उपयोग कर सकते हैं। तो हम सॉकेट से आरपीआई का स्थानीय आईपी पता प्राप्त कर सकते हैं जो रास्पबेरी पाई और डमी आईपी पते के बीच संचार के लिए बनाया गया है। नीचे पूरा कार्यक्रम है:
आयात समय आयात Adafruit_CharLCD एलसीडी आयात सॉकेट के रूप में # रास्पबेरी पाई पिन सेटअप lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 LCD_d7 = 21 lcd_back7 = 2 # परिभाषित LCD कॉलम और पंक्ति आकार 16x2 LCD के लिए। lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en4, lcd_d5, lcd_d5, lcd_d6, lcd_columns, lcd_columns, lcd_backlight) lad_ad_ad_adumn s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () s.close () रिटर्न ip_address lcd.message ('स्थानीय IP पता): \ n ') lcd.message (get_ip_address ()) # 5 सेकंड का समय प्रतीक्षा करें। सो (10.0) lcd.clear ()
यहां अजगर में सॉकेट प्रोग्रामिंग के बारे में अधिक जानें।
'Fcntl' मॉड्यूल का उपयोग:
यह मॉड्यूल फ़ाइल नियंत्रण और फ़ाइल विवरणकों पर I / O नियंत्रण करता है। यहां इसका उपयोग नेटवर्क फ़ाइलों से आईपी पते को निकालने के लिए किया जाता है। नीचे पूर्ण पायथन कोड है:
आयात समय आयात Adafruit_CharLCD एलसीडी आयात सॉकेट आयात fcntl आयात संरचना # रास्पबेरी पाई पिन सेटअप lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 LCD_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # परिभाषित एलसीडी स्तंभ और पंक्ति आकार के रूप में। lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_backlight, lcd_backlight_interface/interface/interface/interface/interface/interface/interface/interface/interface/interf=hi) पर क्लिक करें। वापसी socket.inet_ntoa (fcntl.ioctl (s.fileno)), 0x8915, # SIOCGIFADDR स्ट्रक्चर (पैक ('256s, नेटवर्क))) lcd.mage (' स्थानीय IP पता: \ n ') lcd.message (get_interface_ipadress) 'wlan0')) # 5 सेकंड का समय प्रतीक्षा करें। सो (10.0) lcd.clear ()
यहां 'fcnfl' मॉड्यूल का उपयोग करने के बारे में अधिक जानें।
समय-समय पर स्क्रिप्ट का उपयोग करें 'crontab':
अंतिम चरण हर 15 मिनट पर समय-समय पर इस स्क्रिप्ट को चलाने के लिए प्रविष्टि जोड़ना है ताकि हम हर बार अपडेट किए गए आईपी प्राप्त कर सकें। ऐसा करने के लिए हमें नीचे कमांड का उपयोग करके क्रोन फ़ाइल को संपादित करना होगा:
crontab –e
और फिर क्रोन फ़ाइल के निचले हिस्से में नीचे की रेखा दर्ज करें और इसे CTRL + X, फिर Y का उपयोग करके सहेजें, फिर दर्ज करें।
* (15 * * * * sudo python /home/pi/ip_address_lcd.py
आप अपनी पायथन स्क्रिप्ट फ़ाइल के स्थान के अनुसार पता बदल सकते हैं और आप उस अवधि को भी बदल सकते हैं जिसमें आप अपडेट किए गए आईपी को पाने के लिए स्क्रिप्ट को बार-बार चलाना चाहते हैं।