మీ స్వంత రాస్‌ప్బెర్రీ పై వాతావరణ కేంద్రాన్ని నిర్మించండి

Build Your Own Raspberry Pi Weather Station



రాస్‌ప్బెర్రీ పై సెన్స్ టోపీ అనేది యాడ్-ఆన్ బోర్డు, దీనిని రాస్‌ప్బెర్రీ పై సింగిల్-బోర్డ్ కంప్యూటర్‌లతో ఉపయోగించవచ్చు. రాస్‌ప్బెర్రీ పై సెన్స్ టోపీ 8 × 8 LED డిస్‌ప్లే మరియు 5-బటన్ జాయ్‌స్టిక్‌ను కలిగి ఉంది మరియు ఇది క్రింది సెన్సార్‌లతో అమర్చబడి ఉంటుంది:

  1. గైరోస్కోప్
  2. యాక్సిలెరోమీటర్
  3. మాగ్నెటోమీటర్
  4. ఉష్ణోగ్రత
  5. బారోమెట్రిక్ ఒత్తిడి
  6. తేమ

ఈ వ్యాసంలో, పైథాన్ API ఆధారిత వాతావరణ స్టేషన్ వెబ్ అప్లికేషన్‌ను ఎలా సృష్టించాలో నేను మీకు చూపించబోతున్నాను ఉష్ణోగ్రత , బేరోమెట్రిక్ ఒత్తిడి , మరియు తేమ రాస్ప్బెర్రీ పై సెన్స్ టోపీ యొక్క సెన్సార్లు. ఈ కథనాన్ని అనుసరించడానికి, మీకు ఈ క్రిందివి అవసరం:







  1. నెట్‌వర్క్ కనెక్టివిటీతో రాస్‌ప్బెర్రీ పై 3 లేదా రాస్‌ప్బెర్రీ పై 4.
  2. ఒక రాస్ప్బెర్రీ పై సెన్స్ టోపీ మాడ్యూల్.
  3. మైక్రో-యుఎస్‌బి (రాస్‌ప్బెర్రీ పై 3) లేదా యుఎస్‌బి టైప్-సి (రాస్‌ప్బెర్రీ పై 4) పవర్ అడాప్టర్.
  4. రాస్‌ప్బెర్రీ పై OS తో 16 GB లేదా 32 GB మైక్రో SD కార్డ్.
  5. VNC రిమోట్ డెస్క్‌టాప్ యాక్సెస్ లేదా రాస్‌ప్బెర్రీ పైకి SSH యాక్సెస్ కోసం ల్యాప్‌టాప్ లేదా డెస్క్‌టాప్ కంప్యూటర్.

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



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



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

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





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



రాస్ప్బెర్రీ పై సింగిల్ బోర్డ్ కంప్యూటర్లలో 4 రంధ్రాలు ఉన్నాయి, వీటిని యాడ్-ఆన్ బోర్డులు లేదా కేస్ అటాచ్ చేయడానికి ఉపయోగించవచ్చు. యాడ్-ఆన్ బోర్డ్‌ను అటాచ్ చేయడానికి, దిగువ చిత్రాలలో చూపిన విధంగా, రాస్‌ప్బెర్రీ పై వెనుక నుండి స్క్రూలను చొప్పించండి.

అప్పుడు, స్క్రూకి స్పేసర్‌ని కనెక్ట్ చేయండి.

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

దిగువ చిత్రాలలో చూపిన విధంగా, రాస్‌ప్బెర్రీ పై సెన్స్ టోపీని రాస్‌ప్బెర్రీ పై యొక్క 40-పిన్ GPIO మగ శీర్షికకు కనెక్ట్ చేయండి.

గమనిక: రాస్‌ప్బెర్రీ పై GPIO పిన్‌లను వంచకుండా ఉండటానికి రాస్‌ప్బెర్రీ పై 40-పిన్ GPIO హెడర్ నుండి రాస్‌ప్బెర్రీ పై సెన్స్ టోపీని డిస్కనెక్ట్ చేసేటప్పుడు జాగ్రత్తగా ఉండండి.

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

రాస్‌ప్బెర్రీ పైపై శక్తినిస్తోంది

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

రాస్‌ప్బెర్రీ పై సెన్స్ హాట్ పైథాన్ లైబ్రరీని ఇన్‌స్టాల్ చేస్తోంది

రాస్ప్బెర్రీ పైలో రాస్ప్బెర్రీ పై సెన్స్ టోపీని ఉపయోగించడానికి, ది సెన్స్-టోపీ పైథాన్ లైబ్రరీని రాస్‌ప్బెర్రీ పై OS లో తప్పనిసరిగా ఇన్‌స్టాల్ చేయాలి. ది సెన్స్-టోపీ రాస్‌ప్బెర్రీ పై OS యొక్క అధికారిక ప్యాకేజీ రిపోజిటరీలో లైబ్రరీ అందుబాటులో ఉంది.

రాస్‌ప్బెర్రీ పైని ఇన్‌స్టాల్ చేయడానికి సెన్స్-టోపీ రాస్‌ప్బెర్రీ పై OS లోని పైథాన్ లైబ్రరీ, మొదట కింది ఆదేశంతో APT ప్యాకేజీ రిపోజిటరీ కాష్‌ను అప్‌డేట్ చేయండి:

$ sudo apt అప్‌డేట్

తరువాత, కింది ఆదేశాన్ని అమలు చేయండి:

$ sudo apt సెన్స్ -టోపీని ఇన్‌స్టాల్ చేయండి

ఫ్లాస్క్ మైక్రో వెబ్ ఫ్రేమ్‌వర్క్ పైథాన్ లైబ్రరీని ఇన్‌స్టాల్ చేస్తోంది

మేము మా వాతావరణ అనువర్తనాన్ని సృష్టించడానికి ఫ్లాస్క్ పైథాన్ ఫ్రేమ్‌వర్క్‌ను ఉపయోగిస్తాము. కింది ఆదేశంతో మీరు రాస్‌ప్బెర్రీ పై OS యొక్క అధికారిక ప్యాకేజీ రిపోజిటరీ నుండి ఫ్లాస్క్‌ను ఇన్‌స్టాల్ చేయవచ్చు:

$ sudo apt python3 -flask -y ని ఇన్‌స్టాల్ చేయండి

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

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

$ mkdir ~/పని

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

$ cd ~/పని

రాస్ప్బెర్రీ పై సెన్స్ టోపీని పరీక్షిస్తోంది

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

$ nano test.py

లో కింది కోడ్‌ని నమోదు చేయండి test.py ఫైల్. లైన్ 1 దిగుమతులు సెన్స్‌హాట్ నుండి సెన్స్_హాట్ మాడ్యూల్, లైన్ 3 a ని సృష్టిస్తుంది సెన్స్‌హాట్ ఆబ్జెక్ట్ మరియు దీనిలో రిఫరెన్స్‌ను స్టోర్ చేస్తుంది భావం వేరియబుల్ మరియు పంక్తులు 5-6 అన్ని 8 × 8 LED ల రంగును ఎరుపుగా సెట్ చేస్తాయి. మీరు పూర్తి చేసిన తర్వాత, నొక్కండి + X తరువాత మరియు మరియు .

మీరు అమలు చేయవచ్చు test.py కింది ఆదేశంతో పైథాన్ స్క్రిప్ట్:

$ python3 test.py

దిగువ చిత్రంలో చూపిన విధంగా 8 × 8 LED మ్యాట్రిక్స్ ఎరుపు రంగులో మెరుస్తూ ఉండాలి.

సెన్స్ టోపీ యొక్క LED లను ఆపివేయడానికి, అమలు చేయండి స్పష్టమైన () ఏ రంగు విలువ లేని పద్ధతి test.py పైథాన్ స్క్రిప్ట్, దిగువ స్క్రీన్ షాట్‌లో చూపిన విధంగా, మరియు దాన్ని అమలు చేయండి test.py పైథాన్ స్క్రిప్ట్ మళ్లీ.

దిగువ చిత్రంలో చూపిన విధంగా సెన్స్ టోపీ యొక్క LED లు ఇప్పుడు ఆపివేయబడాలి.

సెన్స్ టోపీ సరిగ్గా పనిచేస్తుంటే, తదుపరి విభాగానికి వెళ్లండి.

సెన్స్ టోపీ నుండి వాతావరణ డేటాను పొందడం

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

$ nano read_sensor_data.py

లో కింది కోడ్‌ని నమోదు చేయండి read_sensor_data.py పైథాన్ ఫైల్.

నుండిసెన్స్_హాట్దిగుమతిసెన్స్‌హాట్
నుండి సమయం దిగుమతినిద్ర
భావం=సెన్స్‌హాట్()
భావం.స్పష్టమైన()
అయితే నిజమే:
tempC=భావం.పొందండి_ ఉష్ణోగ్రత()
tempF=tempC *(9/5)+32
ఒత్తిడి=భావం.ఒత్తిడి_ పొందండి()
తేమ=భావం.పొందండి_ తేమ()

ముద్రణ('ఉష్ణోగ్రత: %.2f ° C/ %. 2f ° F n'%(tempC,tempF))
ముద్రణ('ఒత్తిడి: %.2f mb n'%(ఒత్తిడి))
ముద్రణ('తేమ:%.2f %% n n'%(తేమ))
నిద్ర(5)

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

పై కోడ్‌లో, పంక్తులు 1 మరియు 2 అవసరమైన అన్ని లైబ్రరీలను దిగుమతి చేస్తాయి, లైన్ 4 సృష్టిస్తుంది a సెన్స్‌హాట్ ఆబ్జెక్ట్, మరియు లైన్ 5 సెన్స్ టోపీ యొక్క అన్ని LED లను ఆఫ్ చేస్తుంది స్పష్టమైన () పద్ధతి లైన్ 7 లో ఉన్న లూప్ అనేది అనంతమైన లూప్, ఇది కోడ్‌ను 8-16 లైన్లలో ఎప్పటికీ అమలు చేస్తుంది.

లైన్ 8 లో, ది గెట్_ ఉష్ణోగ్రత () సెన్స్ టోపీ యొక్క తేమ సెన్సార్ నుండి ఉష్ణోగ్రత డేటాను (డిగ్రీల సెల్సియస్‌లో) చదవడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది. లైన్ 9 లో, ఉష్ణోగ్రత డేటా డిగ్రీల సెల్సియస్ నుండి డిగ్రీల ఫారెన్‌హీట్‌కు మార్చబడుతుంది. లైన్ 10 లో, ది get_pressure () సెన్స్ టోపీ యొక్క ప్రెజర్ సెన్సార్ నుండి గాలి ఒత్తిడి డేటాను (మిల్లీబార్లలో) చదవడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది. లైన్ 11 లో, ది తేమ_ పొందండి () సెన్స్ టోపీ యొక్క తేమ సెన్సార్ నుండి తేమ డేటాను ( %లో) చదవడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది.

13-15 లైన్‌లు సెన్సార్ డేటాను కన్సోల్‌కు ప్రింట్ చేయడానికి ఉపయోగించబడతాయి మరియు సెన్సార్ డేటాను మళ్లీ చదవడానికి ముందు 5 సెకన్ల పాటు వేచి ఉండటానికి లైన్ 16 ఉపయోగించబడుతుంది.

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

$ python3 read_sensor_data.py

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

ఇప్పుడు మనం సెన్స్ టోపీ నుండి సెన్సార్ డేటాను చదవగలము, నొక్కండి + సి కార్యక్రమం ఆపడానికి.

వాతావరణ స్టేషన్ వెబ్ యాప్‌ను సృష్టిస్తోంది

ఈ విభాగంలో, వాతావరణ API మరియు వాతావరణ అనువర్తనాన్ని సృష్టించడానికి పైథాన్ ఫ్లాస్క్ వెబ్ ఫ్రేమ్‌వర్క్‌ను ఎలా ఉపయోగించాలో మేము మీకు చూపుతాము. వాతావరణ అప్లికేషన్ వాతావరణ డేటా API ని యాక్సెస్ చేస్తుంది మరియు వాతావరణ డేటాను నిజ సమయంలో చూపుతుంది. ఈ విభాగంలో చర్చించిన అన్ని కోడ్ GitHub లో అందుబాటులో ఉంది shovon8 / కోరిందకాయ-పై-సెన్స్-టోపీ-వాతావరణ-యాప్ .

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

$ nano server.py

లో కింది కోడ్‌ని నమోదు చేయండి server.py పైథాన్ ఫైల్.

నుండిఫ్లాస్క్దిగుమతిఫ్లాస్క్
నుండిఫ్లాస్క్దిగుమతిjsonify
నుండిఫ్లాస్క్దిగుమతిరెండర్_టెంప్లేట్
నుండిఫ్లాస్క్దిగుమతిurl_ కోసం
నుండిసెన్స్_హాట్దిగుమతిసెన్స్‌హాట్
యాప్=ఫ్లాస్క్(__ పేరు__)
యాప్.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
భావం=సెన్స్‌హాట్()
భావం.స్పష్టమైన()
తోయాప్.test_request_context():
url_ కోసం('స్టాటిక్',ఫైల్ పేరు='style.css')
url_ కోసం('స్టాటిక్',ఫైల్ పేరు='app.js')
@యాప్.మార్గం('/అగ్ని')
డెఫ్అగ్ని():
tempC=భావం.పొందండి_ ఉష్ణోగ్రత()
tempF=tempC *(9/5)+32
ఒత్తిడి=భావం.ఒత్తిడి_ పొందండి()
ఒత్తిడి పిఎస్ఐ=ఒత్తిడి *0.0145038
ఒత్తిడి పి=ఒత్తిడి *100
తేమ=భావం.పొందండి_ తేమ()

తిరిగిjsonify({
'ఉష్ణోగ్రత':{ 'సి': tempC, 'ఎఫ్': tempF},
'ఒత్తిడి':{ 'mb': ఒత్తిడి, 'hPa': ఒత్తిడి,
'psi': pressurePsi, 'పి': ఒత్తిడి పి},
'తేమ': తేమ
})
@యాప్.మార్గం('/')
డెఫ్ఇంటికి():
తిరిగిరెండర్_టెంప్లేట్('./home.html')

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

పైన ఉన్న కోడ్‌లో, 1-5 పంక్తులు అవసరమైన అన్ని లైబ్రరీలను దిగుమతి చేస్తాయి, లైన్ 7 ఒక ఫ్లాస్క్ యాప్‌ను సృష్టిస్తుంది, లైన్ 11 సెన్స్‌హాట్ వస్తువును సృష్టిస్తుంది మరియు లైన్ 12 సెన్స్ టోపీ యొక్క అన్ని LED లను ఆపివేస్తుంది. లైన్ 8 ఫ్లాస్క్ యాప్ కోసం వెబ్ క్యాషింగ్‌ను నిలిపివేస్తుంది. ఈ యాప్ తేలికైనది కాబట్టి, క్యాషింగ్ అవసరం లేదు. మీరు యాప్‌ని సవరించాలనుకుంటే, వెబ్ క్యాషింగ్ డిసేబుల్ చేయడం వలన టెస్టింగ్ చాలా సులభం అవుతుంది.

18-31 లైన్లు సెన్స్ హ్యాట్ నుండి సెన్సార్ డేటాను చదివి, HTTP GET అభ్యర్థనపై JSON ఫార్మాట్‌లో API డేటాను తిరిగి ఇవ్వండి /అగ్ని వెబ్ సర్వర్ యొక్క ముగింపు పాయింట్. 37-39 లైన్లు వాతావరణ వెబ్ యాప్ హోమ్‌పేజీని తిరిగి ఇస్తాయి / వెబ్ సర్వర్ యొక్క ముగింపు పాయింట్. నుండి హోమ్‌పేజీ రెండర్ చేయబడింది హోమ్. html ఫైల్, లో ఉండాలి టెంప్లేట్లు/ ప్రాజెక్ట్ డైరెక్టరీ యొక్క డైరెక్టరీ.

14-16 లైన్లు యాక్సెస్ చేయడానికి ఉపయోగించబడతాయి style.css మరియు app.js స్టాటిక్ ఫైల్స్. ఈ ఫైల్స్ లో ఉండాలి స్థిర/ ప్రాజెక్ట్ డైరెక్టరీ యొక్క డైరెక్టరీ. ది style.css స్టైల్ చేయడానికి ఫైల్ ఉపయోగించబడుతుంది హోమ్. html హోమ్‌పేజీ, మరియు app.js నుండి API డేటాను అభ్యర్థించడానికి ఫైల్ ఉపయోగించబడుతుంది /అగ్ని ఎండ్ పాయింట్ మరియు వాతావరణ డేటాను నవీకరించండి హోమ్. html ప్రతి 5 సెకన్లకు పేజీ.

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

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

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

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

లో కింది కోడ్‌ని నమోదు చేయండి హోమ్. html ఫైల్.


< html >
< తల >
< మెటా పేరు='వ్యూపోర్ట్' విషయము='వెడల్పు = పరికరం-వెడల్పు, ప్రారంభ-స్థాయి = 1.0'>
< శీర్షిక >రాస్ప్బెర్రీ పై వాతావరణ కేంద్రం</ శీర్షిక >
< లింక్ రెల్='స్టైల్‌షీట్' రకం='టెక్స్ట్/css'
href='{{url_for (' స్టాటిక్ ', ఫైల్ పేరు =' style.css ')}}'/>
</ తల >
< శరీరం >
< div id='విషయము'>
< h1 >రాస్ప్బెర్రీ పై వాతావరణ కేంద్రం</ h1 >

< div తరగతి='డేటా-కంటెంట్'>
< h2 >ఉష్ణోగ్రత</ h2 >
< div తరగతి='డేటా-రో'>
< div తరగతి='డేటా-సెల్' id='tempC'>
...
</ div >
< div తరగతి='డేటా-సెల్' id='tempF'>
...
</ div >
</ div >
</ div >

< div తరగతి='డేటా-కంటెంట్'>
< h2 >ఒత్తిడి</ h2 >
< div తరగతి='డేటా-రో'>
< div తరగతి='డేటా-సెల్' id='pressureMb'>
...
</ div >
< div తరగతి='డేటా-సెల్' id='ప్రెజర్‌పిఎస్‌ఐ'>
...
</ div >
</ div >
< div తరగతి='డేటా-రో'>
< div తరగతి='డేటా-సెల్' id='ప్రెజర్ హెచ్‌పిఎ'>
...
</ div >
< div తరగతి='డేటా-సెల్' id='ప్రెజర్ పి'>
...
</ div >
</ div >
</ div >

< div తరగతి='డేటా-కంటెంట్'>
< h2 >తేమ</ h2 >
< div తరగతి='డేటా-రో'>
< div తరగతి='డేటా-సెల్' id='తేమ'>
...
</ div >
</ div >
</ div >
</ div >

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

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

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

$ nano స్టాటిక్/style.css

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

@దిగుమతి url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
* {
పాడింగ్: 0;
మార్జిన్: 0;
ఫాంట్ కుటుంబం: 'రోబో', సాన్స్-సెరిఫ్;
}
శరీరం{
నేపథ్య: # 737373;
}
h1{
ప్రదర్శన: బ్లాక్;
రంగు: #79DC7B;
టెక్స్ట్-అలైన్: కేంద్రం;
ఫాంట్-బరువు: 400;
నేపథ్య: # 000;
పాడింగ్: 0.5 ఎమ్ 0;
}
h2{
ప్రదర్శన: బ్లాక్;
నేపథ్య: # 000;
రంగు: #fff;
టెక్స్ట్-అలైన్: కేంద్రం;
ఫాంట్-బరువు: 400;
ఫాంట్ పరిమాణం: 1 ఎమ్;
}
. డేటా-కంటెంట్ {
మార్జిన్: 10px;
సరిహద్దు: 2px ఘన నలుపు;
సరిహద్దు-వ్యాసార్థం: 5px;
నేపథ్య రంగు: #79DC7B;
}
. డేటా-వరుస {
ప్రదర్శన:ఫ్లెక్స్;
ఫ్లెక్స్-డైరెక్షన్:వరుస;
}
. డేటా-సెల్ {
వెడల్పు: 100%;
ఎత్తు: 80px;
ప్రదర్శన:ఫ్లెక్స్;
సమలేఖనం-అంశాలు: కేంద్రం;
సమర్థించు-కంటెంట్: కేంద్రం;
ఫాంట్-బరువు: బోల్డ్;
ఫాంట్ పరిమాణం: 1.5 ఎమ్;
రంగు: # 006902;
}
. డేటా-సెల్:హోవర్ {
నేపథ్య: # FFE891;
రంగు: # AA8600;
కర్సర్: పాయింటర్;
}

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

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

$ nano స్టాటిక్/app.js

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

కిటికీ.addEventListener('లోడ్',ప్రధాన);
ఫంక్షన్ప్రధాన() {
ఫంక్షన్getAPIData() {
ఎక్కడhttp= కొత్తXMLHttpRequest();

httponreadystatechange = ఫంక్షన్() {
ఉంటే(.సిద్ధంగా ఉన్న రాష్ట్రం === 4 && .స్థితి === 200) {
అప్‌డేట్(JSON.అన్వయించు(.ప్రతిస్పందన వచనం));
}
}

httpతెరవండి('పొందండి', '/అగ్ని', నిజం);
httpపంపండి();
}


ఫంక్షన్అప్‌డేట్(apiData) {
ఎక్కడtempC=పత్రంgetElementById('tempC');
ఎక్కడtempF=పత్రంgetElementById('tempF');
ఎక్కడఒత్తిడి MB=పత్రంgetElementById('pressureMb');
ఎక్కడఒత్తిడి పిఎస్ఐ=పత్రంgetElementById('ప్రెజర్‌పిఎస్‌ఐ');
ఎక్కడఒత్తిడి Hpa=పత్రంgetElementById('ప్రెజర్ హెచ్‌పిఎ');
ఎక్కడఒత్తిడి పి=పత్రంgetElementById('ప్రెజర్ పి');
ఎక్కడతేమ=పత్రంgetElementById('తేమ');

tempC.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఉష్ణోగ్రత.సి).పరిష్కరించబడింది(2) + '° C';
tempF.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఉష్ణోగ్రత.ఎఫ్).పరిష్కరించబడింది(2) + '° F';

ఒత్తిడి MB.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఒత్తిడి.mb).పరిష్కరించబడింది(2) + 'mb';
ఒత్తిడి పిఎస్ఐ.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఒత్తిడి.psi).పరిష్కరించబడింది(2) + 'psi';
ఒత్తిడి Hpa.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఒత్తిడి.hPa).పరిష్కరించబడింది(2) + 'hPa';
ఒత్తిడి పి.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.ఒత్తిడి.పి).పరిష్కరించబడింది(2) + 'పి';

తేమ.అంతర్గత HTML =పార్స్ ఫ్లోట్(apiData.తేమ).పరిష్కరించబడింది(2) + '%';
}


ఫంక్షన్యాప్() {
కిటికీ.మధ్యంతర(ఫంక్షన్() {
getAPIData();
}, 5000);
}

యాప్();
}

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

ఇక్కడ, లైన్ 1 నడుస్తుంది ప్రధాన () వెబ్ పేజీ లోడింగ్ పూర్తయినప్పుడు ఫంక్షన్. లో ప్రధాన () ఫంక్షన్, ది getAPIData () ఫంక్షన్ AJAX ఉపయోగించి వాతావరణ API డేటాను పొందుతుంది మరియు కాల్ చేస్తుంది నవీకరణ () ఫంక్షన్ (లైన్ 10 లో) డేటా విజయవంతంగా పొందబడిన తర్వాత. ది నవీకరణ () API డేటాను ఉపయోగించి ఫంక్షన్ వెబ్ పేజీ మూలకాన్ని నవీకరిస్తుంది.

లైన్ 20 లో, ది document.getElementById () ఐడితో వెబ్ పేజీ మూలకం యొక్క సూచనను పొందడానికి పద్ధతి ఉపయోగించబడుతుంది tempC . ఐడి ఉన్న వెబ్ పేజీ మూలకం యొక్క కంటెంట్‌ను భర్తీ చేయడానికి లైన్ 28 ఉపయోగించబడుతుంది tempC API నుండి ఉష్ణోగ్రతతో (సెల్సియస్‌లో). అదే విధంగా, అన్ని వెబ్ మూలకాలలోని విషయాలు (పంక్తులు 21–26) వాటి సంబంధిత API డేటాతో భర్తీ చేయబడతాయి.

లో యాప్ () ఫంక్షన్, ది getAPIData () వాతావరణ యాప్‌లో వాతావరణ డేటాను తాజాగా ఉంచడానికి ప్రతి 5 సెకన్లకు (5000 మిల్లీ సెకన్లు) అంటారు. చివరగా, లైన్ 46 లో, ది యాప్ () ఫంక్షన్ అమలు చేయబడింది.

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

$ FLASK_APP = server.py ఫ్లాస్క్ రన్ -హోస్ట్ = 0.0.0.0

వాతావరణ అనువర్తనం పోర్ట్ 5000 లో అమలు చేయాలి (డిఫాల్ట్‌గా).

వాతావరణ API పని చేస్తుందో లేదో పరీక్షించడానికి, కింది ఆదేశాన్ని అమలు చేయండి:

$ కర్ల్ -లు http: // స్థానిక హోస్ట్: 5000/api | json_pp

మీరు గమనిస్తే, వాతావరణ API డేటా కన్సోల్‌కు ముద్రించబడుతుంది. అందువలన, API పని చేస్తోంది.

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

కొన్ని సెకన్ల తర్వాత, వాతావరణ అనువర్తనం API నుండి వాతావరణ డేటాను పొందడం పూర్తి చేసి దానిని ప్రదర్శించాలి.

ఏ సమయంలోనైనా, మీరు నొక్కవచ్చు + సి వెబ్ సర్వర్ ఆపడానికి.

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

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

ముందుగా, a ని సృష్టించండి వాతావరణ స్టేషన్. సేవ మీ ప్రాజెక్ట్ డైరెక్టరీలో కింది విధంగా ఫైల్ చేయండి:

$ nano weather-station.service

లో కింది కోడ్ లైన్‌లను నమోదు చేయండి వాతావరణ స్టేషన్. సేవ ఫైల్.

[యూనిట్]
వివరణ = రాస్ప్బెర్రీ పై సెన్స్ టోపీని ఉపయోగించి రాస్ప్బెర్రీ పై వాతావరణ స్టేషన్ వెబ్ యాప్
తరువాత = network.target

[సేవ]
వర్కింగ్ డైరెక్టరీ =/హోమ్/పై/వర్క్
పర్యావరణం = FLASK_APP = server.py
పర్యావరణం = FLASK_ENV = ఉత్పత్తి
ExecStart =/usr/bin/flask run --host = 0.0.0.0
StandardOutput = వారసత్వంగా
StandardError = వారసత్వంగా
పునartప్రారంభించు = ఎల్లప్పుడూ
వినియోగదారు = పై

[ఇన్‌స్టాల్]
వాంటెడ్‌బై = మల్టీ-యూజర్. టార్గెట్

అప్పుడు, నొక్కండి + X తరువాత మరియు మరియు సేవ్ చేయడానికి వాతావరణ స్టేషన్. సేవ ఫైల్.

కాపీ చేయండి వాతావరణ స్టేషన్. సేవ కు ఫైల్ చేయండి /etc/systemd/system/ కింది ఆదేశంతో డైరెక్టరీ:

$ sudo cp -v weather -station.service/etc/systemd/system/

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

$ sudo systemctl డీమన్-రీలోడ్

ది వాతావరణ స్టేషన్ సిస్టమ్‌డి సేవ దిగువ స్క్రీన్‌షాట్‌లో చూపిన విధంగా ప్రస్తుతానికి క్రియారహితంగా ఉండాలి.

$ sudo systemctl స్థితి weather-station.service

ప్రారంభించండి వాతావరణ స్టేషన్ కింది ఆదేశంతో సేవ:

$ sudo systemctl వాతావరణ-స్టేషన్.సేవ ప్రారంభించండి

మీరు గమనిస్తే, ది వాతావరణ స్టేషన్ సేవ ఇప్పుడు నడుస్తోంది.

$ sudo systemctl స్థితి weather-station.service

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

$ sudo systemctl weather-station.service ని ప్రారంభించండి

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

$ sudo రీబూట్

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

$ sudo systemctl స్థితి weather-station.service

ఇతర పరికరాల నుండి వాతావరణ యాప్‌ని యాక్సెస్ చేస్తోంది

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

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

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

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

ముగింపు

ఈ వ్యాసంలో, రాస్‌ప్బెర్రీ పై సెన్స్ టోపీని రాస్‌ప్బెర్రీ పై వాతావరణ కేంద్రాన్ని ఎలా నిర్మించాలో మేము మీకు చూపించాము. మేము ఉపయోగించాము సెన్స్-టోపీ రాస్‌ప్బెర్రీ పై సెన్స్ టోపీ నుండి వాతావరణ డేటాను సేకరించేందుకు పైథాన్ లైబ్రరీ. అప్పుడు, మేము వాతావరణ API మరియు వెబ్ అప్లికేషన్‌ను రూపొందించడానికి ఫ్లాస్క్ పైథాన్ మైక్రో వెబ్ ఫ్రేమ్‌వర్క్‌ను ఉపయోగించాము. వెబ్ యాప్ తాజా వాతావరణ డేటాతో తాజాగా ఉండటానికి వెబ్ యాప్ ప్రతి 5 సెకన్లకు వాతావరణ API నుండి వాతావరణ డేటాను పొందుతుంది.