
ప్రధాన అంశాలు లేదా ఈ కథనం దేనికి సంబంధించినది
మేము వ్యాసాల శ్రేణిని కొనసాగిస్తున్నాము షియోటినీ - దృశ్యపరంగా ప్రోగ్రామ్ చేయగల చిప్-ఆధారిత కంట్రోలర్ ESP8266.
ఈ వ్యాసం, అధిక తేమ ఉన్న బాత్రూమ్ లేదా ఇతర గదిలోని వెంటిలేషన్ నియంత్రణ ప్రాజెక్ట్ ఉదాహరణను ఉపయోగించి, ఒక ప్రోగ్రామ్ను ఎలా నిర్మిస్తారో వివరిస్తుంది. షియోటినీ.
ఈ శ్రేణిలోని మునుపటి వ్యాసాలు.
సూచనలు
పరిచయం
అనుభవం లేకుండా అవగాహన ఉండదు. ఇది కాలం మరియు తరాలు నిరూపించిన సత్యం. అందువల్ల, ఆచరణాత్మక నైపుణ్యాలను నేర్చుకోవడానికి, ఏదైనా స్వయంగా ప్రయత్నించడం కంటే ఉత్తమమైనది మరొకటి లేదు. మరియు ఏమి ప్రయత్నించవచ్చో, ఏమి ప్రయత్నించకూడదో చూపించే ఉదాహరణలు ఇక్కడ ప్రత్యేకంగా సహాయపడతాయి. ఇతరుల తప్పులు మిమ్మల్ని మీ తప్పులు చేయకుండా ఆపలేనప్పటికీ, అవి వాటి సంఖ్యను తగ్గించడంలో సహాయపడతాయి.
ShIoTiny నోడ్లు ఎలా పనిచేస్తాయో ప్రదర్శించడానికి, వెంటిలేషన్ నియంత్రణ కోసం ఒక చిన్న ఉదాహరణ ప్రాజెక్ట్ను రూపొందించడానికి, మునుపటి వ్యాసాల పాఠకుల నుండి వచ్చిన ప్రశ్నలు మరియు లేఖలు నాకు స్ఫూర్తినిచ్చాయి.
కంట్రోలర్కు దారితీసిన అసలు ఆలోచన షియోటినీ పంపింగ్ మరియు నీటిపారుదల కేంద్రం అందరికీ నచ్చే విషయం కాకపోవచ్చు. అందుకే నేను సులభంగా అర్థమయ్యే మరియు ఉపయోగకరమైన వెంటిలేషన్ నియంత్రణ వ్యవస్థను ఉదాహరణగా ఉపయోగించాను.
ఈ ప్రాజెక్ట్ ఆలోచన నాది కాదని నేను చెబుతాను, కానీ ఆపై స్వీకరించబడింది షియోటినీ.
ముందుగా, మీకు ఏమి కావాలో అర్థం చేసుకోండి.
మెరుగుపరిచే ప్రక్రియ అంతులేనిది. సరిగ్గా ఈ లక్షణమే ఎన్నో మంచి ఆలోచనలను, ప్రాజెక్టులను నాశనం చేసింది. లోపాలున్నప్పటికీ పనిచేసే ఉత్పత్తిని విడుదల చేయడానికి బదులుగా, డెవలపర్ దానిని మెరుగుపరుస్తూనే ఉన్నారు. పోటీదారులు వారిని అధిగమించి, లోపాలున్నప్పటికీ పనిచేసే (మరియు తరచుగా పూర్తిగా నాసిరకమైన) పరిష్కారాన్ని విడుదల చేసేంత వరకు వారు దానిని మెరుగుపరుస్తూనే ఉన్నారు.
అందువల్ల, ఒక ప్రాజెక్టును ఎక్కడ ఆపాలో తెలుసుకోవడం చాలా ముఖ్యం. లేదా, మరో మాటలో చెప్పాలంటే, ప్రాజెక్టు ప్రారంభంలో మన దగ్గర ఉన్నదానితో, దాని ముగింపులో మనం ఏమి సాధించాలనుకుంటున్నామో నిర్ధారించుకోవాలి. రష్యన్ భాషలో, ఏదైనా ఒకదాన్ని సృష్టించే మార్గాన్ని వివరించడానికి ప్రత్యేకంగా వ్రాసిన పత్రంలో "ప్లాన్" అనే అద్భుతమైన, చిన్న మరియు క్లుప్తమైన పదం ఉంటుంది. దీనిని ఇటీవల మానసిక వికలాంగులైన అనువాదకులు మరియు అసమర్థ నిర్వాహకులు "రోడ్ మ్యాప్" అని పిలవడం మొదలుపెట్టారు. సరేలే, వాళ్ళ గురించి పట్టించుకోవద్దు.
మన ప్రణాళిక ఈ విధంగా ఉంటుంది. స్నానాలగది లేదా వంటగది వంటి, గాలిలో తేమ అప్పుడప్పుడు గణనీయంగా పెరిగే ఒక గది ఉందని అనుకుందాం. గాలిలో తేమ ఉండటం అనేది ఒక ఇబ్బందికరమైన విషయం, మరియు దానికి పరిష్కారం అనాదిగా వస్తున్నదే: గదికి గాలి, వెలుతురు వచ్చేలా చేయడం. గాలి, వెలుతురు రావడానికి చాలా పద్ధతులు ఉన్నాయి. కానీ మనం బహుశా ఫ్యాన్ల వంటి వింతైన, పాతకాలపు పద్ధతులను వదిలిపెట్టి, ఒక సాధారణ ఫ్యాన్ను ఎంచుకుందాం. మన ప్రాంతంలో ఫ్యాన్లు చౌకగా ఉంటాయి మరియు సులభంగా దొరుకుతాయి.
సంక్షిప్తంగా చెప్పాలంటే, మనం ఫ్యాన్ను నియంత్రించాలనుకుంటున్నాము: దాన్ని ఆన్ మరియు ఆఫ్ చేయాలనుకుంటున్నాము. మరింత స్పష్టంగా చెప్పాలంటే, అవసరమైనప్పుడు అది ఆటోమేటిక్గా ఆన్ మరియు ఆఫ్ అవ్వాలని మనం కోరుకుంటున్నాము.
ఫ్యాన్ ఏ పరిస్థితులలో ఆన్ అవ్వాలి మరియు ఏ పరిస్థితులలో ఆఫ్ అవ్వాలి అనేది ఇంకా నిర్ధారించాల్సి ఉంది.
ఇక్కడ అంతా స్పష్టంగా ఉంది: గాలిలో తేమ ఒక నిర్దిష్ట పరిమితిని దాటితే, ఫ్యాన్ ఆన్ అయి గాలిని బయటకు లాగుతుంది; తేమ సాధారణ స్థాయికి తిరిగి వచ్చినప్పుడు, ఫ్యాన్ ఆఫ్ అవుతుంది.
శ్రద్ధగల పాఠకుడు 'ఇవ్వబడింది' అనే పదాన్ని వెంటనే పట్టుకుంటాడు. ఎవరిచే ఇవ్వబడింది? ఎలా ఇవ్వబడింది?
తేమ పరిమితిని సెట్ చేయడానికి అనేక మార్గాలు ఉన్నాయి. వాటిలో రెండింటిని మనం చూద్దాం: మొదటిది వేరియబుల్ రెసిస్టర్ను ఉపయోగించడం, మరియు రెండవది MQTT ప్రోటోకాల్ ద్వారా నెట్వర్క్లో సెట్ చేయడం. ఈ పద్ధతులలో ప్రతిదానికి దాని ప్రయోజనాలు మరియు అప్రయోజనాలు ఉన్నాయి, వాటి గురించి తరువాత చర్చిస్తాము.
అర్థం చేసుకోని వారి కోసం నేను వివరిస్తాను, "థ్రెషోల్డ్ హ్యుమిడిటీ" అంటే ఒక తేమ స్థాయి, దీనికి మించి ఉంటే ఫ్యాన్ను తప్పనిసరిగా ఆన్ చేయాలి.
తదుపరి ప్రశ్న: వినియోగదారునికి ఫ్యాన్ను నేరుగా ఆన్ చేసుకునే అవకాశం ఇవ్వాలా? అంటే, గాలిలో తేమ స్థాయితో సంబంధం లేకుండా, ఒక బటన్ నొక్కగానే? మేము ఈ అవకాశాన్ని కల్పిస్తాము. ఎందుకంటే, ఫ్యాన్ కేవలం అధిక తేమ కోసమే కాకుండా, ఉదాహరణకు, గదిలోని "దుర్వాసన" అని పిలవబడే అసహ్యకరమైన వాసనను తొలగించడానికి కూడా అవసరం కావచ్చు.
కాబట్టి, మనకు ఏమి కావాలో మరియు అది ఎలా పనిచేస్తుందో కూడా మనం కొద్దిగా తెలుసుకున్నాము. మన వెంటిలేషన్ నియంత్రణ వ్యవస్థ యొక్క అన్ని విధులను క్లుప్తంగా జాబితా చేద్దాం:
- తేమ పరిమితి స్థాయిని సెట్ చేయడం (రెండు ఎంపికలు);
- తేమ స్థాయి కొలత;
- ఫ్యాన్ ఆటోమేటిక్గా ఆన్ అవ్వడం;
- ఆటోమేటిక్ ఫ్యాన్ షట్డౌన్;
- మాన్యువల్ ఫ్యాన్ యాక్టివేషన్ (ఒక బటన్ నొక్కడం ద్వారా).
కాబట్టి, ప్రణాళిక స్పష్టంగా ఉంది. పైన పేర్కొన్న అన్ని ఫంక్షన్లను మన ప్రోగ్రామ్లో అమలు చేయాలి. మనం ఈ "ప్రణాళిక" ప్రకారం పనిచేస్తాము. ముందుగా, పరికరం యొక్క బ్లాక్ రేఖాచిత్రాన్ని గీద్దాం.
పరికరం యొక్క నిర్మాణ రేఖాచిత్రం
సాధారణంగా చెప్పాలంటే, మనకు అలాంటి రెండు పథకాలు ఉంటాయి. మొదటిది, తేమ పరిమితిని ఒక వేరియబుల్ రెసిస్టర్ ద్వారా సెట్ చేసే వేరియంట్ కోసం. రెండవది, MQTT ప్రోటోకాల్ ద్వారా నెట్వర్క్లో తేమ పరిమితిని సెట్ చేసే వేరియంట్ కోసం.
కానీ ఈ సర్క్యూట్లు తేమ పరిమితిని సెట్ చేసే వేరియబుల్ రెసిస్టర్ అనే ఒకే ఒక అంశంలో మాత్రమే విభిన్నంగా ఉంటాయి కాబట్టి, మనం ఒకే ఒక నిర్మాణ రేఖాచిత్రాన్ని గీస్తాము. వాస్తవానికి, GOST ప్రకారం నిర్మాణ రేఖాచిత్రం భిన్నంగా కనిపిస్తుంది. కానీ మనం అనుభవజ్ఞులైన ఇంజనీర్లను కాకుండా, యువతరాన్ని లక్ష్యంగా చేసుకుంటున్నాము. అందువల్ల, స్పష్టత చాలా ముఖ్యం.

అయితే, చిత్రంలో మనం ఏమి చూస్తున్నాము? ఫ్యాన్ రిలేకు అనుసంధానించబడి ఉంది. Relay1 కంట్రోలర్ షియోటినీఫ్యాన్ అనేది అధిక వోల్టేజ్ గల పరికరం అని దయచేసి గమనించండి. అందువల్ల, మీరు దీన్ని స్వయంగా చేస్తుంటే, జాగ్రత్త వహించండి. కనీసం, మీ వేళ్లను లేదా కొలత పరికరాలను సర్క్యూట్లో పెట్టే ముందు, ఫ్యాన్కు విద్యుత్ సరఫరాను నిలిపివేయండి. మరియు రెండవ గమనిక: మీ ఫ్యాన్ దీని కంటే ఎక్కువ శక్తివంతమైనదైతే... 250W, ఆపై దానిని నేరుగా కనెక్ట్ చేయండి షియోటినీ అవసరం లేదు - కేవలం స్టార్టర్ ద్వారా మాత్రమే.
మేము ఫ్యాన్ సమస్యను పరిష్కరించాము. ఇప్పుడు ఫ్యాన్ను 'మాన్యువల్ ఆన్' చేసే బటన్. అది ఇన్పుట్కు అనుసంధానించబడి ఉంటుంది. ఇన్పుట్1ఇక్కడ వివరించడానికి ఇంకేమీ లేదు.
ఉష్ణోగ్రత మరియు తేమ సెన్సార్ DHT-11 (లేదా DHT-22 లేదా వాటికి సమానమైనవి). దాని కనెక్షన్ కోసం కంట్రోలర్పై ఒక ప్రత్యేక ఇన్పుట్ అందించబడింది. షియోటినీమీరు చిత్రంలో చూస్తున్నట్లుగా, అటువంటి సెన్సార్ను అనుసంధానించడంలో కూడా ఎటువంటి సమస్యలు ఉండవు.
మరియు చివరగా, తేమ పరిమితిని సెట్ చేసే ఒక వేరియబుల్ రెసిస్టర్. మరింత కచ్చితంగా చెప్పాలంటే, ఒక వేరియబుల్ మరియు ఒక కాన్స్టంట్ రెసిస్టర్తో కూడిన ఒక డివైడర్. దీనిని కనెక్ట్ చేయడంలో ఎలాంటి సమస్యలు లేవు, కానీ అంతర్నిర్మిత ADC గురించి నేను స్పష్టం చేయాలనుకుంటున్నాను. ESP8266 ఇది గరిష్టంగా 1 వోల్ట్ కోసం రూపొందించబడింది. అందుకే సుమారు 5 రెట్ల వోల్టేజ్ డివైడర్ అవసరం.
MQTT ప్రోటోకాల్ను ఉపయోగించి నెట్వర్క్లో తేమ పరిమితి స్థాయిని సెట్ చేసినట్లయితే, ఈ డివైడర్ అవసరం లేదని నేను మీకు మరోసారి గుర్తు చేస్తున్నాను.
ElDraw ShIoTiny ఎడిటర్లో పరికరం యొక్క ఆపరేటింగ్ అల్గారిథంను సృష్టించడం ద్వారా ప్రారంభిద్దాం. ఈ ఎడిటర్ను ఎలా యాక్సెస్ చేయాలో మీరు మునుపటి వ్యాసాలలో లేదా ఈ వ్యాసం ప్రారంభంలో లింక్ చేయబడిన సూచనలలో చదవవచ్చు.
మొదటి ఎంపిక, అత్యంత సరళమైనది
సులభమైన దానితో ప్రారంభిద్దాం: రిలేను ఆన్ చేయడం Relay1 నిర్దిష్ట కాల వ్యవధిలో తేమ పరిమితి స్థాయిని మించినప్పుడు.

మనం చూస్తున్నట్లుగా, ఇందులో సంక్లిష్టమైనదేమీ లేదు: వ్యాఖ్య నోడ్లను లెక్కించకుండా కేవలం నాలుగు నోడ్లు మాత్రమే ఉన్నాయి. DHT11 - ఇది నిజానికి ఉష్ణోగ్రత మరియు తేమ సెన్సార్ (దీనితో భర్తీ చేయవచ్చు) DHT22).
స్థిరమైన CONST — కనీస తేమ స్థాయి, శాతంలో.
కంపారేటర్ అనేది రెండు సంఖ్యలను పోల్చి, నిర్దిష్ట షరతు నెరవేరితే 1ని, నెరవేరకపోతే 0ని అవుట్పుట్గా ఇచ్చే ఒక నోడ్.
మన విషయంలో, అటువంటి పరిస్థితి ఉంటుంది ఎ>బిపేరు A సెన్సార్ ద్వారా కొలవబడిన తేమ స్థాయి, మరియు B — అదే తేమ యొక్క పరిమితి స్థాయి.
కొలిచిన తేమ స్థాయి (A) తేమ పరిమితి స్థాయిని మించిపోతుంది (B), కంపారేటర్ యొక్క అవుట్పుట్ వద్దే ఎ>బి 1 కనిపిస్తుంది మరియు రిలే ఆన్ అవుతుంది. మరియు దీనికి విరుద్ధంగా, తేమ స్థాయి సాధారణ స్థితికి వచ్చిన వెంటనే (అంటే, A<=B), కంపారేటర్ యొక్క అవుట్పుట్ వద్దే ఎ>బి 0 కనిపిస్తుంది మరియు రిలే ఆగిపోతుంది.
అంతా స్పష్టంగా ఉందా? లేకపోతే, దాన్ని మళ్ళీ చదవండి లేదా సూచనలలోని భాగాలు ఎలా పనిచేస్తాయో వివరణను చూడండి.
సెన్సార్ నుండి వచ్చిన డేటాను నేను గమనించాలనుకుంటున్నాను DHT11 ఇవి సుమారుగా ప్రతి 10 సెకన్లకు ఒకసారి అప్డేట్ చేయబడతాయి. అందువల్ల, రిలే ప్రతి 10 సెకన్లకు ఒకసారి కంటే ఎక్కువగా ఆన్ మరియు ఆఫ్ అవ్వదు.
అంతా బాగానే ఉంటుంది, కానీ మేము ఒక వేరియబుల్ రెసిస్టర్ను ఉపయోగించి తేమ పరిమితిని సెట్ చేయాలనుకుంటున్నాము. ఇంతకంటే సులభమైనది ఏదీ లేదు!

మనం కాన్స్టంట్ నోడ్ను ADC నోడ్తో భర్తీ చేద్దాం. ఎందుకంటే, మనం వేరియబుల్ రెసిస్టర్తో ఉన్న వోల్టేజ్ డివైడర్ను ADCకే అనుసంధానించాము.
ADC ఇన్పుట్ వద్ద వోల్టేజ్ 0 నుండి 1 వోల్ట్ వరకు మారుతుంది. కానీ సెన్సార్ అవుట్పుట్ వద్ద తేమ 0 నుండి 100% వరకు మారుతుంది. మనం వాటిని ఎలా పోలుస్తాము? ఇది చాలా సులభం. ADC యూనిట్లో షియోటినీ ఇన్పుట్ వద్ద వోల్టేజ్ను కొలవడమే కాకుండా, కూడా స్కేల్ మరియు షిఫ్ట్.
అంటే, ADC1 నోడ్ (ADC) యొక్క అవుట్పుట్ విలువ అవుతుంది Xసూత్రాన్ని ఉపయోగించి లెక్కించబడింది

పేరు
— ADC ఇన్పుట్ వద్ద వోల్టేజ్ (0 నుండి 1V వరకు); k - పరిధి (ADC పరిధి) మరియు b- ఆఫ్సెట్ (ADC ఆఫ్సెట్). అందువల్ల, మీరు సెట్ చేస్తే k = 100 и బి=0, అప్పుడు మార్చేటప్పుడు
0 నుండి 1 వరకు గల పరిధిలో, విలువ X ADC నోడ్ యొక్క అవుట్పుట్ 0 నుండి 100 పరిధిలో మారుతుంది. అంటే, ఇది సంఖ్యాపరంగా 0 నుండి 100% వరకు ఉండే తేమ మార్పు పరిధికి సమానం.
లేదా, సులభంగా చెప్పాలంటే, వేరియబుల్ రెసిస్టెన్స్ స్లైడర్ను తిప్పడం ద్వారా, మీరు తేమ పరిమితి స్థాయిని 0 నుండి 100 వరకు సెట్ చేయవచ్చు. దీనిలోని ఏకైక లోపం ఏమిటంటే, ఇందులో డిస్ప్లే పరికరాలు లేవు. కానీ ఆచరణలో, వేరియబుల్ రెసిస్టెన్స్ స్లైడర్ను ఆరు విభాగాలుగా (0%, 20%, 40%, 60%, 80%, 100%) సెట్ చేస్తే, తేమ పరిమితి స్థాయిని సెట్ చేయడానికి ఇది సరిపోతుంది.
మనం అవకాశాలను ఎలా నిర్ణయిస్తాము? k - పరిధి (ADC పరిధి) మరియు b-ADC ఆఫ్సెట్? ఇది చాలా సులభం! మీ మౌస్ను నోడ్ వైపు చూపిస్తే చాలు. ADC1 వెంటనే ఒక సెట్టింగ్స్ విండో కనిపిస్తుంది. మీకు అవసరమైనవన్నీ ఇక్కడ కాన్ఫిగర్ చేసుకోవచ్చు. మన విషయంలో, అది చిత్రంలో ఉన్నదానిలా కనిపిస్తుంది.

కాబట్టి, మన దగ్గర ఒక సులభమైన, పనిచేసే పరిష్కారం ఉంది. దాన్ని మెరుగుపరచడం ప్రారంభిద్దాం.
అయినా, ఈ అత్యంత సరళమైన పరిష్కారానికి ఒక ప్రయోజనం ఉంది: దీనికి ఇంటర్నెట్ సదుపాయం అవసరం లేదు. ఇది పూర్తిగా స్వయంప్రతిపత్తి గలది.
రెండవ ఎంపిక, బటన్ను కనెక్ట్ చేయండి
అన్నీ పనిచేస్తున్నాయి, అందరూ సంతోషంగా ఉన్నారు. కానీ ఇక్కడ ఒక సమస్య ఉంది: మనం వెంటిలేషన్ను ఆన్ చేయలేకపోతున్నాము. ప్రవేశ ద్వారం వద్ద మనం ఇప్పటికే దానికి అంగీకరించాము. ఇన్పుట్1 తేమ సెన్సార్ను పట్టించుకోకుండా, ఫ్యాన్ను బలవంతంగా ఆన్ మరియు ఆఫ్ చేసే ఒక బటన్ను మేము అనుసంధానిస్తాము.
మన సర్క్యూట్ ప్రోగ్రామ్లో ఈ బటన్ను ప్రాసెస్ చేసే సమయం వచ్చింది.

బటన్ ప్రెస్ ప్రాసెసింగ్ బ్లాక్ నారింజ రంగు గీతతో హైలైట్ చేయబడింది. ఇది ఒక బటన్ ప్రెస్ కౌంటర్ను సూచిస్తుంది, దీని అవుట్పుట్ వద్ద ఉన్న విలువ ఒకటి (ఆకుపచ్చ గీత, నోడ్ అవుట్పుట్) దాటినప్పుడు అది సున్నాకి రీసెట్ చేయబడుతుంది. CT).
ఇక్కడ ప్రతిదీ మునుపటిలాగే సులభంగా పనిచేస్తుంది: కౌంటర్ CT ఇన్పుట్కు కనెక్ట్ చేయబడిన బటన్ యొక్క క్లిక్ల సంఖ్యను లెక్కిస్తుంది ఇన్పుట్1అంటే, బటన్ను ప్రతిసారీ నొక్కినప్పుడు ఈ కౌంటర్ అవుట్పుట్ వద్ద ఉన్న విలువ 1 పెరుగుతుంది.
ఈ విలువ రెండుకు సమానం అయిన వెంటనే (అంటే, 1 కంటే ఎక్కువ), కంపారేటర్ యొక్క అవుట్పుట్ వద్ద వెంటనే ఎ>బి 1 కనిపిస్తుంది. మరియు ఈ 1 కౌంటర్ను రీసెట్ చేస్తుంది. CT సున్నాకి. ఇది కంపారేటర్ను సూచిస్తుంది, అంటే డయాగ్రమ్లోని కింది కంపారేటర్!
కాబట్టి, మన బటన్కు 0 మరియు 1 అనే రెండు స్థితులు ఉన్నాయి. ఒకవేళ మనకు మరిన్ని స్థితులు (3 లేదా 4 లేదా అంతకంటే ఎక్కువ) అవసరమైతే, మనం కేవలం స్థిరాంకాన్ని మార్చవలసి ఉంటుంది. CONST ఒక విలువ నుండి మరొక విలువకు.
కాబట్టి, ఫ్యాన్ను ఆన్ చేయడానికి రెండు షరతులు ఉన్నాయి: నిర్దేశించిన తేమ స్థాయిని మించడం మరియు బటన్ను ఒకసారి నొక్కడం. ఈ రెండు షరతులలో ఏది నెరవేరినా, ఫ్యాన్ ఆన్ అయి, బటన్ను మళ్లీ నొక్కే వరకు నడుస్తూనే ఉంటుంది. И తేమ స్థాయి సాధారణ స్థితికి తిరిగి రాదు.
వాస్తవానికి, అల్గోరిథంను మరింత క్లిష్టతరం చేయడం సాధ్యమే, కానీ మేము అలా చేయము – కోరుకునే వారికి సృజనాత్మకతకు అవకాశం కల్పిస్తాము.
మూడవ ఎంపిక: ఇంటర్నెట్కు కనెక్ట్ అవ్వండి
మేము వివరించినవన్నీ సంపూర్ణంగా పనిచేస్తాయి. కానీ ప్రదర్శన అంశం సంగతేంటి? అసలు, స్మార్ట్ఫోన్ వాడకుండా ఒక నాబ్ను తిప్పడం లేదా బటన్ నొక్కడం చేసే వారిని చూసి మొటిమలున్న ఏ హిప్స్టర్ హ్యాకర్ అయినా నవ్వుతాడు! నాబ్ను తిప్పడం "ఫ్యాషన్ కాదు." కానీ స్మార్ట్ఫోన్పై వేలిని అడ్డంగా రుద్దుతూ గీరడం—అది ఒక హిప్స్టర్ హ్యాకర్ కోరికల పరాకాష్ట (వాటన్నింటి మధ్య తేడాను నేను ఎప్పుడూ కనుక్కోలేకపోయాను, కాబట్టి నేను చెప్పేది తప్పయితే నన్ను క్షమించండి).
అయితే, పైన పేర్కొన్న వాటి పట్ల మనం సానుకూలంగా ఉందాం. ఇంటర్నెట్ నియంత్రణకు దాని స్వంత నిజమైన ప్రయోజనాలు ఉన్నాయి. మొదటిది, ఇది స్పష్టంగా ఉంటుంది. అన్ని ప్లాట్ఫారమ్ల కోసం చాలా యాప్లు అందుబాటులో ఉన్నాయి, ఇవి కేవలం కొన్ని క్లిక్లతో మన కార్ల్సన్-శైలి కంట్రోలర్ కోసం పూర్తిగా ఉపయోగపడే కంట్రోల్ ప్యానెల్ను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తాయి. రెండవది, ఇది గదిలోని తేమ స్థాయిని రిమోట్గా పర్యవేక్షించడానికి మిమ్మల్ని అనుమతిస్తుంది. మరియు మూడవది, ఫ్యాన్ ఏమి చేస్తుందో—అంటే అది తిరుగుతోందా లేదా—అనేది మాత్రమే కాకుండా, అది ఏ తేమ పరిమితికి సెట్ చేయబడిందో కూడా మీరు చూడవచ్చు. అంతేకాదు, ఫ్యాన్ ఆటోమేటిక్గా ఆన్ అవుతోందా లేదా మాన్యువల్గా ఆన్ అవుతోందా అనేది కూడా చూడవచ్చు. ప్రాథమికంగా, మీకు కావలసినది ఏదైనా.
నిస్సందేహంగా, కొంతమంది అభిమానులకు ఇంతటి ఆదరణ లభించడం గొప్ప గౌరవం. కానీ ఇది కేవలం ఒక ఉదాహరణ మాత్రమే.
కాబట్టి, ఇంటర్నెట్కు కనెక్ట్ అవ్వడానికి మనం సాంకేతికతను ఉపయోగిస్తాము MQTT మరియు అదే పేరు గల ప్రోటోకాల్.
ఈ సాంకేతికత ప్రయోజనాన్ని పొందడానికి మనకు అవసరం MQTT బ్రోకర్ఇది సేవలను అందించే ఒక ప్రత్యేక సర్వర్ MQTT క్లయింట్లుఉదాహరణకు ShIoTIny మరియు మీ స్మార్ట్ఫోన్.
సాంకేతికత యొక్క సారాంశం MQTT క్లయింట్లలో ఏదైనా ఒకటి MQTT బ్రోకర్ (సర్వర్) పై ఒక నిర్దిష్ట పేరుతో (అని పిలవబడే) యాదృచ్ఛిక డేటాను ప్రచురించడంలో ఇది ఉంటుంది. విషయం పరిభాషలో MQTTఇతర క్లయింట్లు వారి పేరు ద్వారా ఏదైనా డేటాకు సబ్స్క్రయిబ్ చేసుకోవచ్చు (విషయం) మరియు కొత్తగా ప్రచురించబడిన డేటాను స్వీకరించండి. దీని అర్థం డేటా మార్పిడి అంతా క్లయింట్-బ్రోకర్-క్లయింట్ ప్రాతిపదికన జరుగుతుంది.
Я నేను చేయను వివరాలపై దృష్టి పెట్టండి. ఇది ఎలా పనిచేస్తుందో వివరించే వ్యాసాలు, ట్యుటోరియల్స్ ఇంటర్నెట్లో చాలా ఉన్నాయి. MQTT మరి కంట్రోల్ ప్యానెల్స్ సృష్టించడానికి ఏ ప్రోగ్రామ్లు ఉన్నాయి? మనం డేటాను ఎలా స్వీకరిస్తామో మరియు ప్రచురిస్తామో నేను మీకు చూపిస్తాను. షియోటినీ.
బ్రోకర్గా నేను ఉపయోగించాను కానీ, సూత్రం మాత్రం ప్రతిచోటా ఒకటే.
కాబట్టి, మీరు రిజిస్టర్ చేసుకున్నారని అనుకుందాం MQTT బ్రోకర్సాధారణంగా, బ్రోకర్ మీకు (అధికారం కోసం) ఒక యూజర్నేమ్ మరియు పాస్వర్డ్ను, అలాగే కనెక్షన్ కోసం ఒక పోర్ట్ను ఇస్తుంది (లేదా మీరు సృష్టించుకోవలసి ఉంటుంది). కనెక్ట్ అవ్వండి షియోటినీ к MQTT బ్రోకర్ దీన్ని చేయడానికి రెండు మార్గాలు ఉన్నాయి: సాధారణ కనెక్షన్ మరియు ఒక TLS (SSL).
ఈ పారామితులన్నీ ఉన్నాయి షియోటినీ ట్యాబ్లో నమోదు చేయబడ్డాయి నెట్వర్కింగ్అధ్యాయం సర్వర్కు MQTT కనెక్షన్.

మీ ఉంటే MQTT బ్రోకర్ అధికారికత అవసరం లేదు - మీ లాగిన్ మరియు పాస్వర్డ్ను నమోదు చేయవద్దు (ఈ ఫీల్డ్లను ఖాళీగా వదిలేయండి).
పరామితి MQTT టాపిక్ ప్రిఫిక్స్ దీనికి ప్రత్యేక వివరణ అవసరం.
MQTT పారామితుల ప్రిఫిక్స్ అనేది టాపిక్ పేరుకు జోడించబడిన ఒక స్ట్రింగ్ (విషయంMQTT బ్రోకర్కు పబ్లిష్ మరియు సబ్స్క్రయిబ్ చేసేటప్పుడు. ఇన్స్టాల్ చేయడానికి MQTT ప్రిఫిక్స్ మీ కంట్రోలర్ కోసం, మీరు దానిని ఇన్పుట్ ఫీల్డ్లో నమోదు చేస్తే సరిపోతుంది.MQTT టాపిక్ ప్రిఫిక్స్"("MQTT టాపిక్ ప్రిఫిక్స్ప్రిఫిక్స్ ఎల్లప్పుడూ స్లాష్తో మొదలవుతుంది ("/")! మీరు ఇన్పుట్ ఫీల్డ్లో స్లాష్ను నమోదు చేయకపోతే, అది స్వయంచాలకంగా జోడించబడుతుంది. మీరు ప్రిఫిక్స్లో చిహ్నాలను ఉపయోగించలేరు. "#" и "+"ఇతర ఆంక్షలు ఏవీ లేవు.
ఉదాహరణకు, మీరు పరామితిని ప్రచురిస్తే "స్థితి(లేదా దానికి సబ్స్క్రయిబ్ చేసుకోండి), మరియు మీ ప్రిఫిక్స్ "కి సెట్ చేయబడింది/షియోటినీ/అప్పుడు బ్రోకర్పై ఈ పరామితి ఈ పేరుతో ప్రచురించబడుతుంది/siotiny/statusమీరు ఖాళీ ప్రిఫిక్స్ను కలిగి ఉంటే, అప్పుడు బ్రోకర్లోని అన్ని పారామీటర్లు స్లాష్తో ప్రారంభమవుతాయి ("/"):"స్థితి" ఇలా ప్రచురించబడుతుంది/ స్థితి".
కాబట్టి, మీరు దీనికోసం నమోదు చేసుకున్నారని మేము భావిస్తున్నాము MQTT బ్రోకర్ మరియు లాగిన్, పాస్వర్డ్ మరియు పోర్ట్ను అందుకున్నారు. ఆ తర్వాత మీరు ఈ పారామీటర్లను ట్యాబ్లో నమోదు చేశారు. నెట్వర్కింగ్అధ్యాయం సర్వర్కు MQTT కనెక్షన్ కంట్రోలర్ షియోటినీ.
ప్రిఫిక్స్ విలువకు సెట్ చేయబడిందని మేము భావిస్తున్నాము/గది/".
అన్ని కీలక పారామితుల స్థితిని ప్రచురించడం ద్వారా ప్రారంభిద్దాం: రిలే రియల్1మాన్యువల్ ఆన్/ఆఫ్ స్థితి, ఆటోమేటిక్ ఆన్/ఆఫ్ స్థితి, మరియు చివరగా, థ్రెషోల్డ్ మరియు ప్రస్తుత తేమ స్థాయిలు. మరియు బోనస్గా, గది ఉష్ణోగ్రత. సూచనల కోసం రేఖాచిత్రాన్ని చూడండి.

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

మనం చూస్తున్నట్లుగా, వ్యవస్థ యొక్క మొత్తం స్థితి మన చేతివేళ్ల కొనల్లోనే ఉంది!
కానీ మనం చూడటమే కాకుండా, నియంత్రించాలనుకుంటున్నాము. ఏం చేయాలి? ఇది చాలా సులభం. మనం తేమ పరిమితిని సెట్ చేయడాన్ని ఆపేస్తాము. ఏడీసీ మరియు ఒక వేరియబుల్ రెసిస్టర్ మరియు దీని ప్రకారం మనం ఈ థ్రెషోల్డ్ తేమ స్థాయిని సెట్ చేస్తాము MQTT మీ స్మార్ట్ఫోన్ నుండే నేరుగా!

మేము సర్క్యూట్ నుండి ADC నోడ్ను తీసివేసి, అక్కడ మూడు కొత్త నోడ్లను చేర్చుతాము: ఫ్లాష్ స్టోర్, ఫ్లాష్ పునరుద్ధరణ и MQTT వివరణ.
నోడ్ ఫంక్షన్ MQTT వివరణ ఇది స్పష్టమే: ఇది ఒక పారామీటర్ను స్వీకరిస్తుంది /గది/ట్రిగ్సెట్ (తేమ పరిమితి) తో MQTT బ్రోకర్అయితే అది తర్వాత ఆ డేటాతో ఏం చేస్తుంది? దాన్ని నేరుగా నోడ్కు ఇస్తుంది. ఫ్లాష్ స్టోర్, ఇది ఈ డేటాను నాన్-వోలటైల్ మెమరీలో అనే పేరుతో నిల్వ చేస్తుంది త్రికోణమితిదీని తర్వాత, నోడ్ ఫ్లాష్ పునరుద్ధరణ పేరు కింద నాన్-వోలటైల్ మెమరీ నుండి డేటాను చదువుతుంది త్రికోణమితి మరియు తరువాత ఏమి జరుగుతుందో మనకు ఇప్పటికే తెలుసు.
ఈ సంక్లిష్టత అంతా ఎందుకు? స్వీకరించిన డేటాను నేరుగా కంపారేటర్ ఇన్పుట్కు ఎందుకు అందించలేము?
కామ్రేడ్ ఎస్. హోమ్స్ చెప్పినట్లుగా, ఇది ప్రాథమికమైనదిమీరు మీ పరికరాన్ని ఆన్ చేసిన తర్వాత, అది చేరుతుందని ఎవరూ హామీ ఇవ్వలేరు. MQTT బ్రోకర్మరియు తేమను కొలవాలి. మరియు ఫ్యాన్ను ఆన్ చేయాలి. కానీ తేమ పరిమితి గురించిన సమాచారం లేకుండా, ఇది అసాధ్యం! అందువల్ల, మన పరికరం ఆన్ చేయబడినప్పుడు, అది నాన్-వోలటైల్ మెమరీ నుండి గతంలో నిల్వ చేసిన తేమ పరిమితిని తిరిగి పొంది, నిర్ణయాలు తీసుకోవడానికి దానిని ఉపయోగిస్తుంది. మరియు ఒకసారి కనెక్షన్ ఏర్పడిన తర్వాత MQTT బ్రోకర్ మరియు ఎవరో ఒకరు కొత్త విలువను ప్రచురిస్తారు /గది/ట్రిగ్సెట్అప్పుడు ఈ కొత్త విలువ ఉపయోగించబడుతుంది.
ఇక్కడి నుండి, మీకు నచ్చినది ఏదైనా మీరు ఏర్పాటు చేసుకోవచ్చు. ఉదాహరణకు, తేమతో పాటు, మీరు ఉష్ణోగ్రత పర్యవేక్షణను కూడా జోడించవచ్చు. లేదా స్మార్ట్ లైటింగ్ నియంత్రణను జోడించవచ్చు (మా వద్ద ఇంకా రెండు రిలేలు మరియు రెండు ఇన్పుట్లు ఉపయోగించకుండా మిగిలి ఉన్నాయి). అంతా మీ చేతుల్లోనే ఉంది!
తీర్మానం
కాబట్టి, ShIoTiny ఆధారంగా ప్రాథమికంగా సరళమైన కంట్రోలర్ను అమలు చేయడానికి సంబంధించిన అనేక ఉదాహరణలను మనం చూశాం. బహుశా ఇది ఎవరికైనా ఉపయోగపడవచ్చు.
ఎప్పటిలాగే, దయచేసి సూచనలు, అభ్యర్థనలు, ప్రశ్నలు, అక్షరదోషాలు మొదలైనవాటిని వీరికి పంపండి: shiotiny@yandex.ru ద్వారా
మూలం: www.habr.com
