# रास्पबेरी पाय
[रास्पबेरी पाय](https://raspberrypi.org) हे एक सिंगल-बोर्ड संगणक आहे. तुम्ही सेन्सर्स आणि अॅक्ट्युएटर्स जोडण्यासाठी विविध उपकरणे आणि इकोसिस्टम वापरू शकता, आणि या धड्यांसाठी [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) नावाच्या हार्डवेअर इकोसिस्टमचा वापर केला जात आहे. तुम्ही तुमच्या पायसाठी कोड लिहाल आणि Grove सेन्सर्सना Python वापरून ऍक्सेस कराल.

## सेटअप
जर तुम्ही तुमचे IoT हार्डवेअर म्हणून रास्पबेरी पाय वापरत असाल, तर तुम्हाला दोन पर्याय आहेत - तुम्ही हे सर्व धडे पूर्ण करू शकता आणि थेट पायवर कोड लिहू शकता, किंवा तुम्ही 'हेडलस' पायला दूरस्थपणे कनेक्ट करू शकता आणि तुमच्या संगणकावरून कोड लिहू शकता.
सुरुवात करण्यापूर्वी, तुम्हाला Grove बेस हॅट तुमच्या पायला जोडणे आवश्यक आहे.
### कार्य - सेटअप
तुमच्या पायवर Grove बेस हॅट इंस्टॉल करा आणि पाय कॉन्फिगर करा.
1. Grove बेस हॅट पायला जोडा. हॅटवरील सॉकेट पायवरील सर्व GPIO पिन्सवर बसते, पिन्सवर पूर्णपणे खाली सरकते आणि बेसवर घट्ट बसते. हे पायवर बसते आणि त्याला झाकते.

1. तुम्ही तुमच्या पायला कसे प्रोग्राम करायचे आहे ते ठरवा आणि खालील संबंधित विभागाकडे जा:
* [थेट तुमच्या पायवर काम करा](../../../../../1-getting-started/lessons/1-introduction-to-iot)
* [पाय कोडसाठी दूरस्थ प्रवेश](../../../../../1-getting-started/lessons/1-introduction-to-iot)
### थेट तुमच्या पायवर काम करा
जर तुम्हाला थेट तुमच्या पायवर काम करायचे असेल, तर तुम्ही रास्पबेरी पाय OS ची डेस्कटॉप आवृत्ती वापरू शकता आणि तुम्हाला आवश्यक असलेली सर्व साधने इंस्टॉल करू शकता.
#### कार्य - थेट तुमच्या पायवर काम करा
विकसनासाठी तुमचा पाय सेट करा.
1. [रास्पबेरी पाय सेटअप मार्गदर्शक](https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up) मधील सूचना अनुसरा, तुमचा पाय सेट करा, कीबोर्ड/माऊस/मॉनिटरशी कनेक्ट करा, तुमच्या WiFi किंवा ईथरनेट नेटवर्कशी कनेक्ट करा आणि सॉफ्टवेअर अपडेट करा.
पायला Grove सेन्सर्स आणि अॅक्ट्युएटर्स वापरून प्रोग्राम करण्यासाठी, तुम्हाला डिव्हाइस कोड लिहिण्यासाठी एक एडिटर इंस्टॉल करणे आवश्यक आहे, तसेच Grove हार्डवेअरशी संवाद साधणाऱ्या विविध लायब्ररी आणि साधने इंस्टॉल करणे आवश्यक आहे.
1. एकदा तुमचा पाय रीबूट झाल्यावर, टॉप मेनू बारवर **टर्मिनल** आयकॉन क्लिक करून टर्मिनल लॉन्च करा, किंवा *मेनू -> अॅक्सेसरीज -> टर्मिनल* निवडा.
1. OS आणि इंस्टॉल केलेले सॉफ्टवेअर अद्ययावत असल्याचे सुनिश्चित करण्यासाठी खालील कमांड चालवा:
```sh
sudo apt update && sudo apt full-upgrade --yes
```
1. Grove हार्डवेअरसाठी आवश्यक असलेल्या सर्व लायब्ररी इंस्टॉल करण्यासाठी खालील कमांड्स चालवा:
```sh
sudo apt install git python3-dev python3-pip --yes
git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo pip3 install .
sudo raspi-config nonint do_i2c 0
```
हे Git इंस्टॉल करण्यापासून सुरू होते, तसेच Python पॅकेजेस इंस्टॉल करण्यासाठी Pip.
Python चे एक शक्तिशाली वैशिष्ट्य म्हणजे [Pip पॅकेजेस](https://pypi.org) इंस्टॉल करण्याची क्षमता - ही इंटरनेटवर प्रकाशित केलेली इतर लोकांनी लिहिलेली कोड पॅकेजेस आहेत. तुम्ही एक कमांड वापरून तुमच्या संगणकावर Pip पॅकेज इंस्टॉल करू शकता आणि नंतर तुमच्या कोडमध्ये ते पॅकेज वापरू शकता.
Seeed Grove Python पॅकेजेस स्रोतातून इंस्टॉल करणे आवश्यक आहे. या कमांड्स त्या पॅकेजसाठी स्रोत कोड असलेला रिपो क्लोन करतील आणि नंतर तो स्थानिक पातळीवर इंस्टॉल करतील.
> 💁 डीफॉल्टनुसार, जेव्हा तुम्ही पॅकेज इंस्टॉल करता तेव्हा ते तुमच्या संगणकावर सर्वत्र उपलब्ध असते, आणि यामुळे पॅकेज आवृत्त्यांसह समस्या उद्भवू शकतात - जसे की एका अॅप्लिकेशनला पॅकेजच्या एका आवृत्तीवर अवलंबून राहावे लागते जे दुसऱ्या अॅप्लिकेशनसाठी नवीन आवृत्ती इंस्टॉल केल्यावर खराब होते. या समस्येवर उपाय म्हणून, तुम्ही [Python व्हर्च्युअल एन्व्हायर्नमेंट](https://docs.python.org/3/library/venv.html) वापरू शकता, म्हणजेच एका समर्पित फोल्डरमध्ये Python ची कॉपी, आणि जेव्हा तुम्ही Pip पॅकेजेस इंस्टॉल करता तेव्हा ती फक्त त्या फोल्डरमध्ये इंस्टॉल होतात. तुम्ही तुमच्या पायवर व्हर्च्युअल एन्व्हायर्नमेंट वापरणार नाही. Grove इंस्टॉल स्क्रिप्ट Grove Python पॅकेजेस ग्लोबली इंस्टॉल करते, त्यामुळे व्हर्च्युअल एन्व्हायर्नमेंट सेट अप करून नंतर त्या एन्व्हायर्नमेंटमध्ये Grove पॅकेजेस मॅन्युअली पुन्हा इंस्टॉल करणे आवश्यक आहे. ग्लोबल पॅकेजेस वापरणे सोपे आहे, विशेषतः कारण बरेच पाय विकसक प्रत्येक प्रोजेक्टसाठी स्वच्छ SD कार्ड पुन्हा फ्लॅश करतात.
शेवटी, हे I2C इंटरफेस सक्षम करते.
1. मेनू वापरून किंवा टर्मिनलमध्ये खालील कमांड चालवून पाय रीबूट करा:
```sh
sudo reboot
```
1. एकदा पाय रीबूट झाल्यावर, टर्मिनल पुन्हा लॉन्च करा आणि [Visual Studio Code (VS Code)](https://code.visualstudio.com?WT.mc_id=academic-17441-jabenn) इंस्टॉल करण्यासाठी खालील कमांड चालवा - हे एडिटर आहे ज्याचा वापर तुम्ही Python मध्ये तुमचा डिव्हाइस कोड लिहिण्यासाठी कराल.
```sh
sudo apt install code
```
एकदा हे इंस्टॉल झाल्यावर, VS Code टॉप मेनूमधून उपलब्ध असेल.
> 💁 तुम्ही तुमच्यासाठी आवडते साधन असल्यास, या धड्यांसाठी कोणताही Python IDE किंवा एडिटर वापरण्यास मोकळे आहात, परंतु धडे VS Code वापरण्याच्या सूचनांवर आधारित असतील.
1. Pylance इंस्टॉल करा. हे VS Code साठी एक एक्स्टेंशन आहे जे Python भाषा समर्थन प्रदान करते. VS Code मध्ये हे एक्स्टेंशन इंस्टॉल करण्याच्या सूचनांसाठी [Pylance एक्स्टेंशन डॉक्युमेंटेशन](https://marketplace.visualstudio.com/items?WT.mc_id=academic-17441-jabenn&itemName=ms-python.vscode-pylance) पहा.
### पाय कोडसाठी दूरस्थ प्रवेश
पायवर थेट कोड लिहिण्याऐवजी, तो 'हेडलस' चालवू शकतो, म्हणजे कीबोर्ड/माऊस/मॉनिटरशी न जोडलेला, आणि तुमच्या संगणकावरून Visual Studio Code वापरून कॉन्फिगर आणि कोड करू शकतो.
#### पाय OS सेट करा
दूरस्थपणे कोड लिहिण्यासाठी, पाय OS SD कार्डवर इंस्टॉल करणे आवश्यक आहे.
##### कार्य - पाय OS सेट करा
हेडलस पाय OS सेट करा.
1. [रास्पबेरी पाय OS सॉफ्टवेअर पृष्ठ](https://www.raspberrypi.org/software/) वरून **रास्पबेरी पाय इमेजर** डाउनलोड करा आणि इंस्टॉल करा.
1. SD कार्ड तुमच्या संगणकात घाला, आवश्यक असल्यास अॅडॉप्टर वापरा.
1. रास्पबेरी पाय इमेजर लॉन्च करा.
1. रास्पबेरी पाय इमेजरमधून, **CHOOSE OS** बटण निवडा, नंतर *Raspberry Pi OS (Other)* निवडा, त्यानंतर *Raspberry Pi OS Lite (32-bit)* निवडा.

> 💁 Raspberry Pi OS Lite ही Raspberry Pi OS ची आवृत्ती आहे ज्यामध्ये डेस्कटॉप UI किंवा UI आधारित साधने नाहीत. हे हेडलेस पायसाठी आवश्यक नाही आणि इंस्टॉल लहान आणि बूट अप वेळ जलद बनवते.
1. **CHOOSE STORAGE** बटण निवडा, नंतर तुमचे SD कार्ड निवडा.
1. **Advanced Options** लॉन्च करण्यासाठी `Ctrl+Shift+X` दाबा. या पर्यायांमुळे रास्पबेरी पाय OS ची काही प्री-कॉन्फिगरेशन करण्याची परवानगी मिळते.
1. **Enable SSH** चेक बॉक्स तपासा आणि `pi` युजरसाठी पासवर्ड सेट करा. हा पासवर्ड तुम्ही नंतर पायमध्ये लॉग इन करण्यासाठी वापराल.
1. जर तुम्ही WiFi वरून पायशी कनेक्ट करण्याची योजना आखत असाल, तर **Configure WiFi** चेक बॉक्स तपासा आणि तुमचा WiFi SSID आणि पासवर्ड प्रविष्ट करा, तसेच तुमचा WiFi देश निवडा. जर तुम्ही ईथरनेट केबल वापरणार असाल तर तुम्हाला हे करण्याची गरज नाही. तुम्ही कनेक्ट करत असलेले नेटवर्क तुमच्या संगणकावर असलेल्या नेटवर्कसारखेच असल्याचे सुनिश्चित करा.
1. **Set locale settings** चेक बॉक्स तपासा आणि तुमचा देश आणि टाइमझोन सेट करा.
1. **SAVE** बटण निवडा.
1. OS SD कार्डवर लिहिण्यासाठी **WRITE** बटण निवडा. जर तुम्ही macOS वापरत असाल, तर तुम्हाला तुमचा पासवर्ड प्रविष्ट करण्यास सांगितले जाईल कारण डिस्क इमेज लिहिणारे अंतर्गत साधन विशेषाधिकारित प्रवेश आवश्यक आहे.
OS SD कार्डवर लिहिले जाईल, आणि पूर्ण झाल्यावर OS SD कार्ड इजेक्ट करेल आणि तुम्हाला सूचित केले जाईल. SD कार्ड तुमच्या संगणकातून काढा, ते पायमध्ये घाला, पाय चालू करा आणि योग्यरित्या बूट होण्यासाठी सुमारे 2 मिनिटे प्रतीक्षा करा.
#### पायशी कनेक्ट करा
पुढील चरण म्हणजे पायला दूरस्थपणे ऍक्सेस करणे. तुम्ही हे `ssh` वापरून करू शकता, जे macOS, Linux आणि Windows च्या अलीकडील आवृत्त्यांवर उपलब्ध आहे.
##### कार्य - पायशी कनेक्ट करा
पायला दूरस्थपणे ऍक्सेस करा.
1. टर्मिनल किंवा कमांड प्रॉम्प्ट लॉन्च करा आणि पायशी कनेक्ट करण्यासाठी खालील कमांड प्रविष्ट करा:
```sh
ssh pi@raspberrypi.local
```
जर तुम्ही Windows च्या जुन्या आवृत्तीवर असाल ज्यामध्ये `ssh` इंस्टॉल केलेले नाही, तर तुम्ही OpenSSH वापरू शकता. [OpenSSH इंस्टॉलेशन डॉक्युमेंटेशन](https://docs.microsoft.com//windows-server/administration/openssh/openssh_install_firstuse?WT.mc_id=academic-17441-jabenn) मध्ये इंस्टॉलेशनच्या सूचनांचा शोध घ्या.
1. हे तुमच्या पायशी कनेक्ट होईल आणि पासवर्ड विचारेल.
तुमच्या नेटवर्कवरील संगणकांना `.local` वापरून शोधण्याची क्षमता ही Linux आणि Windows मध्ये अलीकडील भर आहे. जर तुम्ही Linux किंवा Windows वापरत असाल आणि तुम्हाला Hostname सापडत नसल्याबद्दल कोणतीही त्रुटी मिळाली, तर तुम्हाला ZeroConf नेटवर्किंग (Apple द्वारे Bonjour म्हणून संदर्भित) सक्षम करण्यासाठी अतिरिक्त सॉफ्टवेअर इंस्टॉल करणे आवश्यक आहे:
1. जर तुम्ही Linux वापरत असाल, तर खालील कमांड वापरून Avahi इंस्टॉल करा:
```sh
sudo apt-get install avahi-daemon
```
1. जर तुम्ही Windows वापरत असाल, तर ZeroConf सक्षम करण्याचा सर्वात सोपा मार्ग म्हणजे [Bonjour Print Services for Windows](http://support.apple.com/kb/DL999) इंस्टॉल करणे. तुम्ही [iTunes for Windows](https://www.apple.com/itunes/download/) इंस्टॉल करून युटिलिटीची नवीन आवृत्ती मिळवू शकता (जी स्वतंत्रपणे उपलब्ध नाही).
> 💁 जर तुम्ही `raspberrypi.local` वापरून कनेक्ट करू शकत नसाल, तर तुम्ही तुमच्या पायचा IP पत्ता वापरू शकता. [रास्पबेरी पाय IP पत्ता डॉक्युमेंटेशन](https://www.raspberrypi.org/documentation/remote-access/ip-address.md) मध्ये IP पत्ता मिळवण्याच्या अनेक पद्धतींसाठी सूचनांचा संदर्भ घ्या.
1. तुम्ही रास्पबेरी पाय इमेजर Advanced Options मध्ये सेट केलेला पासवर्ड प्रविष्ट करा.
#### पायवरील सॉफ्टवेअर कॉन्फिगर करा
एकदा तुम्ही पायशी कनेक्ट झाल्यावर, तुम्हाला OS अद्ययावत असल्याचे सुनिश्चित करणे आवश्यक आहे, आणि Grove हार्डवेअरशी संवाद साधणाऱ्या विविध लायब्ररी आणि साधने इंस्टॉल करणे आवश्यक आहे.
##### कार्य - पायवरील सॉफ्टवेअर कॉन्फिगर करा
इंस्टॉल केलेले पाय सॉफ्टवेअर कॉन्फिगर करा आणि Grove लायब्ररी इंस्टॉल करा.
1. तुमच्या `ssh` सत्रातून, पाय अपडेट करण्यासाठी आणि नंतर रीबूट करण्यासाठी खालील कमांड चालवा:
```sh
sudo apt update && sudo apt full-upgrade --yes && sudo reboot
```
पाय अपडेट केला जाईल आणि रीबूट केला जाईल. पाय रीबूट झाल्यावर `ssh` सत्र समाप्त होईल, त्यामुळे सुमारे 30 सेकंद प्रतीक्षा करा आणि नंतर पुन्हा कनेक्ट करा.
1. पुन्हा कनेक्ट केलेल्या `ssh` सत्रातून, Grove हार्डवेअरसाठी आवश्यक असलेल्या सर्व लायब्ररी इंस्टॉल करण्यासाठी खालील कमांड्स चालवा:
```sh
sudo apt install git python3-dev python3-pip --yes
git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo pip3 install .
sudo raspi-config nonint do_i2c 0
```
हे Git इंस्टॉल करण्यापासून सुरू होते, तसेच Python पॅकेजेस इंस्टॉल करण्यासाठी Pip.
Python चे एक शक्तिशाली वैशिष्ट्य म्हणजे [Pip पॅकेजेस](https://pypi.org) इंस्टॉल करण्याची क्षमता - ही इंटरनेटवर प्रकाशित केलेली इतर लोकांनी लिहिलेली कोड पॅकेजेस आहेत. तुम्ही एक कमांड वापरून तुमच्या संगणकावर Pip पॅकेज इंस्टॉल करू शकता आणि नंतर तुमच्या कोडमध्ये ते पॅकेज वापरू शकता.
Seeed Grove Python पॅकेजेस स्रोतातून इंस्टॉल करणे आवश्यक आहे. या कमांड्स त्या पॅकेजसाठी स्रोत कोड असलेला रिपो क्लोन करतील आणि नंतर तो स्थानिक पातळीवर इंस्टॉल करतील.
> 💁 डीफॉल्टनुसार, जेव्हा तुम्ही पॅकेज इंस्टॉल करता तेव्हा ते तुमच्या संगणकावर सर्वत्र उपलब्ध असते, आणि यामुळे पॅकेज आवृत्त्यांसह समस्या उद्भवू शकतात - जसे की एका अॅप्लिकेशनला पॅकेजच्या एका आवृत्तीवर अवलंबून राहावे लागते जे दुसऱ्या अॅप्लिकेशनसाठी नवीन आवृत्ती इंस्टॉल केल्यावर खराब होते. या समस्येवर उपाय म्हणून, तुम्ही [Python व्हर्च्युअल एन्व्हायर्नमेंट](https://docs.python.org/3/library/venv.html) वापरू शकता, म्हणजेच एका समर्पित फोल्डरमध्ये Python ची कॉपी, आणि जेव्हा तुम्ही Pip पॅकेजेस इंस्टॉल करता तेव्हा ती फक्त त्या फोल्डरमध्ये इंस्टॉल होतात. तुम्ही तुमच्या पायवर व्हर्च्युअल एन्व्हायर्नमेंट वापरणार नाही. Grove इंस्टॉल स्क्रिप्ट Grove Python पॅकेजेस ग्लोबली इंस्टॉल करते, त्यामुळे व्हर्च्युअल एन्व्हायर्नमेंट सेट अप करून नंतर त्या एन्व्हायर्नमेंटमध्ये Grove पॅकेजेस मॅन्युअली पुन्हा इंस्टॉल करणे आवश्यक आहे. ग्लोबल पॅकेजेस वापरणे सोपे आहे, विशेषतः कारण बरेच पाय विकसक प्रत्येक प्रोजेक्टसाठी स्वच्छ SD कार्ड पुन्हा फ्लॅश करतात.
शेवटी, हे I2C इंटरफेस सक्षम करते.
1. खालील कमांड चालवून पाय रीबूट करा:
```sh
sudo reboot
```
पाय रीबूट झाल्यावर `ssh` सत्र समाप्त होईल. पुन्हा कनेक्ट करण्याची गरज नाही.
#### दूरस्थ ऍक्सेससाठी VS Code कॉन्फिगर करा
एकदा पाय कॉन्फिगर झाल्यावर, तुम्ही तुमच्या संगणकावरून Visual Studio Code (VS Code) वापरून पायशी कनेक्ट करू शकता - हे एक विनामूल्य विकसक टेक्स्ट एडिटर आहे ज्याचा वापर तुम्ही Python मध्ये तुमचा डिव्हाइस कोड लिहिण्यासाठी कराल.
##### कार्य - दूरस्थ ऍक्सेससाठी VS Code कॉन्फिगर करा
आवश्यक सॉफ्टवेअर इंस्ट
नवीन प्रोग्रामिंग भाषा किंवा तंत्रज्ञान शिकताना 'Hello World' अॅप तयार करणे ही एक पारंपरिक पद्धत आहे - एक छोटासा अॅप जो `"Hello World"` सारखा मजकूर आउटपुट करतो, ज्यामुळे सर्व साधने योग्य प्रकारे कॉन्फिगर झाल्याची खात्री होते.
Pi साठी Hello World अॅप सुनिश्चित करेल की तुमच्याकडे Python आणि Visual Studio Code योग्य प्रकारे स्थापित आहे.
हा अॅप `nightlight` नावाच्या फोल्डरमध्ये असेल, आणि या असाइनमेंटच्या पुढील भागांमध्ये नाइटलाइट अॅप्लिकेशन तयार करण्यासाठी वेगळ्या कोडसह पुन्हा वापरला जाईल.
### कार्य - Hello World
Hello World अॅप तयार करा.
1. VS Code सुरू करा, थेट Pi वर किंवा Remote SSH एक्स्टेंशन वापरून Pi शी कनेक्ट केलेल्या तुमच्या संगणकावर.
1. *Terminal -> New Terminal* निवडून किंवा `` CTRL+` `` दाबून VS Code टर्मिनल सुरू करा. हे `pi` युजरच्या होम डिरेक्टरीमध्ये उघडेल.
1. तुमच्या कोडसाठी एक डिरेक्टरी तयार करण्यासाठी आणि त्या डिरेक्टरीमध्ये `app.py` नावाचा Python फाइल तयार करण्यासाठी खालील कमांड्स चालवा:
```sh
mkdir nightlight
cd nightlight
touch app.py
```
1. *File -> Open...* निवडून आणि *nightlight* फोल्डर निवडून, नंतर **OK** निवडून हा फोल्डर VS Code मध्ये उघडा.

1. VS Code एक्सप्लोररमधून `app.py` फाइल उघडा आणि खालील कोड जोडा:
```python
print('Hello World!')
```
`print` फंक्शन जे काही त्याला दिले जाते ते कन्सोलवर प्रिंट करते.
1. तुमचा Python अॅप चालवण्यासाठी VS Code टर्मिनलमधून खालील कमांड चालवा:
```sh
python app.py
```
> 💁 जर तुमच्याकडे Python 2 आणि Python 3 (नवीनतम आवृत्ती) दोन्ही स्थापित असतील, तर हे कोड चालवण्यासाठी तुम्हाला स्पष्टपणे `python3` कॉल करावे लागेल. जर Python 2 स्थापित असेल तर `python` कॉल केल्यावर Python 2 वापरले जाईल, Python 3 नाही. डिफॉल्टनुसार, नवीनतम Raspberry Pi OS आवृत्त्यांमध्ये फक्त Python 3 स्थापित असतो.
टर्मिनलमध्ये खालील आउटपुट दिसेल:
```output
pi@raspberrypi:~/nightlight $ python3 app.py
Hello World!
```
> 💁 तुम्ही हा कोड [code/pi](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/pi) फोल्डरमध्ये शोधू शकता.
😀 तुमचा 'Hello World' प्रोग्राम यशस्वी झाला!
---
**अस्वीकरण**:
हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) चा वापर करून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील मूळ दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी, व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर केल्यामुळे उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.