రాస్‌ప్బెర్రీ పై హోమ్ ఆటోమేషన్‌ను సెటప్ చేయండి

Set Up Raspberry Pi Home Automation



గృహ ఆటోమేషన్ కోసం అత్యంత ముఖ్యమైన విషయాలలో ఒకటి తక్కువ-వోల్టేజ్ DC ఉపయోగించి అధిక-వోల్టేజ్ AC ని నియంత్రించడం. రాస్‌ప్బెర్రీ పై నుండి అధిక వోల్టేజ్ AC ని నియంత్రించడానికి, మీకు 5V రిలే స్విచ్ అవసరం. మీరు Raspberry Pi యొక్క GPIO పిన్‌లను ఉపయోగించి రిలే స్విచ్‌ను నియంత్రించవచ్చు. రిలే స్విచ్ రాస్‌ప్బెర్రీ పై ద్వారా AC గృహోపకరణాలను నియంత్రించవచ్చు.

మీ మొబైల్ పరికరం నుండి లైట్ బల్బును ఆన్ మరియు ఆఫ్ చేయడానికి రాస్‌ప్బెర్రీ పై మరియు 5V రిలే స్విచ్‌ను ఎలా ఉపయోగించాలో ఈ ఆర్టికల్ మీకు చూపుతుంది. వ్యాసంలో మీరు మీ నెట్‌వర్క్‌లో ఏ పరికరం నుండి అయినా యాక్సెస్ చేయగల మరియు మీ ఇంటిలోని ఏసీ గృహోపకరణాలను వైర్‌లెస్‌గా నియంత్రించే వెబ్ యాప్ ఉంటుంది. కాబట్టి, మా సాధారణ రాస్‌ప్బెర్రీ పై హోమ్ ఆటోమేషన్ ప్రయోగంతో ప్రారంభిద్దాం.







మీకు అవసరమైన విషయాలు

మీరు మీ రాస్‌ప్బెర్రీ పై హెడ్‌లెస్ (SSH లేదా VNC ద్వారా) ఉపయోగించాలనుకుంటే, మీకు ఈ క్రింది విషయాలు అవసరం:



1) రాస్ప్బెర్రీ పై 3 లేదా రాస్ప్బెర్రీ పై 4.
2) 5V రిలే స్విచ్.
3) విద్యుత్ తీగలు.
4) 3 స్త్రీ నుండి స్త్రీకి కనెక్ట్ అయ్యే వైర్లు.
5) AC లైట్ బల్బ్.
6) AC లైట్ బల్బ్ హోల్డర్.
7) AC ప్లగ్.
8) వైర్‌కట్టర్ మరియు స్ట్రిప్పర్ సాధనం.
9) CR-V 3 స్క్రూడ్రైవర్.
10) మైక్రో-యుఎస్‌బి (రాస్‌ప్బెర్రీ పై 3) లేదా యుఎస్‌బి టైప్-సి (రాస్‌ప్బెర్రీ పై 4) పవర్ అడాప్టర్.
11) రాస్‌ప్‌బెర్రీ పై OS తో 16 GB లేదా 32 GB మైక్రో SD కార్డ్ ఫ్లాష్ చేయబడింది.
12) రాస్‌ప్బెర్రీ పైలో నెట్‌వర్క్ కనెక్టివిటీ.
13) VNC రిమోట్ డెస్క్‌టాప్ యాక్సెస్ లేదా Raspberry Pi కి SSH యాక్సెస్ కోసం ల్యాప్‌టాప్ లేదా డెస్క్‌టాప్ కంప్యూటర్.



మీరు SSH లేదా VNC ద్వారా రిమోట్‌గా రాస్‌ప్బెర్రీ పైని యాక్సెస్ చేయకూడదనుకుంటే, మీకు ఈ క్రిందివి కూడా అవసరం:





14) మానిటర్.
15) HDMI లేదా మైక్రో-HDMI కేబుల్.
16) ఒక కీబోర్డ్.
17) ఎలుక.

రాస్‌ప్‌బెర్రీ పై OS చిత్రాన్ని మైక్రో SD కార్డుకు ఫ్లాషింగ్ చేయడంలో మీకు సహాయం అవసరమైతే, రాస్‌ప్బెర్రీ పై ఇమేజర్‌ను ఎలా ఇన్‌స్టాల్ చేయాలి మరియు ఉపయోగించాలి అనే కథనాన్ని చూడండి.



మీరు రాస్‌ప్బెర్రీ పై అనుభవశూన్యుడు అయితే మరియు రాస్‌ప్బెర్రీ పైలో రాస్‌ప్బెర్రీ పై OS ని ఇన్‌స్టాల్ చేయడంలో మీకు సహాయం కావాలంటే, కథనాన్ని చూడండి రాస్ప్బెర్రీ పై 4 లో రాస్ప్బెర్రీ పై OS ని ఎలా ఇన్స్టాల్ చేయాలి.

అలాగే, రాస్‌ప్‌బెర్రీ పై యొక్క హెడ్‌లెస్ సెటప్‌తో మీకు సహాయం అవసరమైతే, రాస్‌ప్బెర్రీ పై 4 ను బాహ్య మానిటర్ లేకుండా ఎలా ఇన్‌స్టాల్ చేయాలి మరియు కాన్ఫిగర్ చేయాలి అనే కథనాన్ని చూడండి.

అవసరమైన అన్ని సాధనాల చిత్రాలు క్రింద ఇవ్వబడ్డాయి.

రాస్‌ప్బెర్రీ పైపై పవర్

తరువాత, పవర్ కేబుల్‌ను రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేయండి మరియు రాస్‌ప్బెర్రీ పైపై పవర్ చేయండి.

రాస్‌ప్బెర్రీ పై ఆన్ చేసిన తర్వాత, మీరు VNC లేదా SSH ద్వారా రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేయవచ్చు. లేదా, మీరు నేరుగా యాక్సెస్ చేయడానికి కీబోర్డ్, మౌస్ మరియు మానిటర్‌ను రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేయవచ్చు.

5V రిలే పిన్‌అవుట్‌లు

రిలే అనేది ప్రాథమికంగా స్విచ్. కానీ, సాంప్రదాయ స్విచ్ వలె కాకుండా, రిలేను తక్కువ మొత్తంలో DC వోల్టేజ్ ద్వారా నియంత్రించవచ్చు.

5V రిలే ఉపయోగించడానికి చాలా సులభం. ఇది రెండు వైపులా ఉంది: ఒక వైపు తక్కువ-వోల్టేజ్ DC (రాస్‌ప్బెర్రీ పై నుండి) ద్వారా రిలేను నియంత్రించడానికి ఉపయోగిస్తారు, మరియు మరొక వైపు రిలే స్థితిని బట్టి అధిక వోల్టేజ్ AC (అంటే లైట్‌బల్బ్) నియంత్రించడానికి ఉపయోగిస్తారు .


ఒక వైపు, రిలేలో రెండు LED లు (ఒక ఎరుపు మరియు ఒక ఆకుపచ్చ) మరియు మూడు పిన్‌లు ఉన్నాయి ( IN, GND, మరియు VCC ). రాస్‌ప్బెర్రీ పై నుండి రిలేను నియంత్రించడానికి ఈ మూడు పిన్‌లను ఉపయోగిస్తారు.

మరొక వైపు మొదటి రెండు పిన్‌లు AC గృహ ఉపకరణాన్ని నియంత్రించడానికి ఉపయోగించబడతాయి.

5V రిలేను రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేస్తోంది

5V రిలేను రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేయడానికి, మీకు మూడు స్త్రీ-నుండి-మహిళలకు కనెక్ట్ అయ్యే వైర్లు అవసరం.

కనెక్ట్ చేసే వైర్ల యొక్క ఒక వైపు ప్లగ్ చేయండి IN (పసుపు తీగ), GND (బ్లాక్ వైర్), మరియు VCC (రెడ్ వైర్) 5V రిలేలో పిన్స్, క్రింద చూపిన విధంగా.


దిగువ చిత్రంలో చూపిన విధంగా, వైర్ల యొక్క మరొక వైపు రాస్‌ప్బెర్రీ పై యొక్క GPIO హెడర్ పిన్‌లలోకి వెళుతుంది.

రెడ్ వైర్ లోపలికి వెళ్లాలి పిన్ 2 (VCC) రాస్ప్బెర్రీ పై.
బ్లాక్ వైర్ లోపలికి వెళ్లాలి పిన్ 6 (GND) రాస్ప్బెర్రీ పై.
పసుపు తీగ లోపలికి వెళ్లాలి పిన్ 7 (GPIO 4) రాస్ప్బెర్రీ పై.


5V రిలే రాస్‌ప్‌బెర్రీ పైకి కనెక్ట్ అయిన తర్వాత, దిగువ చిత్రంలో చూపిన విధంగా ఇది కనిపించాలి.

లాగిన్ వినియోగదారుకు GPIO యాక్సెస్‌ని అనుమతించడం

GPIO పిన్‌లకు ప్రాప్యతను అనుమతించడానికి, రాస్‌ప్బెర్రీ పై OS యొక్క డిఫాల్ట్ లాగిన్ వినియోగదారు పై కు జోడించబడాలి gpio సమూహం.

మీరు జోడించవచ్చు పై వినియోగదారు gpio కింది ఆదేశంతో సమూహం:

$సుడోయూజర్‌మోడ్-ఎజిgpio $(నేను ఎవరు)


మార్పులు అమలులోకి రావడానికి, కింది ఆదేశంతో రాస్‌ప్బెర్రీ పైని రీబూట్ చేయండి:

$సుడోరీబూట్ చేయండి

ప్రాజెక్ట్ డైరెక్టరీని సృష్టించడం

ప్రాజెక్ట్ ఫైల్స్ అన్నీ ఆర్గనైజ్ చేయడం కూడా మంచిది.

ప్రాజెక్ట్ ఫైల్‌లను ఆర్గనైజ్ చేయడానికి, ప్రాజెక్ట్ డైరెక్టరీని సృష్టించండి ~/www మరియు కింది ఆదేశంతో అవసరమైన ఉప డైరెక్టరీలు:

$mkdir -పివి/www/{టెంప్లేట్లు, స్టాటిక్}


ప్రాజెక్ట్ డైరెక్టరీ సృష్టించబడిన తర్వాత, ఈ క్రింది విధంగా ప్రాజెక్ట్ డైరెక్టరీకి నావిగేట్ చేయండి:

$CD/www

రాస్‌ప్బెర్రీ పై నుండి 5V రిలేను మారుస్తోంది

ఇప్పుడు మీరు 5V రిలేను రాస్‌ప్బెర్రీ పైకి కనెక్ట్ చేసారు, మీరు పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌ని ఉపయోగించి రాస్‌ప్బెర్రీ పై నుండి రిలేని మారుస్తారు.

గమనిక: మారడం అనేది ఎలక్ట్రానిక్స్‌లో ఉపయోగించే పదం. మారడం అంటే ఒక నిర్దిష్ట ఎలక్ట్రానిక్ పరికరాన్ని నియంత్రించడం (అంటే పవర్ ఆన్/ఆఫ్).

పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌ని ఉపయోగించి రిలేను మార్చడానికి ప్రయోగాలు చేయడానికి, ప్రాజెక్ట్ డైరెక్టరీలో కొత్త పైథాన్ స్క్రిప్ట్ test.py ని ఈ క్రింది విధంగా సృష్టించండి:

$నానోtest.py


Test.py పైథాన్ స్క్రిప్ట్‌లో కింది కోడ్‌ల పంక్తులను టైప్ చేయండి.

నుండిgpiozeroదిగుమతిLED
నుండి సమయం దిగుమతినిద్ర

అయితే నిజమే:
రిలే=LED(4)
ముద్రణ('రిలే: ఆన్')
నిద్ర(5)

రిలే.దగ్గరగా()
ముద్రణ('రిలే: ఆఫ్')
నిద్ర(5)

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి test.py పైథాన్ స్క్రిప్ట్.


ఇక్కడ, లైన్ 1 దిగుమతులు LED నుండి gpiozero లైబ్రరీ, మరియు లైన్ 2 దిగుమతి చేస్తుంది నిద్ర నుండి ఫంక్షన్ సమయం గ్రంధాలయం.


6-14 లైన్లు అనంతమైన లూప్‌లో ఉన్నాయి.


లైన్ 6 లో LED ని ప్రారంభిస్తుంది GPIO 4 యొక్క రాస్‌ప్బెర్రీ పై, దీనికి అనుసంధానించబడి ఉంది IN రిలే యొక్క పిన్.


లైన్ 8 రిలేను ఉపయోగించి రిలే ఆన్ చేస్తుంది పై() పద్ధతి

లైన్ 9 కన్సోల్‌లో ఒక సందేశాన్ని ఉపయోగించి ప్రింట్ చేస్తుంది ముద్రణ() ఫంక్షన్

10 వ లైన్ తదుపరి కోడ్‌ని అమలు చేయడానికి ఐదు సెకన్ల పాటు ఆలస్యం చేస్తుంది నిద్ర () ఫంక్షన్


లైన్ 12 రిలేను ఉపయోగించి ఆఫ్ చేస్తుంది దగ్గరగా() పద్ధతి

అదే విధంగా, లైన్ 9 కన్సోల్‌లో ఒక సందేశాన్ని ఉపయోగించి ప్రింట్ చేస్తుంది ముద్రణ() ఫంక్షన్ మరియు లైన్ 10 తదుపరి కోడ్‌ని అమలు చేయడానికి 5 సెకన్ల పాటు ఆలస్యం చేస్తుంది నిద్ర () ఫంక్షన్


తరువాత, అమలు చేయండి test.py పైథాన్ స్క్రిప్ట్ క్రింది విధంగా ఉంది:

$python3 test.py


ది test.py పైథాన్ స్క్రిప్ట్ 5V రిలేను మార్చడం ప్రారంభించాలి. మీరు ప్రతి ఐదు సెకన్లకు ఒక క్లిక్ సౌండ్ వినాలి. రిలే స్థితిని మార్చినప్పుడు (ఆన్ నుండి ఆఫ్ లేదా ఆఫ్ నుండి ఆఫ్), అది ఒక క్లిక్ శబ్దం చేస్తుంది. దీని అర్థం రిలే సరిగ్గా పనిచేస్తుందని.


రిలే ఆఫ్ స్టేట్‌లో ఉన్నప్పుడు (సాధారణ ఆపరేషన్-AC లోడ్ డిస్‌కనెక్ట్ చేయబడింది), కేవలం నికర దిగువ చిత్రంలో మీరు చూడగలిగినట్లుగా LED వెలిగించాలి.


రిలే ఆన్-స్టేట్‌లో ఉన్నప్పుడు (AC లోడ్ కనెక్ట్ చేయబడింది), రెండూ ఆకుపచ్చ LED మరియు ది నికర దిగువ చిత్రంలో మీరు చూడగలిగినట్లుగా LED వెలిగించాలి.


పరీక్ష పూర్తయిన తర్వాత, నొక్కండి + సి రద్దు చేయడానికి test.py స్క్రిప్ట్.

AC లైట్‌బల్బ్‌ను 5V రిలేకి కనెక్ట్ చేస్తోంది

5V రిలే ఇప్పుడు సరిగ్గా పనిచేయాలి. ఇప్పుడు, మీరు మీ AC గృహ ఉపకరణాన్ని (ఒక లైట్ బల్బ్, ఈ సందర్భంలో) 5V రిలేకి కనెక్ట్ చేస్తారు.

ముందుగా, వైర్‌కట్టర్‌తో లైట్ బల్బ్‌కు కనెక్ట్ చేయబడిన బ్లాక్ ఎలక్ట్రికల్ వైర్‌ను కత్తిరించండి.


లైట్‌బల్బ్‌కి కనెక్ట్ చేయబడిన బ్లాక్ ఎలక్ట్రికల్ వైర్ వైర్‌కట్టర్‌తో కత్తిరించిన తర్వాత, దిగువ చిత్రంలో చూపిన విధంగా అది కనిపించాలి.


తరువాత, దిగువ చిత్రంలో చూపిన విధంగా, wire అంగుళాల విద్యుత్ తీగను బహిర్గతం చేయడానికి బాహ్య పొరను తీసివేయండి.


దిగువ చిత్రంలో చూపిన విధంగా, బహిర్గతమైన వైర్లను మడవండి.


CV-3 స్క్రూడ్రైవర్‌తో రిలే యొక్క గుర్తించబడిన స్క్రూలను విప్పు.


మీరు తీసివేసిన మరియు ముడుచుకున్న బహిర్గత వైర్లను రెండు స్క్రూ టెర్మినల్స్‌లో చొప్పించండి మరియు CV-3 స్క్రూడ్రైవర్‌తో స్క్రూలను బిగించండి.

AC లోడ్‌ను కనెక్ట్ చేసిన తర్వాత రిలే స్విచింగ్‌ని పరీక్షిస్తోంది

AC లోడ్ 5V రిలేకి కనెక్ట్ అయిన తర్వాత, లైట్ బల్బ్ ప్లగ్‌ను వాల్ సాకెట్‌కి కనెక్ట్ చేయండి.


అమలు చేయండి test.py ప్రాజెక్ట్ డైరెక్టరీ నుండి పైథాన్ స్క్రిప్ట్ క్రింది విధంగా ఉంది:

$python3 test.py


ది test.py పైథాన్ స్క్రిప్ట్ 5V రిలేను మార్చడం ప్రారంభించాలి, ఇది అధిక-వోల్టేజ్ AC లైట్ బల్బ్‌ను ఐదు సెకన్ల వ్యవధిలో మారుస్తుంది. AC లైట్ బల్బ్ ఐదు సెకన్ల పాటు ఉండాలి, తర్వాత ఐదు సెకన్ల పాటు అలాగే ఉండాలి.

దిగువ చిత్రంలో లైట్ బల్బ్ ఆఫ్ చేయబడింది.


దిగువ చిత్రంలో లైట్ బల్బ్ ఆన్‌లో ఉంది.


మీరు చూడగలిగినట్లుగా, మేము రిలేను మార్చవచ్చు మరియు పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్ ఉపయోగించి హై వోల్టేజ్ AC లైట్‌బల్బ్‌ను నియంత్రించవచ్చు. కాబట్టి, నొక్కండి + సి రద్దు చేయడానికి test.py స్క్రిప్ట్.

ఇప్పుడు మనం తదుపరి విభాగానికి వెళ్దాం.

హోమ్ ఆటోమేషన్ వెబ్ యాప్ రాయడం

ఈ విభాగంలో, పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్ ఉపయోగించి API- ఆధారిత వెబ్ యాప్ ఎలా రాయాలో నేను మీకు చూపుతాను. మీరు వెబ్ బ్రౌజర్ నుండి రిలే మరియు రిలేకి కనెక్ట్ చేయబడిన AC గృహ ఉపకరణం (లు) లేదా ఎలక్ట్రికల్ పరికరం (లు) నియంత్రించడానికి వెబ్ యాప్‌ని ఉపయోగించవచ్చు.

గమనిక: ఈ విభాగంలో చూపిన అన్ని కోడ్‌లు నా GitHub రిపోజిటరీలో అందుబాటులో ఉన్నాయి shovon8 / కోరిందకాయ-పై-హోమ్-ఆటోమేషన్ . మీకు కావాలంటే, మీరు నా GitHub రిపోజిటరీని క్లోన్ చేయవచ్చు మరియు అన్ని కోడ్‌లను దాటవేయవచ్చు.

ప్రాజెక్ట్ డైరెక్టరీలో server.py పైథాన్ స్క్రిప్ట్‌ను ఈ క్రింది విధంగా సృష్టించండి:

$నానోserver.py


కోడ్‌లలో కింది పంక్తులను టైప్ చేయండి server.py పైథాన్ స్క్రిప్ట్.

నుండిఫ్లాస్క్దిగుమతిఫ్లాస్క్,jsonify,url_ కోసం,రెండర్_టెంప్లేట్
నుండిgpiozeroదిగుమతిLED
నుండిuuidదిగుమతిuuid4
గదులు= {}
గదులు['గది 1'] = [{
'id': uuid4(),
'పేరు':'లైట్ 1',
'చిహ్నం':'ఫా ఫా-లైట్ బల్బ్',
'స్థితి':తప్పుడు,
'రిలేపిన్':4,
'రిలే ఇన్‌స్టాన్స్':తప్పుడు
}, {
'id': uuid4(),
'పేరు':'ఫ్యాన్ 1',
'చిహ్నం':'ఫా ఫ్యాన్',
'స్థితి':తప్పుడు,
'రిలేపిన్':6,
'రిలే ఇన్‌స్టాన్స్':తప్పుడు
}]
గదులు['బాత్రూమ్ 1'] = [{
'id': uuid4(),
'పేరు':'లైట్ 1',
'చిహ్నం':'ఫా ఫా-లైట్ బల్బ్',
'స్థితి':తప్పుడు,
'రిలేపిన్':5,
'రిలే ఇన్‌స్టాన్స్':తప్పుడు
}]
యాప్=ఫ్లాస్క్(__ పేరు__)
యాప్.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@యాప్.మార్గం('/')
డెఫ్ఇంటికి():
తిరిగిరెండర్_టెంప్లేట్('./index.html',గదులు=గదులు)
డెఫ్ఉపకరణం_స్టాటస్‌ను టోగుల్ చేయండి(id):
కోసంగదిలోగదులు:
కోసంఉపకరణంలోగదులు[గది]:
ఉంటే p(ఉపకరణం['id']) == id:
ఉంటేఉపకరణం['రిలే ఇన్‌స్టాన్స్']:
ఉపకరణం['రిలే ఇన్‌స్టాన్స్'].దగ్గరగా()
ఉపకరణం['రిలే ఇన్‌స్టాన్స్'] = తప్పుడు
లేకపోతే:
ఉపకరణం['రిలే ఇన్‌స్టాన్స్'] =LED(ఉపకరణం['రిలేపిన్'])
ఉపకరణం['రిలే ఇన్‌స్టాన్స్'].పై()
ఉపకరణం['స్థితి'] = కాదుఉపకరణం['స్థితి']
తిరిగి నిజమే
తిరిగి తప్పుడు
@యాప్.మార్గం('/ఉపకరణం/టోగుల్/')
డెఫ్appliance_toggle(id):
తిరిగిjsonify({'స్థితి': టోగుల్_అప్లయన్స్_స్టాటస్(id)})

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి server.py పైథాన్ స్క్రిప్ట్.


ఇక్కడ, 1-3 పంక్తులు సంబంధిత లైబ్రరీల నుండి అవసరమైన అన్ని భాగాలను దిగుమతి చేస్తాయి.


పంక్తి 5 ఖాళీని సృష్టిస్తుంది గదులు నిఘంటువు. ఈ డిక్షనరీలో, మేము వెబ్ యాప్ నుండి నియంత్రించదలిచిన అన్ని AC ఉపకరణాల వివరాలను స్టోర్ చేస్తాము.


ది గదులు వివరాలు 7-29 లైన్లలో నిల్వ చేయబడతాయి.


గదులలో ఒకదాని యొక్క డేటా నిర్మాణాన్ని చర్చిద్దాం.

ఇక్కడ, గది పేరు ఉంటుంది గది 1. కాబట్టి, గది 1 అనేది కీలకం గదులు నిఘంటువు.


ది గది 1 కీ శ్రేణిని విలువగా కలిగి ఉంది. ఆరే ఎలిమెంట్‌ల సంఖ్య మీరు వెబ్ యాప్ నుండి కూడా నియంత్రించాలనుకుంటున్న గదిలో మీ వద్ద ఉన్న ఎసి గృహోపకరణాల సంఖ్యకు సమానం. ఈ సందర్భంలో, మేము నియంత్రించాలనుకునే రెండు AC గృహోపకరణాలు ఉన్నాయి: కాంతి 1 మరియు ఫ్యాన్ 1 .


ప్రతి గృహ ఉపకరణం నిర్వచనం ఒక కలిగి ఉంది id . ది id యాదృచ్ఛికంగా సృష్టించబడిన UUID. API ని ఉపయోగించి మనం ఏ గదిని నియంత్రించాలనుకుంటున్నామో గుర్తించడానికి ఇది ఉపయోగించబడుతుంది.

గృహోపకరణంలో ఈ కిందివన్నీ కూడా ఉన్నాయి:

  • పేరు (కాంతి 1 ఈ విషయంలో)
  • చిహ్నం (ఫాంట్ అద్భుతం ఐకాన్ క్లాస్, మేము ఐకాన్‌ల కోసం ఫాంట్ అద్భుతంగా ఉపయోగిస్తాము)
  • స్థితి (నిజం ఉంటే పై మరియు తప్పుడు ఉంటే ఆఫ్ )
  • రిలేపిన్ (AC గృహ ఉపకరణానికి కనెక్ట్ చేయబడిన రిలేను నియంత్రించడానికి ఉపయోగించే GPIO పిన్ నంబర్)
  • రిలేఇన్స్టాన్స్ (ప్రారంభించబడింది LED యొక్క వస్తువు gpiozero సంబంధిత GPIO పిన్ను నియంత్రించడానికి లైబ్రరీ బాధ్యత - రిలేపిన్ )


లైన్ 31 ఫ్లాస్క్ పైథాన్ వెబ్ సర్వర్‌ను ప్రారంభిస్తుంది.

32 వ లైన్ ఫ్లాస్క్ వెబ్ సర్వర్‌ని కాన్ఫిగర్ చేస్తుంది.


పంక్తులు 34-36 index.html నుండి ఫైల్ టెంప్లేట్లు/ మీరు హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ను సందర్శించినప్పుడు డైరెక్టరీ.

ఫ్లాస్క్ ఉపయోగాలు జింజా 2 రెండర్ చేయడానికి టెంప్లేటింగ్ లాంగ్వేజ్ index.html ఫైల్. కాబట్టి, నేను ఉత్తీర్ణత సాధించాను గదులు కు నిఘంటువు index.html ఫైల్. జింజా 2 ఉపయోగించి హోమ్‌పేజీని అందిస్తుంది గదులు సమాచారం.


ఫంక్షన్ toggle_appliance_status () 39-52 పంక్తులలో గృహోపకరణం ఆఫ్‌లో ఉంటే దాన్ని ఆన్ చేయడానికి మరియు గృహోపకరణాన్ని ఉపయోగించినట్లయితే దాన్ని ఆపివేయడానికి ఉపయోగిస్తారు id .

ఇది తిరిగి వస్తుంది నిజమే టోగుల్ ఆపరేషన్ విజయవంతమైతే. లోపం ఉంటే, అది తిరిగి వస్తుంది తప్పుడు .


గృహ ఉపకరణాన్ని ఉపయోగించి టోగుల్ చేయడానికి 55-57 లైన్‌లు ఉపయోగించబడతాయి /ఉపకరణం/టోగుల్/ వెబ్ సర్వర్ యొక్క API ఎండ్ పాయింట్. ఇక్కడ, id గృహ ఉపకరణం యొక్క ID.


సృష్టించు index.html లో ఫైల్ టెంప్లేట్లు/ మీ ప్రాజెక్ట్ డైరెక్టరీ క్రింది విధంగా ఉంది:

$నానోటెంప్లేట్లు/index.html

కోడ్‌లలో కింది పంక్తులను టైప్ చేయండి index.html స్క్రిప్ట్.


< html లాంగ్='పై'>
< తల >
< మెటా చార్సెట్='UTF-8'>
< మెటా పేరు='వ్యూపోర్ట్' విషయము='వెడల్పు = పరికరం-వెడల్పు, ప్రారంభ-స్థాయి = 1.0'>
< లింక్ రెల్='స్టైల్‌షీట్' href='{{url_for (' స్టాటిక్ ', ఫైల్ పేరు =' fontawesome/css/all.min.css ')}}'>
< లింక్ రెల్='స్టైల్‌షీట్' href='{{url_for (' స్టాటిక్ ', ఫైల్ పేరు =' style.css ')}}'>
< శీర్షిక >రాస్ప్బెర్రీ పైతో ఇంటి ఆటోమేషన్</ శీర్షిక >
</ తల >
< శరీరం >
< div id='విషయము'>
< h1 >రాస్ప్బెర్రీ పై హోమ్ ఆటోమేషన్</ h1 >

{ % గదులలో గది కోసం %}
< div తరగతి='గది'>
< h2 >{{ గది }}</ h2 >
< div తరగతి='ఉపకరణాలు'>
{ % గదులలోని ఉపకరణం [గది] %}
< div తరగతి='ఉపకరణం' id='{{ఉపకరణం [' id ']}}'> ='క్రియాశీల'>
< i తరగతి='{{ఉపకరణం [' చిహ్నం ']}}'></ i >
< వ్యవధి >{{ఉపకరణం ['name']}}</ వ్యవధి >
</ div >
{ % endfor %}
</ div >
</ div >
{ % endfor %}

</ div >

< స్క్రిప్ట్ src='{{url_for (' స్టాటిక్ ', ఫైల్ పేరు =' app.js ')}}' రకం='టెక్స్ట్/జావాస్క్రిప్ట్'></ స్క్రిప్ట్ >
</ శరీరం >
</ html >

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి index.html ఫైల్.


A ని సృష్టించండి style.css లో ఫైల్ స్థిర/ మీ ప్రాజెక్ట్ డైరెక్టరీ క్రింది విధంగా ఉంది:

$నానోస్టాటిక్/style.css


కోడ్‌లలో కింది పంక్తులను టైప్ చేయండి style.css ఫైల్.

@దిగుమతి url('https://fonts.googleapis.com/css2?family=BenchNine: [email protected]; 400; 700 & display = swap');

* {
మార్జిన్: 0;
పాడింగ్: 0;
ఫాంట్ కుటుంబం: 'బెంచ్ నైన్', సాన్స్-సెరిఫ్;
}

#విషయము >h1{
నేపథ్య:సరళ-ప్రవణత(కుకుడి, rgb(112, 24, 163), rgb(86, 127, 240));
రంగు: #fff;
టెక్స్ట్-అలైన్: కేంద్రం;
పాడింగ్: .5 ఎమ్ 0;
}

div.గది {
మార్జిన్: .5 ఎమ్;
సరిహద్దు: 2px ఘన rgb(112, 24, 163);
సరిహద్దు-వ్యాసార్థం: 5px;
}

div.గదిh2{
/* నేపథ్యం: rgb (9, 76, 121); */
నేపథ్య:సరళ-ప్రవణత(కుకుడి, rgb(112, 24, 163), rgb(86, 127, 240));
పాడింగ్: 0 0 0 .5 ఎమ్;
రంగు: #fff;
}

div.అపకరణాలు {
మార్జిన్: .5 ఎమ్ .5 ఎమ్ 0 0;
ప్రదర్శన:ఫ్లెక్స్;
ఫ్లెక్స్-ర్యాప్:చుట్టు;
}

div.అప్లయెన్స్ {
సరిహద్దు: 2px ఘన rgb(112, 24, 163);
సరిహద్దు-వ్యాసార్థం: 5px;
వెడల్పు: 110 పిఎక్స్;
ఎత్తు: 120px;
టెక్స్ట్-అలైన్: కేంద్రం;
మార్జిన్: 0 0 .5 ఎమ్ .5 ఎమ్;
ప్రదర్శన:ఫ్లెక్స్;
ఫ్లెక్స్-డైరెక్షన్:కాలమ్;
}

div.అప్లయెన్స్i.ఫా {
ఫాంట్ పరిమాణం: 4 ఎమ్;
ఫ్లెక్స్-పెరుగుతాయి: 1;
పాడింగ్-టాప్: 0.3em;
రంగు: rgb(204, యాభై, యాభై);
}

div. ఉపకరణం[డేటా-యాక్టివ్='క్రియాశీల']i.ఫా {
రంగు: rgb(32, 177, 51);
}

div.అప్లయెన్స్వ్యవధి{
ప్రదర్శన: బ్లాక్;
ఫాంట్-బరువు: బోల్డ్;
నేపథ్య: rgb(112, 24, 163);
రంగు: #fff;
}

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి style.css ఫైల్.


ఒక సృష్టించు app.js లో ఫైల్ స్థిర/ మీ ప్రాజెక్ట్ డైరెక్టరీ క్రింది విధంగా ఉంది:

$నానోస్టాటిక్/app.js


కోడ్‌లలో కింది పంక్తులను టైప్ చేయండి app.js ఫైల్.

కిటికీ.addEventListener('లోడ్',ప్రధాన);

ఫంక్షన్ప్రధాన() {
ఫంక్షన్టోగుల్ ఉపకరణాల రాష్ట్రం(మరియు) {
ఎక్కడid=మరియు.మార్గం[1].id;

ఎక్కడhttp= కొత్తXMLHttpRequest();

httponreadystatechange = ఫంక్షన్() {
ఉంటే(.సిద్ధంగా ఉన్న రాష్ట్రం === 4 && .స్థితి === 200) {
ఉంటే(JSON.అన్వయించు(.ప్రతిస్పందన వచనం).స్థితి === నిజం) {
ఉంటే(మరియు.మార్గం[1].లక్షణం ఉంది('డేటా యాక్టివ్')) {
మరియు.మార్గం[1].తొలగించు లక్షణం('డేటా యాక్టివ్')
} లేకపోతే {
మరియు.మార్గం[1].సెట్అట్రిబ్యూట్('డేటా యాక్టివ్', 'క్రియాశీల')
}
}
}
}

httpతెరవండి('పొందండి','/ఉపకరణం/టోగుల్/${id}', నిజం);
httpపంపండి();
}


ఎక్కడఉపకరణాలు=పత్రంgetElementsByClassName('ఉపకరణం');
కోసం(i=0;i<ఉపకరణాలు.పొడవు;i++) {
ఉపకరణాలు[i].addEventListener('క్లిక్',టోగుల్ ఉపకరణాల రాష్ట్రం);
}
}

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి app.js ఫైల్.


ఇక్కడ, లైన్ 1 నడుస్తుంది ప్రధాన () వెబ్ పేజీ లోడింగ్ పూర్తయినప్పుడు ఫంక్షన్.

లో index.html ఫైల్, ప్రతి గృహ ఉపకరణం ఒక దానిలో జతచేయబడుతుంది ఉపకరణం తరగతి. 26-29 లైన్లు వెబ్ పేజీ నుండి ప్రతి గృహోపకరణాన్ని ఎంచుకోవడానికి మరియు అటాచ్ చేయడానికి ఉపయోగించబడతాయి క్లిక్ చేయండి ఉపకరణానికి ఈవెంట్. ఎవరైనా వెబ్ పేజీ నుండి గృహోపకరణంపై క్లిక్ చేసినప్పుడు, ది టోగుల్ ఉపకరణాల రాష్ట్రం () ఫంక్షన్ అమలు అవుతుంది.


4-23 లైన్లలో, ది టోగుల్ ఉపకరణాల రాష్ట్రం () ఫంక్షన్ అభ్యర్థించడానికి ఉపయోగించబడుతుంది /ఉపకరణం/టోగుల్/ క్లిక్ చేసిన గృహోపకరణాల స్థితిని మార్చడానికి వెబ్ సర్వర్ యొక్క ముగింపు పాయింట్. AJAX ద్వారా నేపథ్యంలో అభ్యర్థన చేయబడుతుంది. ప్రతిస్పందన అందుకున్న తర్వాత, వెబ్ పేజీ తదనుగుణంగా నవీకరించబడుతుంది.


కు నావిగేట్ చేయండి స్థిర/ మీ ప్రాజెక్ట్ డైరెక్టరీలోని డైరెక్టరీ క్రింది విధంగా ఉంది:

$CDస్టాటిక్/


కింది ఆదేశంతో ఫాంట్ అద్భుతంగా డౌన్‌లోడ్ చేయండి:

$wgethttps://use.fontawesome.com/విడుదలలు/v5.15.1/fontawesome- ఉచిత-5.15.1-web.zip


ఫాంట్ అద్భుతం డౌన్‌లోడ్ అయిన తర్వాత, మీరు కొత్త జిప్ ఫైల్‌ను కనుగొనాలి fontawesome- ఉచిత-5.15.1-web.zip లో స్థిర/ డైరెక్టరీ.

$ls -లెహ్


అన్జిప్ చేయండి fontawesome- ఉచిత-5.15.1-web.zip కింది ఆదేశంతో ఫైల్:

$అన్జిప్fontawesome- ఉచిత-5.15.1-web.zip


ది fontawesome- ఉచిత-5.15.1-web.zip ఫైల్ ఇప్పుడు అన్జిప్ చేయాలి.


కొత్త డైరెక్టరీ fontawesome-free-5.15.1-web/ స్టాటిక్/ డైరెక్టరీలో సృష్టించబడాలి, మీరు దిగువ స్క్రీన్ షాట్‌లో చూడవచ్చు.

$ls -లెహ్

డైరెక్టరీ పేరు మార్చండి fontawesome-free-5.15.1-web/ కు అద్భుతం/ కింది ఆదేశంతో:

$mv -vfontawesome-free-5.15.1-web fontawesome


ఇప్పుడు, మీకు ఇక అవసరం లేదు fontawesome- ఉచిత-5.15.1-web.zip ఫైల్. కాబట్టి, తీసివేయండి fontawesome- ఉచిత-5.15.1-web.zip కింది ఆదేశంతో ఫైల్:

$rm -vfontawesome- ఉచిత-5.15.1-web.zip


ది స్థిర/ డైరెక్టరీ నిర్మాణం క్రింది స్క్రీన్ షాట్‌లో చూపిన విధంగా ఉండాలి.

$ls -లెహ్


ప్రాజెక్ట్ డైరెక్టరీకి తిరిగి నావిగేట్ చేయండి ~/www కింది విధంగా:

$CD..

హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ను పరీక్షిస్తోంది

హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ను పరీక్షించడానికి, మీ ప్రాజెక్ట్ డైరెక్టరీలో కింది ఆదేశాన్ని అమలు చేయండి:

$FLASK_APP= server.py ఫ్లాస్క్ రన్


వెబ్ యాప్ మీ రాస్‌ప్బెర్రీ పై పోర్ట్ 5000 లో అందుబాటులో ఉండాలి.


Chromium వెబ్ బ్రౌజర్ నుండి, సందర్శించండి http: // స్థానిక హోస్ట్: 5000 . హోమ్ ఆటోమేషన్ వెబ్ యాప్ లోడ్ చేయాలి.

దిగువ చిత్రంలో సూచించిన లైట్ బల్బ్ చిహ్నంపై క్లిక్ చేయండి.


AC లైట్ బల్బ్ ఇప్పుడు ఆన్ చేయాలి. ఐకాన్ రంగు కూడా ఆకుపచ్చగా మారాలి, లైట్ బల్బ్ ఆన్‌లో ఉందని సూచిస్తుంది.


కాబట్టి, హోమ్ ఆటోమేషన్ వెబ్ యాప్ పనిచేస్తోంది. నొక్కండి + సి వెబ్ సర్వర్‌ను ముగించడానికి.

హోమ్ ఆటోమేషన్ వెబ్ యాప్ కోసం Systemd సర్వీస్‌ని సృష్టిస్తోంది

ఈ విభాగంలో, హోమ్ ఆటోమేషన్ వెబ్ యాప్ కోసం సిస్టమ్‌డి సర్వీస్ ఫైల్‌ను ఎలా క్రియేట్ చేయాలో నేను మీకు చూపుతాను, తద్వారా అది స్వయంచాలకంగా బూట్‌లో ప్రారంభమవుతుంది.

మొదట, సృష్టించు raspi-home-automation.service మీ ప్రాజెక్ట్ డైరెక్టరీలో కింది విధంగా ఫైల్ చేయండి:

$నానోraspi-home-automation.service

Raspi-home-automation.service ఫైల్‌లో కింది పంక్తులను టైప్ చేయండి.

[యూనిట్]
వివరణ= రాస్‌ప్బెర్రీ పై హోమ్ ఆటోమేషన్ వెబ్ సర్వీస్
తర్వాత= network.target
[సేవ]
వర్కింగ్ డైరెక్టరీ=/ఇంటికి/పై/www
పర్యావరణం=FLASK_APP= server.py
పర్యావరణం=FLASK_ENV= ఉత్పత్తి
ExecStart=/usr/am/ఫ్లాస్క్ రన్-హోస్ట్= 0.0.0.0
స్టాండర్డ్ అవుట్‌పుట్= వారసత్వంగా
ప్రామాణిక లోపం= వారసత్వంగా
పునartప్రారంభించుము= ఎల్లప్పుడూ
వినియోగదారు= పై
[ఇన్‌స్టాల్ చేయండి]
వాంటెడ్ బై= బహుళ-వినియోగదారు. లక్ష్యం

మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి raspi-home-automation.service ఫైల్.


కాపీ చేయండి raspi-home-automation.service కు ఫైల్ చేయండి /etc/systemd/system/ కింది ఆదేశంతో డైరెక్టరీ:

$సుడో cp -vraspi-home-automation.service/మొదలైనవి/వ్యవస్థ/వ్యవస్థ/


మార్పులు అమలులోకి రావడానికి systemd డెమన్‌లను రీలోడ్ చేయండి:

$సుడోsystemctl డీమన్-రీలోడ్


జోడించండి రాస్పి-హోమ్-ఆటోమేషన్ కింది ఆదేశంతో రాస్‌ప్బెర్రీ పై OS యొక్క సిస్టమ్ ప్రారంభానికి సేవ:

$సుడోsystemctlప్రారంభించుraspi-home-automation.service


కింది ఆదేశంతో రాస్‌ప్బెర్రీ పైని రీబూట్ చేయండి:

$సుడోరీబూట్ చేయండి


ఒకసారి రాస్‌ప్బెర్రీ పై బూట్లు, ది రాస్పి-హోమ్-ఆటోమేషన్ సేవ సక్రియంగా/నడుస్తూ ఉండాలి, మీరు దిగువ స్క్రీన్ షాట్‌లో చూడవచ్చు.

$సుడోsystemctl స్థితి raspi-home-automation.service

ఇతర పరికరాల నుండి హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ని యాక్సెస్ చేస్తోంది

మీ హోమ్ నెట్‌వర్క్‌లోని ఇతర పరికరాల నుండి హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ను యాక్సెస్ చేయడానికి, మీరు మీ రాస్‌ప్బెర్రీ పై పరికరం యొక్క IP చిరునామాను తెలుసుకోవాలి.

మీ హోమ్ రౌటర్ యొక్క వెబ్ మేనేజ్‌మెంట్ ఇంటర్‌ఫేస్ నుండి మీరు మీ రాస్‌ప్బెర్రీ పై 4 పరికరం యొక్క IP చిరునామాను కనుగొనవచ్చు. నా విషయంలో, IP చిరునామా 192.168.0.103. ఇది మీకు భిన్నంగా ఉంటుంది. కాబట్టి, ఇప్పటి నుండి నా IP ని మీతో భర్తీ చేయాలని నిర్ధారించుకోండి.


మీకు రాస్‌ప్బెర్రీ పై కన్సోల్ యాక్సెస్ ఉంటే, మీరు IP చిరునామాను కనుగొనడానికి కింది ఆదేశాన్ని అమలు చేయవచ్చు.

$హోస్ట్ పేరు -నేను


మీ రాస్‌ప్బెర్రీ పై పరికరం యొక్క IP చిరునామా మీకు తెలిసిన తర్వాత, మీ హోమ్ నెట్‌వర్క్‌లోని ఏదైనా పరికరం నుండి దాన్ని యాక్సెస్ చేయవచ్చు.

దిగువ స్క్రీన్ షాట్‌లో మీరు చూడగలిగినట్లుగా, నేను నా ఆండ్రాయిడ్ స్మార్ట్‌ఫోన్ నుండి హోమ్ ఆటోమేషన్ వెబ్ యాప్‌ను యాక్సెస్ చేసాను.


లైట్ బల్బ్ ప్లగ్‌ను వాల్ పవర్ అవుట్‌లెట్‌లోకి ప్లగ్ చేయాలని నిర్ధారించుకోండి.


లైట్ బల్బ్ డిఫాల్ట్‌గా స్విచ్ ఆఫ్ చేయాలి.


మీరు హోమ్ ఆటోమేషన్ వెబ్ యాప్ నుండి లైట్ బల్బ్ చిహ్నాన్ని నొక్కితే, లైట్ బల్బ్ ఆన్‌లో ఉన్నట్లు సూచించే లైట్ బల్బ్ చిహ్నం రంగు ఆకుపచ్చగా మారాలి.


దిగువ చిత్రంలో మీరు చూడగలిగినట్లుగా, లైట్ బల్బ్ ఆన్‌లో ఉంది.

ముగింపు

పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్‌ని ఉపయోగించి రాస్‌ప్బెర్రీ పై నుండి హై-వోల్టేజ్ AC ఎలక్ట్రికల్ పరికరాన్ని నియంత్రించడానికి 5V రిలేను ఎలా ఉపయోగించాలో ఈ ఆర్టికల్ మీకు చూపించింది. వెబ్ బ్రౌజర్ నుండి రిలేను నియంత్రించడానికి API ఆధారిత పైథాన్ ఫ్లాస్క్ వెబ్ యాప్ ఎలా రాయాలో కూడా వ్యాసం మీకు చూపించింది. రాస్‌ప్బెర్రీ పై ఉపయోగించి ఇంటి ఆటోమేషన్‌తో ప్రారంభించడానికి ఈ కథనం మీకు సహాయపడాలి.