- భాగాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- రాస్ప్బెర్రీ పై MQTT క్లౌడ్ లైబ్రరీలను వ్యవస్థాపించడం
- MQTT తో రాస్ప్బెర్రీ పై GPIO ని నియంత్రించడానికి కోడింగ్ వివరణ
మునుపటి ట్యుటోరియల్లో మేము MQTT ప్రోటోకాల్ గురించి చర్చించాము మరియు స్థానికంగా GPIO ని నియంత్రించడానికి మా రాస్ప్బెర్రీ పై స్థానిక MQTT సర్వర్ను ఇన్స్టాల్ చేసాము. స్థానిక MQTT సర్వర్ యొక్క లోపం ఏమిటంటే, మేము ప్రపంచంలో ఎక్కడి నుండైనా GPIO లను నియంత్రించలేము, ఇది స్థానికంగా సేవలను మాత్రమే అందిస్తుంది. ఈ MQTT సర్వర్ కొన్ని క్లౌడ్లో హోస్ట్ చేయబడితే, రాస్ప్బెర్రీ పైకి అనుసంధానించబడిన ఏదైనా ఉపకరణాలను ప్రపంచవ్యాప్తంగా నియంత్రించవచ్చు.
ఇక్కడ, ఈ ట్యుటోరియల్లో, రాస్ప్బెర్రీ పై GPIO కి అనుసంధానించబడిన AC ఉపకరణాన్ని నియంత్రించడానికి మేము అడాఫ్రూట్ IO ని MQTT బ్రోకర్గా ఉపయోగిస్తాము. ఇతర IoT నియంత్రిత హోమ్ ఆటోమేషన్ ట్యుటోరియల్లను కూడా తనిఖీ చేయండి:
- ESP8266 మరియు Android అనువర్తనాన్ని ఉపయోగించి IOT ఆధారిత వాయిస్ కంట్రోల్డ్ హోమ్ ఆటోమేషన్
- Arduino ఉపయోగించి స్మార్ట్ ఫోన్ కంట్రోల్డ్ హోమ్ ఆటోమేషన్
- PIC మైక్రోకంట్రోలర్ మరియు అడాఫ్రూట్ IO ఉపయోగించి IoT ఆధారిత వెబ్ నియంత్రిత హోమ్ ఆటోమేషన్
- రాస్ప్బెర్రీ పై ఉపయోగించి IoT ఆధారిత వెబ్ కంట్రోల్డ్ హోమ్ ఆటోమేషన్
- DIY Arduino Wi-Fi షీల్డ్ ఉపయోగించి గూగుల్ అసిస్టెంట్ బేస్డ్ వాయిస్ కంట్రోల్డ్ హోమ్ ఆటోమేషన్
భాగాలు అవసరం
- రాస్ప్బెర్న్ స్ట్రెచ్ తో రాస్ప్బెర్రీ పై ఇన్స్టాల్ చేయబడింది.
- రిలే మాడ్యూల్
- బల్బ్
- జంపర్ వైర్లు
ఇక్కడ, ల్యాప్టాప్లో రాస్ప్బెర్రీ పైని యాక్సెస్ చేయడానికి మేము SSH ని ఉపయోగిస్తాము. మీరు ల్యాప్టాప్లో VNC లేదా రిమోట్ డెస్క్టాప్ కనెక్షన్ను ఉపయోగించవచ్చు లేదా మీ రాస్ప్బెర్రీ పైని మానిటర్తో కనెక్ట్ చేయవచ్చు. మానిటర్ లేకుండా ఇక్కడ రాస్ప్బెర్రీ పైని తల లేకుండా ఏర్పాటు చేయడం గురించి మరింత తెలుసుకోండి.
సర్క్యూట్ రేఖాచిత్రం
MQTT క్లౌడ్ మరియు రాస్ప్బెర్రీ పైతో ఈ IoT నియంత్రిత గృహోపకరణాల కోసం సర్క్యూట్ రేఖాచిత్రం చాలా సులభం, కోరిందకాయ పై యొక్క GPIO పిన్ 35 లో రిలే మాడ్యూల్తో బల్బును కనెక్ట్ చేయండి.
రాస్ప్బెర్రీ పై MQTT క్లౌడ్ లైబ్రరీలను వ్యవస్థాపించడం
ఇక్కడ అడాఫ్రూట్ IO ప్లాట్ఫారమ్ను రాస్ప్బెర్రీ పైతో MQTT బ్రోకర్గా ఉపయోగిస్తారు. మేము మా మునుపటి ట్యుటోరియల్లో అడాఫ్రూట్ IO ప్లాట్ఫారమ్ను చాలాసార్లు ఉపయోగించినందున అదేవిధంగా మనం రాస్ప్బెర్రీ పైలో ఉపయోగించవచ్చు.
అడాఫ్రూట్ IO ప్లాట్ఫామ్లో ఒక ఖాతాను తయారు చేసి, ఫీడ్ చేయండి, మీకు ఫీడ్ ఎలా తయారు చేయాలో మరియు అడాఫ్రూట్ డాష్బోర్డ్ను అనుకూలీకరించడం తెలియకపోతే లింక్ను అనుసరించండి.
డాష్బోర్డ్ చేసిన తర్వాత, MQTT తో ప్రారంభించడానికి రాస్ప్బెర్రీ పైలో కొన్ని లైబ్రరీలను ఇన్స్టాల్ చేయండి.
1. మొదట, కింది ఆదేశాలను జారీ చేయడం ద్వారా మీ పై మరియు పైథాన్ను నవీకరించండి
apt-గెట్ నవీకరణ sudo సుడో వర్ణనాత్మక-పొందుటకు నవీకరణ సుడో pip3 --upgrade setuptools ఇన్స్టాల్
2. ఇప్పుడు, దిగువ ఆదేశాలను ఉపయోగించి Rpi.gpio మరియు Adafruit blink లైబ్రరీలను వ్యవస్థాపించండి
sudo pip3 install RPI.GPIO sudo pip3 install adafruit-blinka
3. దిగువ ఆదేశాన్ని ఉపయోగించి Adafruit IO లైబ్రరీని వ్యవస్థాపించండి
sudo pip3 install adafruit-io
4. దిగువ ఆదేశాన్ని ఉపయోగించి గితుబ్ నుండి అడాఫ్రూట్ ఉదాహరణలను క్లోన్ చేయండి
git clone https://github.com/adafruit/Adafruit_IO_Python.git
5. అప్పుడు, కింది ఆదేశాన్ని టెర్మినల్లోకి ఎంటర్ చేసి ఉదాహరణల ఫోల్డర్కు నావిగేట్ చేయండి:
cd Adafruit_IO_Python / ఉదాహరణలు / ప్రాథమికాలు
మీరు ఏ డైరెక్టరీలో ఉన్నారో మీకు తెలియకపోతే, మీరు pwd ను అమలు చేయడం ద్వారా దీన్ని తనిఖీ చేయవచ్చు.
6. ఈ ఫోల్డర్లోని అన్ని ఉదాహరణల కోసం, మీరు ADAFRUIT_IO_KEY మరియు ADAFRUIT_IO_USERNAME ని సెట్ చేయాలి, వీటిని Adafruit డాష్బోర్డ్ నుండి కనుగొనవచ్చు. క్రింద చూపిన విధంగా
అడాఫ్రూట్ IO డాష్బోర్డ్లోని బటన్ను టోగుల్ చేయండి మరియు మీరు మీ పై టెర్మినల్లో ఈ క్రింది వాటిని చూడాలి.
7. ఇప్పుడు, నానో ఎడిటర్ ఉపయోగించి subscribe.py ఫైల్ను తెరవండి. దీన్ని తెరవడానికి క్రింది ఆదేశాన్ని టైప్ చేయండి
sudo nano subscribe.py
డాష్బోర్డ్ నుండి ఏదైనా GPIO ని నియంత్రించడానికి మేము ఈ ప్రోగ్రామ్ను సవరించాలి.
MQTT తో రాస్ప్బెర్రీ పై GPIO ని నియంత్రించడానికి కోడింగ్ వివరణ
మొదట, GPIO పిన్స్ మరియు అడాఫ్రూట్ MQTT క్లయింట్ను ఉపయోగించడానికి అవసరమైన అన్ని లైబ్రరీలను దిగుమతి చేయండి.
Adafruit_IO దిగుమతి MQTTC క్లయింట్ నుండి GPIO దిగుమతి సిస్లుగా RPi.GPIO ని దిగుమతి చేయండి
ఇప్పుడు, GPIO మోడ్ను సెట్ చేసి, LED పిన్ నంబర్ను నిర్వచించి అవుట్పుట్గా సెట్ చేయండి.
GPIO.setmode (GPIO.BOARD) GPIO.setwarnings (తప్పుడు) ledPin = 12 GPIO.setup (ledPin, GPIO.OUT)
తరువాత, డాష్బోర్డ్ను సృష్టించేటప్పుడు మేము కనుగొన్న AIO కీ మరియు వినియోగదారు పేరును సెట్ చేయాలి.
ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY' ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'
కాంతిని ఆన్ మరియు ఆఫ్ చేయడానికి మీరు ఇచ్చిన ఫీడ్ పేరును నమోదు చేయండి. ఇక్కడ, ఇది “కాంతి”.
FEED_ID = 'కాంతి'
ఇప్పుడు, ఒక సంఘటన జరిగినప్పుడు పిలువబడే ఫంక్షన్ను నిర్వచించండి. కాబట్టి, మేము client.subscribe (FEED_ID) ఉపయోగించి ఫీడ్ను చందా చేస్తాము.
డెఫ్ కనెక్ట్ (క్లయింట్): client.subscribe (FEED_ID) ప్రింట్ ('ఫీడ్ డేటా కోసం వేచి ఉంది…')
ఫీడ్ను చందా చేసిన తరువాత, మేము క్రొత్త విలువను తనిఖీ చేసి పేలోడ్ వేరియబుల్లో నిల్వ చేయాలి. ఈ సందేశ ఫంక్షన్ కోసం పిలుస్తారు. కాబట్టి, పేలోడ్ వేరియబుల్లో “1” ఉన్నప్పుడల్లా, లెడ్ పిన్ను హైగా చేయండి మరియు “0” కోసం దీన్ని తక్కువ చేయండి.
డెఫ్ సందేశం (క్లయింట్, feed_id, పేలోడ్): : ముద్రణ (. ఫార్మాట్ (feed_id, పేలోడ్) '{1} ఫీడ్ {0} కొత్త విలువ అందుకున్న') ఉంటే పేలోడ్ == 1: GPIO.output (ledPin, GPIO.HIGH) వేరే: GPIO.output (ledPin, GPIO.LOW)
ఇప్పుడు, అడాఫ్రూట్ IO ప్లాట్ఫారమ్తో కనెక్ట్ అవ్వడానికి MQTT క్లయింట్ను సృష్టించండి మరియు సందేశాలను పంపించండి.
క్లయింట్ = MQTTC క్లయింట్ (ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) client.on_connect = కనెక్ట్ చేయబడిన క్లయింట్. on_disconnect = డిస్కనెక్ట్ చేయబడింది
అలాగే, కోడ్లో సరైన ఇండెంటేషన్ గురించి జాగ్రత్త వహించండి, అది లోపం చూపిస్తుంది. ట్యుటోరియల్ చివరిలో పూర్తి పైథాన్ కోడ్ ఇవ్వబడుతుంది.
చివరగా, ctrl + x ఉపయోగించి ప్రోగ్రామ్ను సేవ్ చేసి ఎంటర్ నొక్కండి. ఇప్పుడు, సందేశాలను చందా చేయడానికి మేము స్క్రిప్ట్ను అమలు చేయాలి. కాబట్టి టెర్మినల్ టైప్ పైథాన్ subscribe.py మరియు ఎంటర్ నొక్కండి.
python subscribe.py
స్నాప్షాట్ క్రింద చూపిన విధంగా మీరు ఫీడ్ డేటా కోసం వేచి ఉన్నారు అనే సందేశాన్ని చూస్తారు.
ఇప్పుడు, రిలే మాడ్యూల్ రాస్ప్బెర్రీ పై యొక్క GPIO పిన్తో అనుసంధానించబడిందని నిర్ధారించుకోండి, ఆపై అడాఫ్రూట్ IO డాష్బోర్డ్కు వెళ్లి లైట్ ఫీడ్ను మార్చండి. బల్బ్ "1" అందుకుంది మరియు క్రింద చూపిన విధంగా "0" అందుకుంది ఉన్నప్పుడు నిలిపివేసినప్పుడు ఆన్ చెయ్యాలి.
ఈ విధంగా మేము రాస్ప్బెర్రీ పై మరియు MQTT క్లౌడ్ ఉపయోగించి ప్రపంచంలో ఎక్కడి నుండైనా ఏదైనా ఉపకరణాన్ని నియంత్రించవచ్చు