కొంతకాలం క్రితం మేము మీకు పరిచయం చేసాము
ఆటోమేషన్ గురించి
సాంప్రదాయకంగా, అన్ని ఆటోమేషన్లను మూడు వర్గాలుగా విభజించవచ్చు:
వర్గం 1 - ప్రత్యేక "స్మార్ట్" పరికరాలు. మీరు వివిధ తయారీదారుల నుండి లైట్ బల్బులు, టీపాట్లు మొదలైనవాటిని కొనుగోలు చేస్తారు. ప్రోస్: ప్రతి పరికరం సామర్థ్యాలను విస్తరిస్తుంది మరియు సౌకర్యాన్ని పెంచుతుంది. ప్రతికూలతలు: ప్రతి కొత్త తయారీదారు దాని స్వంత అప్లికేషన్ అవసరం. వేర్వేరు తయారీదారుల నుండి పరికరాల ప్రోటోకాల్లు తరచుగా ఒకదానికొకటి అనుకూలంగా ఉండవు.
వర్గం 2 — సింగిల్-బోర్డ్ PC లేదా x86 అనుకూలత యొక్క సంస్థాపన. ఇది కంప్యూటింగ్ పవర్పై పరిమితులను తొలగిస్తుంది మరియు స్మార్ట్ హోమ్ను నిర్వహించడానికి MajorDoMo లేదా ఏదైనా ఇతర సర్వర్ పంపిణీ ఈ మెషీన్లో ఇన్స్టాల్ చేయబడింది. అందువల్ల, చాలా మంది తయారీదారుల నుండి పరికరాలు ఒకే సమాచార స్థలంలో కనెక్ట్ చేయబడ్డాయి. ఆ. స్మార్ట్ హోమ్ కోసం మీ స్వంత సర్వర్ కనిపిస్తుంది. ప్రోస్: ఒకే కేంద్రం క్రింద అనుకూలత, ఇది మెరుగైన నిర్వహణ సామర్థ్యాలను అందిస్తుంది. ప్రతికూలతలు: సర్వర్ విఫలమైతే, మొత్తం సిస్టమ్ దశ 1కి తిరిగి వస్తుంది, అనగా. విచ్ఛిన్నమవుతుంది లేదా పనికిరానిదిగా మారుతుంది.
వర్గం 3 - అత్యంత హార్డ్కోర్ ఎంపిక. మరమ్మత్తు దశలో, అన్ని కమ్యూనికేషన్లు వేయబడ్డాయి మరియు అన్ని వ్యవస్థలు నకిలీ చేయబడతాయి. ప్రోస్: ప్రతిదీ పరిపూర్ణతకు తీసుకురాబడుతుంది, ఆపై ఇల్లు నిజంగా స్మార్ట్ అవుతుంది. ప్రతికూలతలు: 1 మరియు 2 కేటగిరీలతో పోలిస్తే చాలా ఖరీదైనది, ముందుగానే ప్రతిదీ గురించి ఆలోచించడం మరియు ప్రతి చిన్న వివరాలను పరిగణనలోకి తీసుకోవడం అవసరం.
చాలా మంది వినియోగదారులు ఒక ఎంపికను ఎంచుకుని, ఆపై సజావుగా ఎంపిక రెండుకు వెళతారు. ఆపై చాలా పట్టుదల ఉన్నవి ఎంపిక 3కి చేరుకుంటాయి.
కానీ పంపిణీ చేయబడిన సిస్టమ్ అని పిలవబడే ఒక ఎంపిక ఉంది: ప్రతి వ్యక్తిగత పరికరం సర్వర్ మరియు క్లయింట్ రెండూ అవుతుంది. ముఖ్యంగా, ఇది ఆప్షన్ 1 మరియు ఆప్షన్ 2ని తీసుకుని, కలపడానికి చేసిన ప్రయత్నం. గోల్డెన్ మీన్ని పట్టుకోవడానికి వారి అన్ని అనుకూలతలను తీసుకోండి మరియు నష్టాలను తొలగించండి.
అటువంటి ఎంపిక ఇప్పటికే అభివృద్ధి చేయబడిందని ఎవరైనా చెబుతారు. కానీ అలాంటి నిర్ణయాలు సంకుచితంగా కేంద్రీకరించబడతాయి; ప్రోగ్రామింగ్లో అవగాహన ఉన్న వ్యక్తుల కోసం. అంతిమ పరికరాల రూపంలో మరియు ఇప్పటికే ఉన్న పరికరాలను మా సిస్టమ్లో ఏకీకృతం చేసే రూపంలో ఇటువంటి పంపిణీ చేయబడిన సిస్టమ్లలోకి ప్రవేశించడానికి అడ్డంకిని తగ్గించడమే మా లక్ష్యం. థర్మోస్టాట్ విషయంలో, వినియోగదారు కేవలం తన పాత థర్మోస్టాట్ను తీసివేసి, స్మార్ట్ను ఇన్స్టాల్ చేసి, అతని ప్రస్తుత సెన్సార్లను దానికి కనెక్ట్ చేస్తాడు. అదనపు దశలు లేకుండా.
ఒక ఉదాహరణను ఉపయోగించి మన సిస్టమ్లో ఏకీకరణను చూద్దాం.
మన నెట్వర్క్లో 8 సోనాఫ్ మాడ్యూల్స్ ఉన్నాయని ఊహించుకుందాం. కొంతమంది వినియోగదారులకు, సోనాఫ్ క్లౌడ్ (కేటగిరీ 1) ద్వారా నియంత్రణ సరిపోతుంది. కొందరు థర్డ్-పార్టీ ఫర్మ్వేర్ను ఉపయోగించడం ప్రారంభిస్తారు మరియు సజావుగా కేటగిరీ 2కి తరలిస్తారు. థర్డ్-పార్టీ ఫర్మ్వేర్లో ఎక్కువ భాగం ఇదే సూత్రంపై పని చేస్తుంది: డేటాను MQTT సర్వర్కి బదిలీ చేయడం. OpenHub, Majordomo లేదా మరేదైనా ఒక ప్రయోజనాన్ని అందిస్తాయి - ఇంటర్నెట్లో లేదా స్థానిక నెట్వర్క్లో ఉన్న ఒకే సమాచార స్థలంలో విభిన్న పరికరాలను ఏకం చేయడం. అందువల్ల, సర్వర్ ఉనికి తప్పనిసరి. ఇక్కడే ప్రధాన సమస్య తలెత్తుతుంది - సర్వర్ విఫలమైతే, మొత్తం సిస్టమ్ స్వయంప్రతిపత్తితో పనిచేయడం ఆగిపోతుంది. దీన్ని నివారించడానికి, సిస్టమ్లు మరింత క్లిష్టంగా మారతాయి, సర్వర్ వైఫల్యం సంభవించినప్పుడు మాన్యువల్ నియంత్రణ పద్ధతులు డూప్లికేట్ ఆటోమేషన్ జోడించబడతాయి.
మేము వేరొక మార్గాన్ని తీసుకున్నాము, ఇక్కడ ప్రతి పరికరం స్వయం సమృద్ధిగా ఉంటుంది. అందువలన, సర్వర్ నిర్ణయాత్మక పాత్ర పోషించదు, కానీ కార్యాచరణను మాత్రమే విస్తరిస్తుంది.
ఆలోచన ప్రయోగానికి తిరిగి వెళ్దాం. మళ్లీ అదే 8 Sonoff మాడ్యూల్స్ని తీసుకుని, వాటిలో Lytko ఫర్మ్వేర్ను ఇన్స్టాల్ చేద్దాం. అన్ని Lytko ఫర్మ్వేర్లు ఫంక్షన్ను కలిగి ఉంటాయి
"ssdpList":
{
"id": 94967291,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967282,
"ip": "192.168.x.x",
"type": "thermostat"
}
మీరు ఉదాహరణ నుండి చూడగలిగినట్లుగా, జాబితాలో పరికర ఐడిలు, నెట్వర్క్లోని IP చిరునామా, యూనిట్ రకం (మా విషయంలో, సోనాఫ్-ఆధారిత థర్మోస్టాట్) ఉన్నాయి. ఈ జాబితా ప్రతి రెండు నిమిషాలకు ఒకసారి నవీకరించబడుతుంది (నెట్వర్క్లోని పరికరాల సంఖ్యలో డైనమిక్ మార్పులకు ప్రతిస్పందించడానికి ఈ వ్యవధి సరిపోతుంది). ఈ విధంగా, మేము ఏ వినియోగదారు చర్య లేకుండానే జోడించిన, మార్చబడిన మరియు నిలిపివేయబడిన పరికరాలను ట్రాక్ చేస్తాము. ఈ జాబితా బ్రౌజర్ లేదా మొబైల్ అనువర్తనానికి పంపబడుతుంది మరియు స్క్రిప్ట్ కూడా నిర్దిష్ట సంఖ్యలో బ్లాక్లతో పేజీని రూపొందిస్తుంది. ప్రతి బ్లాక్ ఒక పరికరం/సెన్సార్/కంట్రోలర్కు అనుగుణంగా ఉంటుంది. దృశ్యమానంగా జాబితా ఇలా కనిపిస్తుంది:
అయితే ఇతర రేడియో సెన్సార్లు cc8266 (ZigBee) లేదా nrf32 (MySensors) ద్వారా esp2530/esp24కి కనెక్ట్ చేయబడితే?
ప్రాజెక్టుల గురించి
మార్కెట్లో వివిధ పంపిణీ వ్యవస్థలు ఉన్నాయి. అత్యంత జనాదరణ పొందిన వాటితో ఏకీకృతం చేయడానికి మా సిస్టమ్ మిమ్మల్ని అనుమతిస్తుంది.
ఒకదానికొకటి వేర్వేరు తయారీదారుల అననుకూలతతో పరిస్థితిని మార్చడానికి ఒక మార్గం లేదా మరొకటి ప్రయత్నిస్తున్న ప్రాజెక్టులు క్రింద ఉన్నాయి. ఇది, ఉదాహరణకు,
MySensors అమలు కోసం ఒక ఎంపిక ESP8266 ఆధారంగా గేట్వే. మిగిలిన ఉదాహరణలు ESP32లో ఉన్నాయి. మరియు వాటిలో మీరు పరికరాల జాబితాను గుర్తించడం మరియు సృష్టించడం మా ఆపరేటింగ్ సూత్రాన్ని అమలు చేయవచ్చు.
మరో ఆలోచన ప్రయోగం చేద్దాం. మాకు ZESP32 గేట్వే లేదా SLS గేట్వే లేదా MySensors ఉన్నాయి. వాటిని ఒకే సమాచార స్థలంలో ఎలా కలపవచ్చు? మేము ఈ గేట్వేల యొక్క ప్రామాణిక ఫంక్షన్లకు SSDP ప్రోటోకాల్ లైబ్రరీని జోడిస్తాము. SSDP ద్వారా ఈ కంట్రోలర్ను యాక్సెస్ చేస్తున్నప్పుడు, ఇది ప్రామాణిక ప్రతిస్పందనకు కనెక్ట్ చేయబడిన పరికరాల జాబితాను జోడిస్తుంది. ఈ సమాచారం ఆధారంగా, బ్రౌజర్ ఒక పేజీని రూపొందిస్తుంది. సాధారణంగా ఇది ఇలా కనిపిస్తుంది:
వెబ్ ఇంటర్ఫేస్
PWA అప్లికేషన్
"ssdpList":
{
"id": 94967291, // уникальный идентификатор устройства
"ip": "192.168.x.x", // ip адрес в сети
"type": "thermostat" // тип устройства
},
{
"id": 94967292,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967293,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 13587532,
"type": "switch"
},
{
"id": 98412557,
"type": "smoke"
},
{
"id": 57995113,
"type": "contact_sensor"
},
{
"id": 74123668,
"type": "temperature_humidity_pressure_sensor"
},
{
"id": 74621883,
"type": "temperature_humidity_sensor"
}
పరికరాలు ఒకదానికొకటి స్వతంత్రంగా జోడించబడతాయని ఉదాహరణ చూపిస్తుంది. వాటి స్వంత IP చిరునామాలతో 3 థర్మోస్టాట్లు మరియు ప్రత్యేక IDలతో 5 విభిన్న సెన్సార్లు కనెక్ట్ చేయబడ్డాయి. సెన్సార్ Wi-Fi నెట్వర్క్కి కనెక్ట్ చేయబడితే, దానికి దాని స్వంత IP ఉంటుంది; అది గేట్వేకి కనెక్ట్ చేయబడితే, పరికరం యొక్క IP చిరునామా గేట్వే యొక్క IP చిరునామాగా ఉంటుంది.
మేము పరికరాలతో కమ్యూనికేట్ చేయడానికి WebSocketని ఉపయోగిస్తాము. ఇది రిక్వెస్ట్లను పొందడానికి మరియు కనెక్ట్ చేసేటప్పుడు లేదా మార్చేటప్పుడు డైనమిక్గా సమాచారాన్ని పొందేందుకు పోల్చితే వనరుల ఖర్చులను తగ్గించడానికి మిమ్మల్ని అనుమతిస్తుంది.
సర్వర్ను దాటవేస్తూ బ్లాక్కు చెందిన పరికరం నుండి డేటా నేరుగా తీసుకోబడుతుంది. అందువల్ల, ఏదైనా పరికరం విఫలమైతే, సిస్టమ్ ఆపరేట్ చేయడం కొనసాగుతుంది. వెబ్ ఇంటర్ఫేస్ జాబితా నుండి తప్పిపోయిన పరికరాన్ని ప్రదర్శించదు. కానీ నష్టం గురించి సిగ్నల్, అవసరమైతే, వినియోగదారు యొక్క అప్లికేషన్లో నోటిఫికేషన్ రూపంలో వస్తుంది.
ఈ విధానాన్ని అమలు చేయడానికి మొదటి ప్రయత్నం PWA అప్లికేషన్. ఇది వినియోగదారు పరికరంలో బ్లాక్ బేస్ను నిల్వ చేయడానికి మరియు అవసరమైన డేటాను మాత్రమే అభ్యర్థించడానికి మిమ్మల్ని అనుమతిస్తుంది. కానీ నిర్మాణం యొక్క విశేషములు కారణంగా, ఈ ఎంపిక అసంపూర్తిగా ఉంది. మరియు ఒకే ఒక మార్గం ఉంది - Android మరియు IOS కోసం స్థానిక అప్లికేషన్, ఇది ప్రస్తుతం యాక్టివ్ డెవలప్మెంట్లో ఉంది. డిఫాల్ట్గా, అప్లికేషన్ అంతర్గత నెట్వర్క్లో మాత్రమే పని చేస్తుంది. అవసరమైతే, మీరు ప్రతిదీ బాహ్య నియంత్రణకు బదిలీ చేయవచ్చు. కాబట్టి, వినియోగదారు స్థానిక నెట్వర్క్ నుండి నిష్క్రమించినప్పుడు, అప్లికేషన్ స్వయంచాలకంగా క్లౌడ్కు మారుతుంది.
బాహ్య నియంత్రణ - పేజీ యొక్క పూర్తి నకిలీ. పేజీ సక్రియం చేయబడినప్పుడు, వినియోగదారు సర్వర్కు లాగిన్ చేయవచ్చు మరియు వారి వ్యక్తిగత ఖాతా ద్వారా పరికరాలను నిర్వహించవచ్చు. అందువలన, సర్వర్ దాని కార్యాచరణను విస్తరిస్తుంది, ఇంటి వెలుపల ఉన్నప్పుడు పరికరాలను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు పోర్ట్ ఫార్వార్డింగ్ లేదా అంకితమైన IPతో ముడిపడి ఉండదు.
అందువల్ల, పై ఎంపికకు సర్వర్ విధానం యొక్క ప్రతికూలతలు లేవు మరియు కొత్త పరికరాలను కనెక్ట్ చేయడంలో వశ్యత రూపంలో అనేక ప్రయోజనాలను కూడా కలిగి ఉంది.
థర్మోస్టాట్ గురించి
మా థర్మోస్టాట్ను ఉదాహరణగా ఉపయోగించి నియంత్రణ వ్యవస్థను చూద్దాం.
అందించినది:
- ప్రతి థర్మోస్టాట్కు ఉష్ణోగ్రత నియంత్రణ (ప్రత్యేక బ్లాక్గా ప్రదర్శించబడుతుంది);
- థర్మోస్టాట్ ఆపరేషన్ షెడ్యూల్ (ఉదయం, మధ్యాహ్నం, సాయంత్రం, రాత్రి) సెట్ చేస్తోంది;
- Wi-Fi నెట్వర్క్ను ఎంచుకోవడం మరియు దానికి పరికరాన్ని కనెక్ట్ చేయడం;
- పరికరాన్ని "ఎయిర్ ద్వారా" నవీకరిస్తోంది;
- MQTTని సెటప్ చేస్తోంది;
- పరికరం కనెక్ట్ చేయబడిన నెట్వర్క్ను కాన్ఫిగర్ చేయండి.
వెబ్ ఇంటర్ఫేస్ ద్వారా నియంత్రించడంతో పాటు, మేము క్లాసిక్ను అందించాము - డిస్ప్లేపై క్లిక్ చేయడం ద్వారా. బోర్డులో Nextion NX3224T024 2.4-అంగుళాల మానిటర్ ఉంది. పరికరంతో పని చేసే సౌలభ్యం కారణంగా ఎంపిక అతనిపై పడింది. కానీ మేము STM32 ఆధారంగా మా స్వంత మానిటర్ను అభివృద్ధి చేస్తున్నాము. దీని కార్యాచరణ Nextion కంటే అధ్వాన్నంగా లేదు, కానీ ఇది తక్కువ ఖర్చు అవుతుంది, ఇది పరికరం యొక్క తుది ధరపై సానుకూల ప్రభావాన్ని చూపుతుంది.
ఏదైనా స్వీయ-గౌరవనీయ థర్మోస్టాట్ స్క్రీన్ వలె, మా తదుపరిది వీటిని చేయగలదు:
- వినియోగదారుకు అవసరమైన ఉష్ణోగ్రతను సెట్ చేయండి (కుడివైపు ఉన్న బటన్లను ఉపయోగించి);
- షెడ్యూల్ చేయబడిన ఆపరేషన్ మోడ్ను ఆన్ మరియు ఆఫ్ చేయండి (బటన్ H);
- ప్రదర్శన రిలే ఆపరేషన్ (ఎడమవైపు బాణం);
- పిల్లల రక్షణను కలిగి ఉంటుంది (లాక్ తొలగించబడే వరకు భౌతిక క్లిక్లు నిరోధించబడతాయి);
- WiFi సిగ్నల్ బలాన్ని ప్రదర్శిస్తుంది.
అదనంగా, మానిటర్ని ఉపయోగించి మీరు వీటిని చేయవచ్చు:
- వినియోగదారు ఇన్స్టాల్ చేసిన సెన్సార్ రకాన్ని ఎంచుకోండి;
- చైల్డ్ లాక్ ఫీచర్ని నిర్వహించండి;
- ఫర్మ్వేర్ను నవీకరించండి.
WiFi బార్పై క్లిక్ చేయడం ద్వారా, వినియోగదారు కనెక్ట్ చేయబడిన నెట్వర్క్ గురించి సమాచారాన్ని కనుగొంటారు. హోమ్కిట్ ఫర్మ్వేర్లో పరికరాన్ని జత చేయడానికి QR కోడ్ ఉపయోగించబడుతుంది.
ప్రదర్శనతో పని చేసే డెమో:
అభివృద్ధి చేశాం
మీరు అడగవచ్చు, "మీ థర్మోస్టాట్ ప్రత్యేకత ఏమిటి?" ఇప్పుడు మార్కెట్లో Wi-Fi ఫంక్షన్, షెడ్యూల్డ్ ఆపరేషన్ మరియు టచ్ కంట్రోల్తో అనేక థర్మోస్టాట్లు ఉన్నాయి. మరియు ఔత్సాహికులు అత్యంత జనాదరణ పొందిన స్మార్ట్ హోమ్ సిస్టమ్లతో పరస్పర చర్య చేయడానికి మాడ్యూల్లను వ్రాశారు (Majordomo, HomeAssistant, మొదలైనవి).
మా థర్మోస్టాట్ అటువంటి సిస్టమ్లకు అనుకూలంగా ఉంటుంది మరియు పైన పేర్కొన్నవన్నీ కలిగి ఉంటుంది. కానీ విలక్షణమైన లక్షణం ఏమిటంటే, థర్మోస్టాట్ నిరంతరం మెరుగుపరచబడుతోంది, సిస్టమ్ యొక్క వశ్యతకు ధన్యవాదాలు. ప్రతి నవీకరణతో కార్యాచరణ విస్తరిస్తుంది. సిస్టమ్ నిర్వహణ యొక్క ప్రామాణిక పద్ధతికి (షెడ్యూల్ ప్రకారం), మేము అనుకూలమైనదాన్ని జోడిస్తాము. యూజర్ యొక్క జియోలొకేషన్ను పొందేందుకు అప్లికేషన్ మిమ్మల్ని అనుమతిస్తుంది. దీనికి ధన్యవాదాలు, సిస్టమ్ దాని స్థానాన్ని బట్టి ఆపరేటింగ్ మోడ్లను డైనమిక్గా మారుస్తుంది. మరియు వాతావరణ మాడ్యూల్ వాతావరణ పరిస్థితులకు అనుగుణంగా మిమ్మల్ని అనుమతిస్తుంది.
మరియు విస్తరణ. ఎవరైనా తమ ప్రస్తుత సంప్రదాయ థర్మోస్టాట్ని మాతో భర్తీ చేయవచ్చు. కనీస ప్రయత్నంతో. మేము మార్కెట్లో అత్యంత జనాదరణ పొందిన 5 సెన్సార్లను ఎంచుకున్నాము మరియు వాటికి మద్దతును జోడించాము. సెన్సార్ ప్రత్యేకమైన లక్షణాలను కలిగి ఉన్నప్పటికీ, వినియోగదారు దానిని మా థర్మోస్టాట్కు కనెక్ట్ చేయగలరు. దీన్ని చేయడానికి, మీరు నిర్దిష్ట సెన్సార్తో పని చేయడానికి థర్మోస్టాట్ను క్రమాంకనం చేయాలి. మేము సూచనలను అందిస్తాము.
థర్మోస్టాట్ లేదా ఏదైనా ఇతర పరికరాన్ని కనెక్ట్ చేసినప్పుడు, ఇది ఏకకాలంలో ప్రతిచోటా కనిపిస్తుంది: వెబ్ ఇంటర్ఫేస్లో మరియు PWA అప్లికేషన్లో. పరికరాన్ని జోడించడం స్వయంచాలకంగా జరుగుతుంది: మీరు దీన్ని Wi-Fi నెట్వర్క్కి కనెక్ట్ చేయాలి.
మా సిస్టమ్కు సర్వర్ అవసరం లేదు మరియు అది విఫలమైతే, అది గుమ్మడికాయగా మారదు. భాగాలలో ఒకటి విఫలమైనప్పటికీ, సిస్టమ్ అత్యవసర దృష్టాంతంలో పనిచేయడం ప్రారంభించదు. కంట్రోలర్లు, సెన్సార్లు, పరికరాలు - ప్రతి మూలకం సర్వర్ మరియు క్లయింట్ రెండూ, కాబట్టి పూర్తిగా స్వయంప్రతిపత్తి.
ఆసక్తి ఉన్నవారి కోసం, మా సోషల్ నెట్వర్క్లు:
మెయిల్: [ఇమెయిల్ రక్షించబడింది]
PS సర్వర్ని వదిలివేయమని మేము మిమ్మల్ని ప్రోత్సహించము. మేము MQTT సర్వర్కు కూడా మద్దతిస్తాము మరియు మా స్వంత క్లౌడ్ని కలిగి ఉన్నాము. సిస్టమ్ యొక్క స్థిరత్వం మరియు విశ్వసనీయతను సరికొత్త స్థాయికి తీసుకురావడమే మా లక్ష్యం. తద్వారా సర్వర్ బలహీనమైన అంశం కాదు, కానీ కార్యాచరణను పూర్తి చేస్తుంది మరియు సిస్టమ్ను మరింత సౌకర్యవంతంగా చేస్తుంది.
మూలం: www.habr.com