- IoT ఎనేబుల్డ్ సోలార్ పవర్ మానిటర్ కోసం సరైన భాగాలను ఎంచుకోవడం
- IoT ఆధారిత సౌర శక్తి పర్యవేక్షణ కోసం సర్క్యూట్ రేఖాచిత్రం
- థింగ్స్పీక్ను ఏర్పాటు చేస్తోంది
- ESP32 ఉపయోగించి సౌర విద్యుత్ పర్యవేక్షణ కోసం ఆర్డునో కోడ్
- డేటాను పరీక్షించడం మరియు పర్యవేక్షించడం
పునరుత్పాదక శక్తి యొక్క ప్రాంతంలో, సౌర శక్తి ముందంజలో ఉంది, ఎందుకంటే సూర్యుడి శక్తిని ఉపయోగించడం ద్వారా శక్తిని ఉత్పత్తి చేయడం పునరుత్పాదక శక్తి యొక్క సులభమైన మరియు వాణిజ్యపరంగా ఆచరణీయ మార్గం. సౌర ఫలకాల గురించి మాట్లాడుతూ, ప్యానెళ్ల నుండి వాంఛనీయ విద్యుత్ ఉత్పత్తిని పొందడానికి సోలార్ ప్యానెల్ అవుట్పుట్ యొక్క అవుట్పుట్ శక్తిని పర్యవేక్షించాల్సిన అవసరం ఉంది. అందుకే రియల్ టైమ్ పర్యవేక్షణ వ్యవస్థ అవసరం అవుతుంది. ఒక పెద్ద సౌర విద్యుత్ ప్లాంట్లో, ప్రతి ప్యానెల్ నుండి విద్యుత్ ఉత్పత్తిని పర్యవేక్షించడానికి కూడా దీనిని ఉపయోగించవచ్చు, ఇది దుమ్ము నిర్మాణాన్ని గుర్తించడంలో సహాయపడుతుంది. ఇది ఆపరేషన్ సమయంలో ఏదైనా తప్పు పరిస్థితులను నిరోధిస్తుంది. మా మునుపటి కొన్ని వ్యాసాలలో, సౌరశక్తితో పనిచేసే సెల్ ఫోన్ ఛార్జర్ మరియు సౌర ఇన్వర్టర్ సర్క్యూట్ వంటి కొన్ని సౌర శక్తి సంబంధిత ప్రాజెక్టులను మేము నిర్మించాము. మీరు సౌర విద్యుత్తుపై మరిన్ని ప్రాజెక్టుల కోసం చూస్తున్నారా అని మీరు వాటిని తనిఖీ చేయవచ్చు.
ఈ ప్రాజెక్ట్లో, MPPT (మాగ్జిమమ్ పవర్ పాయింట్ ట్రాకర్) ఆధారిత బ్యాటరీ ఛార్జింగ్ టెక్నిక్ను కలుపుతూ IoT- ఆధారిత సౌర శక్తి పర్యవేక్షణ వ్యవస్థను తయారు చేస్తాము, ఇది ఛార్జింగ్ సమయాన్ని తగ్గించడానికి మరియు సామర్థ్యాన్ని మెరుగుపరచడానికి సహాయపడుతుంది. అలాగే, సర్క్యూట్ యొక్క భద్రతా అంశాన్ని మెరుగుపరచడానికి మేము ప్యానెల్ ఉష్ణోగ్రత, అవుట్పుట్ వోల్టేజ్ మరియు కరెంట్ను కొలుస్తాము. చివరగా, అన్నింటికంటే అగ్రస్థానంలో ఉండటానికి, ప్రపంచవ్యాప్తంగా ఎక్కడి నుండైనా అవుట్పుట్ డేటాను పర్యవేక్షించడానికి మేము థింగ్స్పీక్ క్లౌడ్ సేవలను ఉపయోగించబోతున్నాము. ఈ ప్రాజెక్ట్ మేము ఇంతకుముందు నిర్మించిన MPPT సోలార్ ఛార్జ్ కంట్రోలర్ ప్రాజెక్ట్ యొక్క కొనసాగింపు అని గమనించండి. ఇక్కడ, మేము ESP32 IoT డెవలప్మెంట్ బోర్డ్ను ఉపయోగించి ప్యానెల్ యొక్క అవుట్పుట్ వోల్టేజ్, కరెంట్ మరియు శక్తిని పర్యవేక్షిస్తాము.
IoT ఎనేబుల్డ్ సోలార్ పవర్ మానిటర్ కోసం సరైన భాగాలను ఎంచుకోవడం
ఒక తో సౌర మానిటర్, ఇది మానిటర్ మరియు ఏ సౌర వ్యవస్థలో లోపాలుగా గుర్తించడం చాలా సులభం అవుతుంది. అందువల్ల అటువంటి వ్యవస్థను రూపకల్పన చేసేటప్పుడు భాగం ఎంపిక చాలా ముఖ్యమైన భాగం అవుతుంది. మేము ఉపయోగించిన భాగాల జాబితా క్రింద ఇవ్వబడింది.
- ESP32 dev బోర్డు
- MPPT సర్క్యూట్ (ఏదైనా సౌర సర్క్యూట్ కావచ్చు)
- ఒక షంట్ రెసిస్టర్ (ఉదాహరణకు 1 ఓం 1 వాట్ - ప్రస్తుత 1A వరకు అనుకూలంగా ఉంటుంది)
- లిథియం బ్యాటరీ (7.4v ప్రాధాన్యత).
- సక్రియ వై-ఫై కనెక్షన్
- సోలార్ ప్యానెల్ కోసం ఉష్ణోగ్రత సెన్సార్
- వోల్టేజ్ డివైడర్ సర్క్యూట్ (వివరణ చూడండి)
ఎస్పీ 32 దేవ్ బోర్డు:
IoT- ప్రారంభించబడిన అనువర్తనం కోసం, దాని అనలాగ్ పిన్ల నుండి డేటాను ప్రాసెస్ చేయగల మరియు Wi-Fi లేదా క్లౌడ్కు ఎలాంటి కనెక్షన్ ప్రోటోకాల్ ద్వారా డేటాను పంపగలిగే సరైన రకం అభివృద్ధి బోర్డుని ఎంచుకోవడం చాలా అవసరం. సర్వర్. టన్నుల లక్షణాలతో తక్కువ ఖర్చుతో కూడిన మైక్రోకంట్రోలర్ అయినందున మేము ప్రత్యేకంగా ESP32 ని ఎంచుకున్నాము. అలాగే, ఇది అంతర్నిర్మిత వై-ఫై రేడియోను కలిగి ఉంది, దీని ద్వారా మనం ఇంటర్నెట్కు చాలా సులభంగా కనెక్ట్ చేయవచ్చు.
సౌర సర్క్యూట్:
సోలార్ ఛార్జింగ్ సర్క్యూట్ అనేది సౌర ఫలకం నుండి అధిక వోల్టేజ్ పొందే ఒక సర్క్యూట్ మరియు దానిని ఛార్జింగ్ వోల్టేజ్గా మారుస్తుంది, తద్వారా ఇది బ్యాటరీని సమర్థవంతంగా ఛార్జ్ చేస్తుంది. ఈ ప్రాజెక్ట్ కోసం, మేము మా మునుపటి ప్రాజెక్టులలో ఇప్పటికే తయారు చేసిన LT3562 ఆధారిత MPPT ఛార్జ్ కంట్రోలర్ సర్క్యూట్ బోర్డ్ను ఉపయోగిస్తాము. మీరు ఈ IoT ఎనేబుల్ మానిటరింగ్ను పొందుపరచాలనుకుంటే, మీరు ఎలాంటి సోలార్ సర్క్యూట్ను ఉపయోగించవచ్చు. సర్క్యూట్ మాగ్జిమమ్ పవర్ పాయింట్ ట్రాకింగ్ (ఎంపిపిటి) కలిగి ఉన్నందున మేము ఈ బోర్డుని ఎంచుకున్నాము, ఇది తక్కువ శక్తి గల సోలార్ ప్యానెల్ ప్రాజెక్టులకు ప్రయోజనకరంగా ఉంటుంది. సౌర ఫలకం నుండి చిన్న లిథియం బ్యాటరీని ఛార్జ్ చేయడానికి ఇది సమర్థవంతమైన మార్గం.
షంట్ రెసిస్టర్:
ఏదైనా రెసిస్టర్ ఓం యొక్క నియమాన్ని అనుసరిస్తుంది, అంటే రెసిస్టర్ ద్వారా కొంత మొత్తంలో కరెంట్ ప్రవహిస్తే, కొంత వోల్టేజ్ డ్రాప్ కనిపిస్తుంది. షంట్ రెసిస్టర్లు దీనికి మినహాయింపు కాదు మరియు ఇది ప్రస్తుత ప్రవాహాన్ని కొలవడానికి ప్రత్యేకంగా ఉపయోగించబడుతుంది. అయినప్పటికీ, సౌర ఫలకం ద్వారా నామమాత్రపు ప్రవాహాన్ని బట్టి, మైక్రోకంట్రోలర్ యూనిట్ ద్వారా కొలవగల వోల్టేజ్ యొక్క తగినంత మొత్తాన్ని ఉత్పత్తి చేసే షంట్ రెసిస్టర్ను ఎంచుకోండి. కానీ, అదే సమయంలో, రెసిస్టర్ యొక్క వాటేజ్ కూడా ఒక ముఖ్యమైన విషయం. షంట్ రెసిస్టర్ వాటేజ్ ఎంపిక కూడా ముఖ్యం.
క్రింద ఇచ్చిన సూత్రాన్ని ఉపయోగించి వోల్టేజ్ డ్రాప్ లెక్కించవచ్చు. దీనిని ఓం యొక్క చట్టం-
V = I x R.
V అనేది 'I' సమయంలో ఉత్పత్తి అయ్యే వోల్టేజ్, అంటే రెసిస్టర్ 'R' మొత్తం ద్వారా ప్రస్తుత ప్రవాహం. ఉదాహరణకు, 1-ఓం రెసిస్టర్ 1A వోల్టేజ్ డ్రాప్ను ఉత్పత్తి చేస్తుంది.
రెసిస్టర్ యొక్క వాటేజ్ కోసం, క్రింద ఇచ్చిన సూత్రాన్ని ఉపయోగించవచ్చు-
పి = I 2 ఆర్
ఇక్కడ నేను గరిష్ట ప్రస్తుత ప్రవాహం, మరియు R అనేది నిరోధక విలువ. 1 ఓమ్స్ రెసిస్టర్తో 1A కరెంట్ కోసం, విద్యుత్ వెదజల్లడానికి 1 వాట్ సరిపోతుంది. అయితే, ఇది చిన్న సోలార్ ప్యానెల్ ప్రాజెక్టులకు ఉపయోగపడుతుంది కాని సోలార్ గ్రిడ్ సంబంధిత అనువర్తనాలకు అనువైనది కాదు. అటువంటప్పుడు, నాన్-ఇన్వాసివ్ కరెంట్ కొలత సాంకేతికత వాస్తవానికి ఉపయోగించాల్సిన అవసరం ఉంది. అటువంటప్పుడు, ప్రస్తుత ప్రవాహాన్ని ఖచ్చితంగా కొలవవచ్చు, ఇక్కడ చాలా తక్కువ మొత్తంలో కరెంట్, అలాగే చాలా ఎక్కువ కరెంట్ కొలవవచ్చు.
లిథియం బ్యాటరీ:
లిథియం బ్యాటరీ యొక్క ఎంపిక సౌర ఫలకాలను కలిగి ఉన్న ఏదైనా ప్రాజెక్టులో ముఖ్యమైన భాగం. ఎందుకంటే మైక్రోకంట్రోలర్ యూనిట్ ఎల్లప్పుడూ కొనసాగుతూనే ఉంటుంది మరియు డేటాను నిరంతరం తనిఖీ చేస్తుంది మరియు సమర్పిస్తుంది. స్థిరమైన ఆపరేషన్ కోసం కనీసం వంద మిల్లియంపేర్ కరెంట్ అవసరం.
రుతుపవనాల కారణంగా సూర్యుడు ప్రకాశించనప్పుడు కనీసం 4-5 రోజులు మైక్రోకంట్రోలర్కు శక్తినిచ్చే బ్యాటరీ సామర్థ్యం ఉండాలి. బ్యాటరీ దృక్పథం నుండి లోడ్ కరెంట్ కంటే ఛార్జ్ కరెంట్ ఎక్కువగా ఉండాలి. ఎవరైనా 100mA లోడ్ను బ్యాటరీతో కనెక్ట్ చేసి ఛార్జ్ కరెంట్ను అందిస్తే ఇది చాలా అసాధారణం, ఇది దాని కంటే తక్కువ. సురక్షితమైన వైపు ఉండటానికి, లోడ్ కరెంట్ కంటే కనీసం 5 రెట్లు ఎక్కువ ఛార్జింగ్ కరెంట్ ఉండాలి.
మరోవైపు, మైక్రోకంట్రోలర్కు అవసరమైన సాధారణ వోల్టేజ్ రెగ్యులేటర్ ఇన్పుట్ వోల్టేజ్ కంటే బ్యాటరీ వోల్టేజ్ ఎక్కువగా ఉండాలి. ఉదాహరణకు, 7.4V లిథియం బ్యాటరీని 3.3V మరియు 5.0V లీనియర్ వోల్టేజ్ రెగ్యులేటర్ రెండింటిలోనూ అనుసంధానించవచ్చు (ఎందుకంటే లీనియర్ రెగ్యులేటర్కు LDO మరియు స్విచ్చింగ్ కంటే ఎక్కువ డ్రాప్ అవుట్ వోల్టేజ్ అవసరం.)
మా ప్రాజెక్ట్లో, మేము 7.4V రేటింగ్తో 4000mAH బ్యాటరీని ఉపయోగించాము. మేము ESP32 కోసం తగినంత కరెంట్ మరియు వోల్టేజ్ అవుట్పుట్ను అందించే 5.0V రెగ్యులేటర్ను ఉపయోగించాము.
వోల్టేజ్ డివైడర్:
సౌర ఫలక వోల్టేజ్ కొలతలో వోల్టేజ్ డివైడర్ ఒక ముఖ్యమైన భాగం. మైక్రోకంట్రోలర్ I / O వోల్టేజ్ ఇన్పుట్ ప్రకారం వోల్టేజ్ను విభజించే వోల్టేజ్ డివైడర్ను ఎన్నుకోవాలి.
వోల్టేజ్ డివైడర్ అవుట్పుట్ వోల్టేజ్ మైక్రోకంట్రోలర్ మాగ్జిమ్ I / O వోల్టేజ్ (ESP32 కోసం 3.3V) మించకుండా ఉండే విధంగా పై రెసిస్టర్లను ఎంచుకోండి. ఏదేమైనా, పొటెన్టోమీటర్ను ఉపయోగించమని సలహా ఇస్తారు ఎందుకంటే ఇది ఏదైనా సౌర ఫలకాన్ని ఎక్కువ లేదా తక్కువ వోల్టేజ్ రేటింగ్ను ఎంచుకోవడానికి వశ్యతను అందిస్తుంది మరియు మల్టీమీటర్ ఉపయోగించి వోల్టేజ్ను సులభంగా సెట్ చేయవచ్చు.
మా విషయంలో, వోల్టేజ్ డివైడర్గా పనిచేసే MPPT బోర్డు సర్క్యూట్లో మనకు పొటెన్షియోమీటర్ ఉంది. మేము 6V యొక్క డివిజన్ కారకంతో వోల్టేజ్ డివైడర్ను సెట్ చేసాము. మేము రెండు మల్టీ మీటర్లను అనుసంధానించాము, ఒకటి ఇన్పుట్ మరియు మరొకటి కుండ యొక్క అవుట్పుట్లో, మరియు ఇన్పుట్ వోల్టేజ్ 18 వి అయినప్పుడు సౌర ఫలకం యొక్క నామమాత్రపు అవుట్పుట్ వోల్టేజ్ 18 వి కాబట్టి అవుట్పుట్ 3 వి అవుతుంది.
సౌర ఫలకానికి ఉష్ణోగ్రత సెన్సార్:
సౌర ఫలక విద్యుత్ ఉత్పత్తికి సౌర ఫలకం యొక్క ఉష్ణోగ్రతతో ప్రత్యక్ష సంబంధం ఉంది. ఎందుకు? ఎందుకంటే సౌర ఫలకం యొక్క ఉష్ణోగ్రత సౌర ఫలకం నుండి ఉత్పాదక ప్రవాహాన్ని పెంచడం ప్రారంభించినప్పుడు ఘాటుగా పెరుగుతుంది, వోల్టేజ్ ఉత్పత్తి సరళంగా తగ్గించడం ప్రారంభిస్తుంది.
శక్తి సూత్రం ప్రకారం, వాటేజ్ వోల్టేజ్ టైమ్స్ కరెంట్ (W = V x A) కు సమానం, అవుట్పుట్ వోల్టేజ్ తగ్గడం ప్రస్తుత ప్రవాహం పెరిగిన తరువాత కూడా సౌర ప్యానెల్ అవుట్పుట్ శక్తిని తగ్గిస్తుంది. ఇప్పుడు, మన మనస్సులోకి వచ్చే తదుపరి ప్రశ్న ఏమిటంటే, సౌర ఉష్ణోగ్రతను ఎలా కొలవాలి? సౌర ఫలకాలను ప్రత్యక్ష సూర్యకాంతికి మరియు స్పష్టమైన కారణాల వల్ల బహిర్గతం చేసేటప్పుడు సాధారణంగా వేడి వాతావరణానికి గురికావడం చాలా ఆసక్తికరంగా ఉంటుంది. ఫ్లాట్ ఉపరితల ఉష్ణోగ్రత సెన్సార్ను ఉపయోగించడం ద్వారా సౌర ఫలక ఉష్ణోగ్రతను కొలవడానికి ఉత్తమ మార్గం. సోలార్ ప్యానెల్లో నేరుగా ఉంచిన కె రకం థర్మోకపుల్ను ఉపయోగించాలని కూడా సూచించారు.
మా అప్లికేషన్ కోసం, మేము థర్మిస్టర్-ఆధారిత ఉష్ణోగ్రత సెన్సార్ మాడ్యూల్ను ఉపయోగించాము, ఇది క్రింద చూపబడింది.
IoT ఆధారిత సౌర శక్తి పర్యవేక్షణ కోసం సర్క్యూట్ రేఖాచిత్రం
IoT ప్రారంభించబడిన సౌర శక్తి మానిటర్ కోసం పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది. స్కీమాటిక్ సులభం. రెడ్ డాష్-డాట్ బోర్డు మేము ఈ ప్రాజెక్ట్ కోసం ఉపయోగించిన MPPT బోర్డు.
థింగ్స్పీక్ను ఏర్పాటు చేస్తోంది
థింగ్స్పీక్తో ఒక ఖాతాను సృష్టించండి మరియు “నా ఛానెల్” ఎంపికకు వెళ్లి, ఆపై కొత్త ఛానెల్పై క్లిక్ చేయండి.
ఫీల్డ్ పేర్లతో క్రొత్త ఛానెల్ని సృష్టించండి.
ఇప్పుడు ఫీల్డ్ను సెట్ చేసిన తర్వాత, రైట్ API కీ అందుబాటులో ఉన్న API కీస్ ఫీల్డ్కు వెళ్లండి. ఈ కీని కోడ్తో పాటు ఛానెల్ ఐడిలో అందించాలి.
థింగ్స్పీక్ చిరునామాను ఒకే పేజీలో చూడవచ్చు.
పై దశలతో, మీరు థింగ్స్పీక్ను చాలా సులభంగా సెటప్ చేయవచ్చు. మీరు థింగ్స్పీక్ మరియు దాని సెటప్ ప్రాసెస్ గురించి మరింత తెలుసుకోవాలనుకుంటే, మీరు ఈ అంశంపై మా మునుపటి కథనాలను చూడవచ్చు.
ESP32 ఉపయోగించి సౌర విద్యుత్ పర్యవేక్షణ కోసం ఆర్డునో కోడ్
పూర్తి ESP32 సౌర విద్యుత్ పర్యవేక్షణ కోడ్ ఈ పేజీ దిగువన చూడవచ్చు. క్రింద చూపిన విధంగా మీ SSID, పాస్వర్డ్ మరియు మరికొన్ని స్థిరమైన పారామితులను నిర్వచించడంతో కోడ్ ప్రారంభమవుతుంది.
// అప్లింక్ కోసం వైఫై SSID & PWD ని నిర్వచించండి. # WLAN_SSID "xxxx" ను నిర్వచించండి # WLAN_PASS "xxxxxxxxxx" ని నిర్వచించండి
// 25 డిగ్రీల సి వద్ద నిరోధకత # THERMISTORNOMINAL 10000 // టెంప్ను నిర్వచించండి . నామమాత్ర నిరోధకత కోసం (దాదాపు ఎల్లప్పుడూ 25 సి) # థర్మిస్టర్ యొక్క బీటా గుణకం (సాధారణంగా 3000-4000) నిర్వచించండి # BCOEFFICIENT 3950 ని నిర్వచించండి // 'ఇతర' నిరోధకం యొక్క విలువ # SERIESRESISTOR 10000 ను నిర్వచించండి
థర్మిస్టర్ నామమాత్రపు ఓంలు నామమాత్రపు ఉష్ణోగ్రత వద్ద అందించబడతాయి. థర్మిస్టర్ యొక్క డేటాషీట్ ఆధారంగా ఈ విలువను సెట్ చేయండి. థర్మిస్టర్ యొక్క బీటా గుణకం మరియు సిరీస్ రెసిస్టర్ విలువను ఉంచండి.
// ప్రస్తుత మరియు వోల్టేజ్ కోసం అనలాగ్ను నిర్వచించండి const int curr_an_pin = 35; const int వోల్ట్_అన్_పిన్ = 34; const int ntc_temp_an_pin = 33;
పిన్లు ఇక్కడ నిర్వచించబడ్డాయి.
# define thingSpeakAddress "xxxxxxxxx" # define channelID XXXXX # define writeFeedAPIKey "XXXXXXX" # define readFeedAPIKey "XXXXXXX" # define readFieldAPIKey "xxxxxxxx" # define readStatusAPIKey "XXXXXXX"
విషయం స్పీక్అడ్డ్రెస్, ఛానల్ ఐడి, రైట్ ఫీడ్ API కీని ఉంచండి. వెబ్ నుండి డేటాను స్వీకరించాల్సిన అవసరం ఉంటే మిగిలిన విషయాలు అవసరం లేదు.
శూన్య సెటప్ () { // ఒకసారి సెటప్ చేయడానికి మీ సెటప్ కోడ్ను ఇక్కడ ఉంచండి: // సీరియల్ పోర్ట్ను 115200 సీరియల్.బెగిన్ (115200) వద్ద సెట్ చేయండి ; // సీరియల్ ఆలస్యాన్ని ప్రారంభించండి (1000); WiFi.mode (WIFI_STA); ThingSpeak.begin (క్లయింట్); // థింగ్స్పీక్ను ప్రారంభించండి // టోడో: కరెంట్ & వోల్టేజ్ పొందడానికి పిన్ను చదవడానికి ఒక పనిని సృష్టించండి మరియు సౌర ఫలకం యొక్క వాట్ మరియు ఉష్ణోగ్రతను లెక్కించండి xTaskCreate ( wifi_task, / * టాస్క్ ఫంక్షన్. * / "Wifi_task", / * స్ట్రింగ్ పేరుతో స్ట్రింగ్. పని * / . 1024 * 2 / * స్టాక్ బైట్లు పరిమాణానికి * / NULL, / * పారామీటర్ పని * / ఇన్పుట్ వంటి జారీ 5, / * పని ప్రాధాన్య * /. NULL); / * టాస్క్ హ్యాండిల్. * / సీరియల్.ప్రింట్ ("డేటా రీడింగ్."); }
పై కోడ్లో, థింగ్స్పీక్ సర్వర్ ప్రారంభించబడింది మరియు సౌర ఫలకానికి సంబంధించిన డేటాను పొందే పని సృష్టించబడుతుంది.
ప్రధాన లూప్లో, సౌర ప్రవాహం మరియు వోల్టేజ్ అనలాగ్ పిన్ ద్వారా గ్రహించబడతాయి మరియు సగటు జరుగుతుంది.
ఫ్లోట్ సోలార్_కూర్_అడ్సి_వాల్ = 0; ఫ్లోట్ సోలార్_వోల్ట్_అడ్సి_వాల్ = 0; (i = 0; i <NUMSAMPLES; i ++) { curr_samples = అనలాగ్ రీడ్ (curr_an_pin); వోల్ట్_సాంపిల్స్ = అనలాగ్ రీడ్ (వోల్ట్_అన్_పిన్); temp_samples = అనలాగ్ రీడ్ (ntc_temp_an_pin); ఆలస్యం (10); } // అన్ని నమూనాలను సగటున తేలుతుంది curr_avg = 0; ఫ్లోట్ వోల్ట్_అవ్ = 0; ఫ్లోట్ టెంప్_అవ్ = 0; (i = 0; i <NUMSAMPLES; i ++) { curr_avg + = curr_samples; వోల్ట్_అవ్ + = వోల్ట్_ నమూనాలు; temp_avg + = temp_samples; } curr_avg / = NUMSAMPLES; vol_avg / = NUMSAMPLES; temp_avg / = NUMSAMPLES; //Serial.print("ADC VALUE = "); //Serial.println(ADC_VALUE); // అసలు కరెంట్ & వోల్టేజ్ పొందడానికి ADC విలువను వోల్టేజ్లకు మార్చండి. float solar_curr = (curr_avg * 3.3) / (4095); ఫ్లోట్ సోలార్_వోల్ట్ = (వోల్ట్_అవ్గ్ * 3.3) / (4095); // వోల్టేజ్ డివైడర్ను ఉపయోగించడం ద్వారా మనం అసలు వోల్టేజ్ను తగ్గించాము. // ఆ కారణంగా సౌర ఫలకం యొక్క వాస్తవ వోల్టేజ్ పొందడానికి 6 ను సగటు వోల్టేజ్తో గుణిస్తాము. solar_volt * = 6;
ఇన్పుట్ వోల్టేజ్ను 6 రెట్లు విభజించే వోల్టేజ్ డివైడర్ను మేము సృష్టించినందున 6 తో గుణించడం ద్వారా సౌర వోల్టేజ్ సమర్పించబడుతుంది.
లాగరిథమిక్ ఏర్పాటును ఉపయోగించి థర్మిస్టర్ నుండి ఉష్ణోగ్రత ఉత్పత్తి అవుతుంది.
// విలువను ప్రతిఘటనకు మార్చండి temp_avg = 4095 / temp_avg - 1; temp_avg = SERIESRESISTOR / temp_avg; //Serial.print("Thermistor resistance "); //Serial.println(temp_avg); ఫ్లోట్ స్టెయిన్హార్ట్; steinhart = temp_avg / THERMISTORNOMINAL; // (ఆర్ / రో) స్టెయిన్హార్ట్ = లాగ్ (స్టెయిన్హార్ట్); // ln (R / Ro) steinhart / = BCOEFFICIENT; // 1 / B * ln (R / Ro) స్టెయిన్హార్ట్ + = 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1 / టు) స్టెయిన్హార్ట్ = 1.0 / స్టెయిన్హార్ట్; // విలోమ స్టెయిన్హార్ట్ - = 273.15; // సంపూర్ణ టెంప్ను సి గా మార్చండి
ప్రతి 15 సెకన్లకు డేటా చదవబడుతుంది.
ఆలస్యం (1000); లెక్కింపు ++; సీరియల్.ప్రింట్ ("."); if (కౌంట్> = 15) { కౌంట్ = 0; Serial.println ("========================================= ========================= "); సీరియల్.ప్రింట్ ("సౌర వోల్టేజ్ ="); సీరియల్.ప్రింట్ల్న్ (సోలార్_వోల్ట్); సీరియల్.ప్రింట్ ("సౌర ప్రవాహం ="); సీరియల్.ప్రింట్ల్న్ (సోలార్_కూర్); float solar_watt = solar_volt * solar_curr; సీరియల్.ప్రింట్ ("సోలార్ వాట్ ="); సీరియల్.ప్రింట్ల్న్ (సోలార్_వాట్); సీరియల్.ప్రింట్ ("సౌర ఉష్ణోగ్రత ="); సీరియల్.ప్రింట్ల్న్ (స్టెయిన్హార్ట్); సీరియల్.ప్రింట్ల్న్ ("========================================= ========================= ");
Thing.Speak.setField () ఫంక్షన్ను ఉపయోగించి సంబంధిత ఫీల్డ్ల కోసం డేటా ప్రసారం చేయబడుతుంది; వైఫై కనెక్ట్ అయినప్పుడు.
if (WiFi.status () == WL_CONNECTED) { ThingSpeak.setField (1, solar_volt); ThingSpeak.setField (2, solar_curr); థింగ్స్పీక్.సెట్ఫీల్డ్ (3, సోలార్_వాట్); థింగ్స్పీక్.సెట్ఫీల్డ్ (4, స్టెయిన్హార్ట్); // థింగ్స్పీక్ ఛానెల్కు వ్రాయండి int x = ThingSpeak.writeFields (channelID, writeFeedAPIKey); if (x == 200) { Serial.println ("ఛానెల్ల నవీకరణ విజయవంతమైంది."); } else { Serial.println ("ఛానెల్ను నవీకరించడంలో సమస్య. HTTP లోపం కోడ్" + స్ట్రింగ్ (x)); } } else { Serial.println ("\ r \ n ########################### ################### "); Serial.println ("థింగ్స్పీక్ సర్వర్కు డేటాను నవీకరించడంలో విఫలమైంది."); Serial.println ("వైఫై కనెక్ట్ కాలేదు…"); Serial.println ("############################# ############## \ r \ n "); } సీరియల్.ప్రింట్ ("డేటా రీడింగ్."); } }
దిగువ కోడ్ స్నిప్పెట్లో సృష్టించబడిన Wi-Fi టాస్క్-
గర్జన wifi_task (శూన్యమైన * పరామితి) { (1) { if (WiFi.status () = WL_CONNECTED!) { Serial.print ("SSID కి కనెక్ట్ ప్రయత్నిస్తోంది:"); సీరియల్.ప్రింట్ల్న్ (WLAN_SSID); (WiFi.status ()! = WL_CONNECTED) { WiFi.begin (WLAN_SSID, WLAN_PASS); // WPA / WPA2 నెట్వర్క్కు కనెక్ట్ అవ్వండి. ఓపెన్ లేదా WEP నెట్వర్క్ సీరియల్.ప్రింట్ (".") ఉపయోగిస్తుంటే ఈ పంక్తిని మార్చండి ; ఆలస్యం (5000); } సీరియల్.ప్రింట్ల్న్ ("on n కనెక్ట్ చేయబడింది."); సీరియల్.ప్రింట్ల్న్ (); సీరియల్.ప్రింట్ల్న్ ("వైఫై కనెక్ట్"); సీరియల్.ప్రింట్ల్న్ ("IP చిరునామా:"); సీరియల్.ప్రింట్ల్న్ (వైఫై.లోకాలిఐపి ()); } vTaskDelay (1000 / portTICK_PERIOD_MS); } vTaskDelete (NULL); }
డేటాను పరీక్షించడం మరియు పర్యవేక్షించడం
సోలార్ ప్యానెల్ సర్క్యూట్తో అనుసంధానించబడి, క్రింద చూపిన విధంగా పరీక్ష కోసం సూర్యకాంతిలో ఉంచబడుతుంది.
పూర్తి పని క్రింది వీడియోలో ప్రదర్శించబడుతుంది. మా సర్క్యూట్ ప్యానెల్ నుండి అవుట్పుట్ వోల్టేజ్, కరెంట్ మరియు శక్తిని చదవగలిగింది మరియు క్రింద చూపిన విధంగా థింగ్స్పీక్ ఛానెల్లో ప్రత్యక్షంగా నవీకరించబడింది.
మనం గమనిస్తే, పై గ్రాఫ్లో 15 నిమిషాల డేటా చూపబడుతుంది. ఇది బహిరంగ ఆపరేషన్ ప్రాజెక్ట్ కాబట్టి, సరైన పిసిబితో పాటు పరివేష్టిత పెట్టెను ఉపయోగించాల్సిన అవసరం ఉంది. వర్షంలో సర్క్యూట్ జలనిరోధితంగా ఉండే విధంగా ఆవరణను తయారు చేయాలి. ఈ సర్క్యూట్ను సవరించడానికి లేదా ఈ ప్రాజెక్ట్ యొక్క మరిన్ని అంశాలను చర్చించడానికి, దయచేసి సర్క్యూట్ డైజెస్ట్ యొక్క క్రియాశీల ఫోరమ్ను ఉపయోగించండి. మీరు ట్యుటోరియల్ని ఆస్వాదించారని మరియు ఉపయోగకరమైనదాన్ని నేర్చుకున్నారని ఆశిస్తున్నాము.