వర్క్

స్మార్ట్ లాంప్ ఎలా నిర్మించాలి: 3 స్టెప్స్ (పిక్చర్స్ తో)

মাঝে মাঝে টিà¦à¦¿ অ্যাড দেখে চরম মজা লাগে

মাঝে মাঝে টিà¦à¦¿ অ্যাড দেখে চরম মজা লাগে

విషయ సూచిక:

Anonim

ఈ బోధించదగినది మీ స్వంత స్మార్ట్ లాంప్‌ను నిర్మించడం! ఈ ఇన్‌స్ట్రక్టబుల్ చాలా లోతుగా ఉంటుంది మరియు మీ స్వంత అందమైన స్మార్ట్ లాంప్‌ను రూపొందించడంలో మరియు నిర్మించడంలో మీరు విజయవంతం కావాల్సిన ప్రతిదానిపై మేము వెళ్తాము! ఈ ఇన్‌స్ట్రక్టబుల్ మీకు ఫ్యూజన్ 360 గురించి కొంచెం తెలుసునని మరియు ఎలక్ట్రానిక్స్‌లో మీ అనుభవం కొంచెం అధునాతనమైనదని అనుకుంటుంది, అయితే ఇది చాలా క్షుణ్ణంగా ఉంటుంది మరియు 3 డి ప్రింటర్‌కు అప్‌లోడ్ చేయడానికి మరియు మీ దీపాన్ని ముద్రించడానికి అవసరమైన అన్ని STL ఫైల్‌లను కలిగి ఉంటుంది. అన్ని స్కీమాటిక్స్ మరియు కోడ్ కూడా చేర్చబడ్డాయి! ఇవి మీ స్వంత స్మార్ట్ లాంప్‌ను నిర్మించడంలో మీకు సహాయపడతాయి!

ఇంటర్నెట్ ఆఫ్ థింగ్స్: ఎ "స్మార్ట్" లాంప్

నేటి టెక్ ప్రపంచంలో ఇంటర్నెట్ ఆఫ్ థింగ్స్ ఒక సంచలనం. మీరు ప్రతిచోటా వింటారు కానీ ఎవరూ దాని నిర్వచనాన్ని నిజంగా పిన్ చేయలేరు. ఇది నిజంగా వేర్వేరు వ్యక్తులకు విభిన్న విషయాలను సూచిస్తుంది. టెక్ ప్రపంచంలోనే అతిపెద్ద ఆటగాళ్ళు, ప్రపంచంలోని గూగల్స్ మరియు ఫేస్‌బుక్‌లు ఒక నిర్వచనాన్ని అంగీకరిస్తున్నట్లు కనిపించడం లేదు. అయినప్పటికీ, ప్రతి కంపెనీకి ఇప్పుడు IoT సంబంధిత అంతర్గత సమూహం లేదా విభాగం ఉన్నట్లు అనిపిస్తుంది ఎందుకంటే గణాంకాలు ' 2020 నాటికి 40 బిలియన్ కనెక్ట్ చేసిన పరికరాలు 'మరియు' కనెక్ట్ చేసిన పరికర పరిష్కారాల కోసం వచ్చే 5 సంవత్సరాలలో కంపెనీలు 6 ట్రిలియన్ డాలర్లు ఖర్చు చేస్తాయి ' వృద్ధికి సంభావ్య అవకాశాలను కోల్పోగలరా అని కంపెనీలను తిరిగి అంచనా వేయమని బలవంతం చేయండి. కానీ ఇది IoT నుండి ఎవరినీ నిరుత్సాహపరచకూడదు. నిజానికి, IoT నమ్మశక్యం. ఇంతకు మునుపు పెద్ద మొత్తంలో డేటాను ఉపయోగించుకునే అవకాశం మాకు లభించలేదు. మీ చుట్టుపక్కల ఉన్న స్థానిక వాతావరణ నమూనాల ఫలితంగా మీ ఇంటి తోటలో ఏ రకమైన మొక్కలు వృద్ధి చెందుతాయో మీ కారు ఎప్పుడు సేవ చేయవలసి ఉంటుంది వంటి విషయాల నుండి ఇంతకు ముందు మాకు తెలియని చాలా ఆసక్తికరమైన విషయాలను మేము చెప్పగలం. నేల రకాలు మరియు సంతృప్త స్థాయిలు. IoT మీ పరికరాల నిర్వహణ నుండి work హించిన పనిని తీసుకుంటుంది; సంక్షిప్తంగా, ఇది జీవితాన్ని కొద్దిగా సులభం చేస్తుంది. మేము ఎల్లప్పుడూ డేటాను కలిగి ఉన్నాము; వాస్తవానికి దానితో ఏమి చేయాలో మాకు తెలియదు. IoT దాని ప్రారంభ దశలో ఉంది; ఇది విపరీతమైన రేటుతో పెరుగుతోంది, మరియు పరిశ్రమ IoT యొక్క పెరుగుతున్న కొన్ని నొప్పులను పరిష్కరించడం ప్రారంభించినప్పుడు, మేము నిజంగా కనెక్ట్ చేయబడిన పరికరాలను చూడటం ప్రారంభిస్తాము. మీ టోస్టర్ మీ ఫ్రిజ్‌తో మాట్లాడే భవిష్యత్ చిత్రాలను మేము చూడవచ్చు మరియు అవి రెండూ మీ టీవీతో మాట్లాడతాయి. నెట్‌వర్కింగ్ ప్రోటోకాల్‌ల సమస్య పరిష్కరించబడే వరకు ఆ దర్శనాలను గ్రహించలేము; అనగా, ఫిలిప్స్ వంటి కొన్ని కంపెనీలు I²C వంటి పరికరం యొక్క చాలా సాంప్రదాయ పద్ధతులకు కాపీ హక్కులను కలిగి ఉన్నాయి (ఇవి ఏమిటో మీకు తెలియకపోతే చింతించకండి, ఇది దీపం పూర్తి చేసే మీ సామర్థ్యాన్ని ప్రభావితం చేయదు :)), అక్కడ ఉపయోగించిన భాష యొక్క స్వభావం కారణంగా, చాలా మంది చిప్ తయారీదారులు నిర్దిష్ట ప్రోటోకాల్ యొక్క వైవిధ్యాలను సృష్టించడం ద్వారా ఈ కాపీరైట్‌ను పొందడానికి అనుమతించారు. SPI, UART, ANT, వంటి అన్ని ఇతర ప్రధాన వాటితో ఇది జరుగుతుంది. ఇది పరికరాల మధ్య హ్యాండ్‌షేకింగ్‌పై భారీ సంఖ్యలో ప్రస్తారణలను సృష్టించింది, ఇది ఒక సంస్థ నుండి కనెక్ట్ చేయబడిన పరికరం మరొక పరికరంతో మాట్లాడటం అసాధ్యం చేసింది. ఏదేమైనా, IoT ఇంకా శైశవదశలోనే ఉంది మరియు మీ రోజువారీ జీవితంలో ఎదగడానికి మరియు ఉపయోగకరంగా ఉండటానికి చాలా సామర్థ్యాన్ని కలిగి ఉంది!

మీరు ఇంకా చదువుతుంటే, అద్భుతం! మీరు IoT పట్ల మక్కువ చూపుతున్నారని లేదా మీరు ఈ దీపం లేదా రెండింటినీ నిజంగా ఇష్టపడ్డారని దీని అర్థం! ఎలాగైనా నేను స్మార్ట్ లాంప్‌ను విచ్ఛిన్నం చేస్తాను. ఇది ఒక IoT పరికరం, అంటే ఇది ఇంటర్నెట్‌కు అనుసంధానించబడి ఉంది మరియు ఆ డేటా ఆసక్తికరమైన ప్రయోజనాల కోసం ఉపయోగించబడుతుంది (నేను ఈ క్రింది వాటి గురించి మరింత వివరించాను). ఈ స్మార్ట్ లాంప్ వైఫై చిప్ మరియు మైక్రోకంట్రోలర్ ద్వారా ఇంటర్నెట్‌కు అనుసంధానించబడి ఉంది. అదనంగా, మీ టచ్ బటన్ ఇంటర్ఫేస్ కోసం కెపాసిటివ్ టచ్ బోర్డు ఉపయోగించబడుతుంది. ఐచ్ఛికంగా, మీ దీపం ప్రస్తుతం ఏ విధమైన లైటింగ్‌లో ఉందో చదవడానికి మీకు యాంబియంట్ లైట్ సెన్సార్‌ను చేర్చవచ్చు (కోడ్ దీనికి మద్దతును కలిగి ఉంటుంది) మరియు మీ దీపాన్ని ఎప్పుడు ఆన్ చేయాలో నిర్ణయించడానికి మీరు ఆ డేటాను ఉపయోగించవచ్చు. దీపం ఏదైనా WPA లేదా WPA2 వ్యక్తిగత నెట్‌వర్క్‌లకు (దురదృష్టవశాత్తు సంస్థ మద్దతు లేదు) లేదా WEP కి కనెక్ట్ అయ్యేలా కాన్ఫిగర్ చేయవచ్చు మరియు మీరు కాన్ఫిగర్ చేసిన ఏదైనా వ్యక్తిగత హోమ్ సర్వర్‌కు డేటాను పంపవచ్చు. మా దీపం కాన్ఫిగర్ చేయబడింది మరియు రిమోట్ సర్వర్‌కు కనెక్ట్ చేయబడింది, దాని నుండి డేటా గేమ్ ఇంజిన్‌లోకి లాగబడుతుంది. ఈ దీపం కొన్ని ఇంటర్నెట్ కనెక్టెడ్ లాంప్ కంటే చాలా ఎక్కువ.

స్మార్ట్ లాంప్ యొక్క ఉద్దేశ్యం మీ దీపం (లేదా పరికరం) యొక్క పూర్తి ప్రాప్యతను కలిగి ఉండటం మరియు మీ సిస్టమ్ గురించి అన్ని సమయాల్లో ఆసక్తికరమైన సమాచారాన్ని కలిగి ఉండటం. మేము గేమ్ ఇంజిన్‌ను ఉపయోగించి వర్చువల్ వాతావరణంలో మా దీపం యొక్క వర్చువల్ మోడల్‌ను నిర్మించాము. రెండు దీపాలను ఒకదానితో ఒకటి కనెక్ట్ చేయడానికి మరియు వాటిని ఒకదానికొకటి ప్రభావితం చేయడానికి మేము నెట్‌వర్కింగ్‌ను ఉపయోగించాము. వర్చువల్ మోడల్‌లో, మీరు మీ దీపాన్ని ఆన్ మరియు ఆఫ్ చేసి ప్రకాశాన్ని సర్దుబాటు చేయవచ్చు మరియు మీ భౌతిక దీపం ఈ మార్పులను తక్షణం మరియు రిమోట్‌గా ప్రతిబింబిస్తుంది. మరొక దిశలో, మీరు మీ దీపాన్ని ఆన్ మరియు ఆఫ్ చేయవచ్చు అలాగే ప్రకాశాన్ని మార్చవచ్చు మరియు మీ మోడల్ దీన్ని ఖచ్చితంగా ప్రతిబింబిస్తుంది. అదనంగా, మీ దీపం మీ నెట్‌వర్క్‌కు కనెక్ట్ కానప్పుడు, దీపం లెగసీ మోడ్‌లోకి ప్రవేశించి సాధారణ పని దీపానికి తిరిగి వస్తుంది. గేమ్ ఇంజిన్‌లో ఈ సమాచారం యొక్క వర్చువల్ మోడల్‌ను నిర్మించడం పూర్తిగా ఐచ్ఛికం; డేటాను పంపే ప్రదేశంగా పనిచేయడానికి లేదా గేమ్ ఇంజిన్ మోడల్ మీకు అందించే రిమోట్ కంట్రోల్ కలిగి ఉండటానికి మీరు ఏదైనా ఫ్రంట్ ఎండ్ వెబ్ క్లయింట్ లేదా ఆండ్రాయిడ్ లేదా iOS అనువర్తనాన్ని సులభంగా నిర్మించవచ్చు.

నేను వైఫై ప్రారంభించబడిన దీపాన్ని ఎందుకు కోరుకుంటున్నాను?

ఈ ప్రాజెక్టులో నిజమైన విలువ భౌతిక దీపం కాదు; కనెక్ట్ చేయబడిన పరికరాల నెట్‌వర్క్‌ను పర్యవేక్షించే మరియు నియంత్రించే సామర్థ్యాన్ని కలిగి ఉండటంతో ఇది అందంగా రూపొందించబడింది మరియు చాలా మంచి దీపం. ఉదాహరణకు, ఒక కర్మాగారాన్ని తీసుకోండి. ఒక కర్మాగారంలో, ఇలాంటి పనులు చేసే యంత్రాలు చాలా ఉన్నాయి. పారిశ్రామిక యంత్రాల నెట్‌వర్క్‌ను కనెక్ట్ చేయడం ద్వారా డేటాను సేకరించేటప్పుడు మరియు వారి యంత్రాల స్థితిని పర్యవేక్షించేటప్పుడు నిర్వాహకులు తమ మొక్కలను రిమోట్‌గా ఆపరేట్ చేయడంలో సహాయపడతారు. మీరు సేకరించిన డేటా వాస్తవానికి చాలా ముఖ్యమైనది మరియు స్పష్టంగా తెలియని తీర్మానాలు చేయడానికి సహాయపడుతుంది. ఉదాహరణకు, కారుతో, మీరు ఇంజిన్ ఉష్ణోగ్రత, మీ కారు ప్రయోగించే శక్తి, నిమిషానికి విప్లవాలు మరియు మైలేజ్ వంటి వాటిని పర్యవేక్షించే IoT సెన్సార్లను ఉపయోగించవచ్చు. మీ కారు యొక్క మొత్తం ఆరోగ్యాన్ని కొంతవరకు నిశ్చయంగా గుర్తించడానికి వీటిని ఉపయోగించవచ్చు. మీ చమురు లేదా మీ టైర్లను ఎప్పుడు మార్చాలో తెలుసుకోవలసిన బదులు, కారు ఇప్పటికే తెలుసుకొని మీ ఫోన్‌కు నోటిఫికేషన్ల ద్వారా మీకు తెలియజేస్తుంది. అదనంగా, కార్లను కలిగి ఉన్న డేటా సెట్ నుండి డేటా పొరను జోడించడం మరియు మైలేజీకి సంబంధించి వాటి సగటు సర్వీసింగ్ సమయం ఆ అంచనాను మరింత ఖచ్చితమైనదిగా చేయడానికి సహాయపడుతుంది. మరొక ఉదాహరణ, పారిశ్రామిక భాగాలను యంత్రంగా చేయడానికి 3D ప్రింటర్లను ఉపయోగించే కర్మాగారం రాత్రి ఉద్యోగాలు పూర్తయినప్పుడు తెలుసుకోవడం ద్వారా ఎంతో ప్రయోజనం పొందుతుంది. అది జరిగితే, మేనేజర్ వారి ఫోన్‌లో ఒక అనువర్తనం ద్వారా నోటిఫికేషన్‌ను స్వీకరిస్తారు, ఇది యుటిలిటీ ఖర్చులపై ఆదా చేసే అన్ని నిష్క్రియాత్మక ప్రింటర్‌లను ఆపివేయడానికి మేనేజర్‌ను అనుమతిస్తుంది. మీ యంత్రాలతో ఏమి జరుగుతుందో తెలుసుకోవడం, తెలివిగా మరియు రిమోట్‌గా పనిచేయగలగడం మరియు ఆ ప్రక్రియ అంతా డబ్బు ఆదా చేయడం వంటి సౌలభ్యం ఏమిటంటే నేటి టెక్ ప్రపంచంలో IoT అంత పెద్ద ఒప్పందం ఎందుకు. ఇంకా చెప్పాలంటే, స్మార్ట్ లాంప్స్ మనీ సేవర్స్ ???

సామాగ్రి:

దశ 1: దీపం యొక్క రూపకల్పన మరియు సాధారణ సమావేశం

రూపకల్పన

ఏదైనా రూపకల్పన చేసేటప్పుడు అడ్డంకులు మరియు లక్ష్యాలను గుర్తించడం ద్వారా ప్రారంభించడం చాలా ముఖ్యం. మా విషయంలో, ఇంటర్‌ఫేస్ ఎవరికైనా నడవడానికి మరియు ఉపయోగించుకునేంత స్పష్టంగా ఉండాలి. రోజు చివరిలో మేము ఇంకా దీపం నిర్మిస్తున్నాము మరియు సాంకేతిక పరిజ్ఞానాన్ని జోడించడం దాని నుండి తప్పుకోలేదు. డిజిటల్ దీపం నుండి వినియోగదారు ఇన్పుట్ కారణంగా బటన్లు "స్థితిలేనివి" గా ఉండాల్సి వచ్చింది. స్థితిలేనిది, భౌతిక స్థితిని కలిగి ఉన్న టోగుల్ స్విచ్‌లు మరియు ఇన్‌పుట్‌ల గురించి మనం స్పష్టంగా తెలుసుకోవాలి. ప్రామాణిక స్విచ్‌లు ఉపయోగించినట్లయితే, స్విచ్ యొక్క స్థితి కాంతి స్థితితో సమలేఖనం కాకపోవచ్చు మరియు వినియోగదారుకు గందరగోళాన్ని కలిగిస్తుంది.

దీపం యొక్క శరీరాన్ని 3 డి ప్రింట్ చేయాలనే నిర్ణయం ద్వారా సేంద్రీయ రూపం కూడా ప్రభావితమైంది. 3 డి ప్రింటింగ్ ద్వారా మేము శరీరాన్ని మ్యాచింగ్ చేసే సమయాన్ని తగ్గించగలిగాము మరియు మాన్యువల్ ఫాబ్రికేషన్ ద్వారా అసాధ్యమైన సంక్లిష్టతలను పరిచయం చేయగలిగాము. లోపం చాలా రోజులు శుభ్రం మరియు ఉపరితలాలు పూర్తి చేయడం అవసరం. 3 డి ప్రింటింగ్ తరచూ ఉత్పత్తి చేసే కఠినమైన ఉపరితలాలు దీపానికి తుది ఉత్పత్తి-నాణ్యత ముగింపు ఇవ్వడానికి పెయింట్ చేయడానికి ముందే ఇసుకతో నింపబడి ఉంటాయి.

ప్రింటింగ్

ఈ దీపాన్ని ముద్రించాల్సిన అన్ని ఎస్‌టిఎల్ ఫైళ్లు గ్రాబ్‌క్యాడ్‌లో చూడవచ్చు.

తగినంత పెద్ద కవరు ఉన్న అన్ని 3 డి ప్రింటర్లు ఈ ముక్కలను ముద్రించగలిగినప్పటికీ, అందుబాటులో ఉన్న సహనాలు మరియు పదార్థాలు భిన్నంగా ఉండవచ్చు అని అర్థం చేసుకోవాలి. దీపం యొక్క శరీరం స్ట్రాటాసిస్ ఫోర్టస్ 450 ఎంసిలో ముద్రించబడింది. బటన్లు మరియు డిఫ్యూజర్ స్ట్రాటాసిస్ ఆబ్జెట్ కోనెక్స్ 500 లో ముద్రించబడ్డాయి.

దీపం యొక్క శరీరాన్ని ముద్రించేటప్పుడు విన్యాసాన్ని చాలా ముఖ్యం ఎందుకంటే కలప వలె 3D ప్రింట్లలో కూడా ధాన్యం ఉంటుంది. మెడకు గరిష్ట బలాన్ని ఇవ్వడానికి దీపం దాని వైపున ముద్రించబడిందని మీరు అనుకోవాలి. ముద్రణ యొక్క దృశ్యమాన ప్రాతినిధ్యం కోసం జోడించిన ఫోటోలను సూచించండి.

పూర్తి

ఈ తదుపరి దశలు ఒక 3D ముద్రణ యొక్క ఉపరితలాన్ని "ముద్రించినవి" గా చూడని స్థాయికి శుద్ధి చేసే నా ప్రక్రియను వివరిస్తాయి మరియు డిఫ్యూజర్ మినహా అన్ని భాగాలకు వర్తిస్తాయి.

3 డి ప్రింటర్లు ఇప్పటికీ తయారీదారు మరియు వినియోగదారు వర్గాలలో అన్ని రకాల సంభావిత హైప్‌లను కలిగి ఉన్నప్పటికీ, అవి ప్రధానంగా ఒక సాధనం అని అర్థం చేసుకోవాలి. ఇది మీ భౌతిక నమూనాకు గతంలో కంటే వేగంగా మిమ్మల్ని సంప్రదించడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు వేగం సంపాదించినప్పటికీ (చాలా ఇతర పద్ధతులపై) మరియు ఖర్చులను తగ్గించినప్పటికీ (ఇంజెక్షన్ మోల్డింగ్‌తో పోలిస్తే), శుభ్రపరిచే సరసమైన బిట్ ఉంటుంది.

దశ 1: అన్ని సహాయక సామగ్రిని తొలగించండి / కరిగించండి.
దశ 2: మీడియం కోర్సు (120 గ్రిట్) ఇసుక అట్టతో ముద్రణను తేలికగా ఇసుక వేయండి
దశ 3: ప్లాస్టిక్‌తో అనుకూలమైన ఎపోక్సీ గ్లూతో దీపం యొక్క ఎగువ మరియు దిగువ (టోపీ కాదు) జిగురు (నేను 5 నుండి 10 నిమిషాల ఎపోక్సీని సిఫార్సు చేస్తున్నాను. మిగిలిన ముద్రణతో సున్నితంగా ఉండే వరకు జిగురును ఇసుకతో వేయండి.
దశ 4: ముద్రణ పొరలచే సృష్టించబడిన చీలికలను పూరించడానికి బోండో యొక్క పలుచని పొరను వర్తించండి.
దశ 5: ఎండిన తర్వాత, మీరు ముద్రణను చూసేవరకు ఇసుక బోండో వెనక్కి తగ్గండి. 120 గ్రిట్ ఇంకా బాగానే ఉన్నప్పటికీ, మీరు దీన్ని 80 గ్రిట్‌తో ప్రారంభించవచ్చు. ఎల్లప్పుడూ ముసుగు ధరించి, బాగా వెంటిలేషన్ చేసిన ప్రదేశంలో పని చేయండి. మీ ముద్రణలో ఇసుక వేయవద్దు, అసలు జ్యామితిని సవరించకుండా మేము చీలికలను పూరించడానికి ప్రయత్నిస్తున్నాము.
దశ 6: స్పర్శకు సంపూర్ణ మృదువైనంత వరకు అవసరమైన 4 మరియు 5 దశలను పునరావృతం చేయండి, తరువాత 220 గ్రిట్‌తో ఇసుక.
దశ 7: తడిసిన, మెత్తటి రాగ్‌తో ముద్రణను శుభ్రపరచండి.

శరీరాన్ని పెయింట్ చేయండి

చివరి ముద్రణ 3 పొరలలో పెయింట్ చేయబడింది: సాండబుల్ ప్రైమర్, ఎనామెల్ పెయింట్ (ఏదైనా రంగు) మరియు మాట్టే స్పష్టమైన ఎనామెల్. ప్రైమింగ్ మరియు పెయింటింగ్ దశలను వేరు చేయడం ద్వారా (మరియు 2-ఇన్ -1 రకాల పెయింట్లను ఉపయోగించడం లేదు) మీరు పెయింట్ వేయడానికి ముందు చివరి ఉపరితల లోపాలను పట్టుకోవటానికి ఇది మిమ్మల్ని అనుమతిస్తుంది. మాట్టే ఎనామెల్ నిగనిగలాడేంత తేలికగా గీతలు పడదని నేను కనుగొన్నాను. గాని ప్రయత్నించడానికి సంకోచించకండి!

దశ 1: అంతర్గత ఉపరితలాలను టేప్ చేయండి (బేస్ మరియు LED లు హుడ్‌లో ఎక్కడ ఉన్నాయి)
దశ 2: దీపాన్ని ఉంచండి / వేలాడదీయండి, తద్వారా మీరు దానిని తాకకుండా తిప్పవచ్చు. అంతర్గత ట్యాబ్‌ల ద్వారా తలక్రిందులుగా వేలాడదీయడానికి అనుమతించే గాలము నిర్మించమని నేను సిఫార్సు చేస్తున్నాను. బేస్ క్యాప్ అదే పెయింట్ పొందుతుంది
దశ 3: ప్రైమర్ యొక్క 2 మీడియం పొరలను వర్తించండి. ఒక గంట లేదా అంతకంటే ఎక్కువసేపు ఆరనివ్వండి.
దశ 4: 220 గ్రిట్ ఇసుక అట్టతో అన్ని ప్రాధమిక ఉపరితలాలను తేలికగా ఇసుక. ఉపరితల లోపాలున్న ప్రాంతాలపై దృష్టి పెట్టండి, కానీ చాలా ఎక్కువ కాదు; మేము దానిలో ఒక గొయ్యిని ఇసుక చేయడానికి ప్రయత్నించడం లేదు.
దశ 5: ప్రైమర్ యొక్క తేలికపాటి పొరను తిరిగి వేలాడదీయండి. మీరు పూరించడానికి ఏదైనా కఠినమైన ప్రాంతాలు ఉంటే, ఈ ప్రాంతాలకు కొంచెం బరువైన కోటు వేయడం సహాయపడుతుంది. ఒక గంట లేదా అంతకంటే ఎక్కువసేపు ఆరనివ్వండి.
దశ 6: తుది ఇసుక కోసం 320 గ్రిట్ ఇసుక అట్టను ఉపయోగించవచ్చు. పదునైన అంచులను పదునుగా ఉంచడం మరియు సమానంగా ఇసుక వేయడంపై దృష్టి పెట్టండి.
దశ 7: ఇప్పుడు మనం పెయింట్ ఎనామెల్ యొక్క సన్నని మరియు మధ్యస్థ పొరను వర్తించాలనుకుంటున్నాము. పొడిగా ఉండటానికి కనీసం పూర్తి రోజు ఇవ్వండి.
దశ 8: 400 గ్రిట్ ఇసుక అట్టతో తేలికగా ఇసుక వేసి, తడిగా, వెలిగించని రాగ్‌తో శుభ్రంగా తుడవండి.
దశ 9: స్పష్టమైన, మాట్టే ఎనామెల్ యొక్క సన్నని మధ్యస్థ పొరను తిరిగి అమర్చండి. కనీసం ఒక రోజు ఆరనివ్వండి.

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

బటన్లను పెయింట్ చేయండి

బటన్లను చిత్రించడానికి దశలు పైన ఉన్నట్లుగా ఉంటాయి, LED ల నుండి కాంతి ప్రయాణించాల్సిన అవసరం ఉన్నందున పవర్ బటన్ పై ప్రైమర్ స్టెప్స్ మైనస్. బటన్లపై ఎక్కువ మందాన్ని నిర్మించకుండా దృష్టి పెట్టండి, ఎందుకంటే అవి దీపంలో తిరిగి సరిపోవు.

బటన్లను వ్యవస్థాపించండి

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

యాంబియంట్ లైట్ సెన్సార్‌ను ఇన్‌స్టాల్ చేయండి

ఈ దీపంలో ఉపయోగించే యాంబియంట్ లైట్ సెన్సార్ అడాఫ్రూట్ టిఎస్ఎల్ 2561 లైట్ సెన్సార్. LED లు వ్యవస్థాపించబడటానికి ముందు ఇది లోపలికి వెళ్లాలి. సెన్సార్ బోర్డ్ దిగువ నుండి వీలైనంత ఫ్లాట్ గా రిబ్బన్ కేబుల్ వ్యవస్థాపించాల్సిన అవసరం ఉంది. ఇది అదనపు మందగింపుతో దీపం యొక్క మెడకు ఇవ్వబడుతుంది. మీ ప్రింటర్ / టంకము ఉద్యోగాన్ని బట్టి, ఫిట్ కొంచెం గట్టిగా ఉండవచ్చు. మీకు కొంచెం ఎక్కువ గది అవసరమైతే పదునైన # 11 ఎక్సాక్టో కత్తి కీలకం.

LED స్ట్రిప్స్‌ను ఇన్‌స్టాల్ చేయండి

LED స్ట్రిప్‌ను 3 నాలుగు సెగ్మెంట్లుగా కట్ చేయాలి (మరియు ఫోటోలో చూడవచ్చు). LED లపై అంటుకునే విధంగా నిర్మించబడింది, అవి వాటిని ఉంచడానికి సరిపోతాయి. అవన్నీ ఒకే ధోరణిలో ఇన్‌స్టాల్ చేయండి, ఎందుకంటే వాటిని కలిసి టంకము వేయడం సులభం అవుతుంది. అన్ని రంగులు మరియు 12V + ను సమాంతరంగా కరిగించాలి. స్ట్రిప్స్ వ్యవస్థాపించబడిన తర్వాత, మెడను తగ్గించండి మరియు టంకము నాలుగు రంగు కోడెడ్ సెంటర్ స్ట్రిప్కు దారితీస్తుంది. వేడి జిగురు టంకము కీళ్ళకు బలాన్ని చేకూరుస్తుంది. 12V + వైర్‌ను విద్యుత్ సరఫరాతో కనెక్ట్ చేయండి మరియు R, G, లేదా B వైర్‌లలో ఒకటి. మీరు మూడు కాంతిని ధృవీకరించిన తర్వాత, తదుపరి దశకు వెళ్లండి.

డిఫ్యూజర్‌ను ఇన్‌స్టాల్ చేయండి

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

దశ 2: ఎలక్ట్రానిక్స్ రాక్!

ఎలక్ట్రానిక్స్: మోడరన్ డే విజార్డ్రీ

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

భాగాల జాబితా:

ఈ దీపం యొక్క నెట్‌వర్కింగ్ మరియు ఎలక్ట్రానిక్‌లను పూర్తి చేయడానికి మీకు కావలసిన అన్ని విషయాలు క్రింద ఉన్నాయి!

  • 3D ప్రింటర్
  • అడాఫ్రూట్ నుండి WINC1500 బ్రేక్అవుట్ బోర్డు
  • N ఛానల్ MOFSETS యొక్క 3x
  • అడాఫ్రూట్ TSL2561 లైట్ సెన్సార్
  • అడాఫ్రూట్ MPR121 కెపాసిటివ్ టచ్ బోర్డ్
  • బ్యాక్ లైట్ కోసం LED లు పవర్ బటన్ (మీకు కొన్ని LED లు మాత్రమే అవసరం)
  • స్ట్రాండ్ కోర్ వైర్
  • వైర్ కట్టర్లు
  • వైర్ స్ట్రిప్పర్స్
  • సాలిడ్ కోర్ వైర్ (కెపాసిటివ్ టచ్ బటన్ల కోసం)
  • LED స్ట్రిప్
  • ద్వి-దిశాత్మక మార్పిడి రెగ్యులర్ (12V నుండి 5V వరకు)
  • టీన్సీ 3.2 లేదా ఆర్డునో మెగా (విస్తరించిన మెమరీ అవసరం)
  • స్పార్క్ఫన్ ప్రోటోబోర్డులలో 3x (లేదా ఇలాంటి పరిమాణంలో ఏదో - పెద్దది కానప్పటికీ!)
  • 12 వి డిసి విద్యుత్ సరఫరా మరియు 2.1 మిమీ బారెల్ జాక్ (లింక్ చేయబడిన వాటిలో రెండూ ఉన్నాయి!)
  • 3x 68 ఓం రెసిస్టర్లు (బ్యాక్‌లైట్ ఎల్‌ఈడీకి ఒకటి)
  • హీట్ ష్రింక్ గొట్టాలు 1/8 ''
  • బ్రెడ్‌బోర్డ్ (మీరు మొదట శాశ్వత సంస్కరణను ప్రోటోటైప్ చేయాలనుకుంటే)
  • వేడి తుపాకీ
  • టంకం ఐరన్ (లింక్‌లో టంకానికి సంబంధించిన ప్రతిదీ ఉంటుంది - టంకము కూడా ఉంది)
  • టంకము
  • నీరు (టంకము ప్యాడ్ శుభ్రం చేయడానికి)

దశ 1: టీనేసీకి వైఫై బ్రేక్‌అవుట్‌ను కనెక్ట్ చేయండి

ఈ దీపం కోసం కనెక్టివిటీని పొందడం 50% 'కూల్' కారకం మరియు ఈ పరికరం యొక్క 100% IoT భాగం కాబట్టి ఇది చాలా ముఖ్యమైనది. టీన్సీలో ప్రతి పిన్ను సరైన పిన్‌తో ఎలా కనెక్ట్ చేయాలో పై చిత్రం మీకు చూపిస్తుంది.

ఈ లింక్ అడాఫ్రూట్ నుండి వచ్చిన ట్యుటోరియల్ మరియు ప్రతి పిన్ను మైక్రోకంట్రోలర్‌కు ఎలా కనెక్ట్ చేయాలో దశల వారీగా మీకు చూపుతుంది. వారు ప్రత్యేకంగా పిన్ అవుట్‌లను కలిగి ఉన్న ఆర్డునోను ఉపయోగించారు. ఏదేమైనా, నేను పైన రెండు ఈగిల్ స్కీమాటిక్ చిత్రాలను చేర్చాను, ఏ వ్యక్తి అయినా వైఫై బోర్డ్‌ను టీన్సీకి సరిగ్గా కనెక్ట్ చేయడానికి సహాయపడుతుంది మరియు ఈ దీపంలో చేర్చబడిన ఇతర బోర్డులను కలిగి ఉంటుంది. మరింత "అడ్వాన్స్డ్ స్కీమాటిక్" లో, స్కీమాటిక్ ప్రతి బ్రేక్అవుట్ బోర్డ్ మరియు సబ్‌సర్క్యూట్ యొక్క విధులను విచ్ఛిన్నం చేస్తుంది మరియు ఏదైనా ఆధునిక తయారీదారులు బోర్డులను ఒకే బోర్డుగా ఏకీకృతం చేయాలనుకుంటే అన్ని సరైన కొలతలు కలుస్తుంది. "బేసిక్ స్కీమాటిక్" లో, వైఫై బోర్డు పిన్స్ బయటకు అంటుకునే నల్ల పెట్టెగా సంగ్రహించబడింది. ఆ పిన్‌లన్నీ పిన్‌తో సరిపోయే నెట్ లేబుల్‌లతో లేబుల్ చేయబడతాయి, వీటిని టీన్సీకి ఖచ్చితమైన నామకరణంతో కనెక్ట్ చేయాలి! ఈ స్కీమాటిక్‌ను ఏకీకృత బోర్డు రూపకల్పనకు ప్రాతిపదికగా ఉపయోగించకూడదు; దీనికి సరైన కొలతలు లేదా బోర్డులో సరైన సర్క్యూట్లు లేవు.

మీరు ప్రతి భాగాన్ని పరీక్షించి, మీ కనెక్షన్‌లను ధృవీకరించాలనుకుంటే ఇది బ్రెడ్‌బోర్డ్ చేయవచ్చు; మీరు ప్రస్తుతం ప్రోటోటైపింగ్ బోర్డులో పనిచేస్తున్నారని ఈ బోధించదగినది. మేము స్వతంత్రంగా పరీక్షలు మరియు అనేక బ్రెడ్‌బోర్డింగ్ పునరావృత్తులు చేసాము, కాబట్టి మీరు సౌకర్యవంతంగా నేరుగా కనెక్షన్‌ను టంకం వేయవచ్చు.

ఈ బోధన మీకు టంకము ఎలా తెలుసు అని అనుకుంటుంది. మీరు ఇంకా నేర్చుకుంటుంటే, ఈ లింక్‌ను చూడండి!

మీరు మొదట మీ హెడర్ పిన్‌లను టీన్సీకి టంకం చేయాలి. దీన్ని ఎలా చేయాలో మీకు తెలియకపోతే, ఈ లింక్‌ను చూడండి!

మీరు మీ టీనేజీకి మీ హెడర్ పిన్‌లను కరిగించిన తర్వాత, టీన్సీని స్పార్క్ ఫన్ బోర్డ్‌లో ఉంచండి మరియు టీనేసీని ఈ నిర్దిష్ట ధోరణిలో సమలేఖనం చేయండి: టీనేసీ వైపు క్వార్ట్జ్ క్రిస్టల్‌తో మీరు రెండు నిలువు స్తంభాలను ఉచితంగా కలిగి ఉండాలి (ఇది ఒక మెరిసే లోహ దీర్ఘచతురస్రం సాధారణంగా దానిపై ఒక సంఖ్యతో చెక్కబడి ఉంటుంది). ఇక్కడ మరింత తెలుసుకోండి! ఎదురుగా మూడు నిలువు స్తంభాలకు మాత్రమే సరిపోతుంది. పెరిఫెరల్స్ కారణంగా ఈ ధోరణి అవసరం. కెపాసిటివ్ టచ్ బోర్డ్, వైఫై బోర్డ్ మరియు లక్స్ సెన్సార్ అన్నీ ఎస్పిఐ కమ్యూనికేషన్ పిన్స్ ద్వారా కమ్యూనికేట్ చేస్తాయి. దీపాల స్థావరం యొక్క పరిమాణ పరిమితుల కారణంగా, మేము భాగాల జాబితాలో పేర్కొన్న ప్రోటోటైప్ బోర్డుల పరిమాణాన్ని మాత్రమే ఉపయోగించగలము. తత్ఫలితంగా, LED డ్రైవర్ సర్క్యూట్ (గేట్ నుండి PWM పిన్స్) కోసం అన్ని కనెక్షన్లకు సరిపోయే రెండు ధోరణులు మాత్రమే ఉన్నాయి, ఇవి ఒక వైపు 2 లేదా 3 నిలువు నిలువు వరుసలను కలిగి ఉంటాయి మరియు ఎదురుగా నిలువు వరుసల సంఖ్య ఉంటుంది మీరు మరొక వైపు నుండి ఎంచుకోలేదు (అనగా ఒకదానిపై 2 మరియు మరొకటి 3 లేదా దీనికి విరుద్ధంగా).

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

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

మీ సమయాన్ని ఆదా చేయడానికి, ముందుకు సాగండి మరియు మీరు ఏ సర్క్యూట్‌ల కోసం ఏ బోర్డులను ఉపయోగించాలో నియమించండి. బోర్డ్ 1 దానిపై మీ టీనేజీని మాత్రమే కలిగి ఉండాలి మరియు మరేమీ లేదు. బోర్డ్ టూలో వైఫై బోర్డు మాత్రమే ఉంది. బోర్డ్ 3 లో మీ LED డ్రైవర్ సర్క్యూట్, ద్వి-డైరెక్షనల్ స్విచింగ్ రెగ్యులేటర్ మరియు మీ DC గోడ విద్యుత్ సరఫరా నుండి LED లకు / మిగిలిన సర్క్యూట్కు విద్యుత్తు కోసం కనెక్టర్ ముక్క ఉంటుంది.

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

కనెక్షన్లను మార్గనిర్దేశం చేయడానికి పై స్కీమాటిక్ చిత్రాన్ని ఉపయోగించడం ఇక్కడ చివరి దశ. కనెక్షన్ యొక్క పొడవు కంటే కొంచెం పొడవుగా ఉండే స్ట్రాండ్ కోర్ వైర్ యొక్క పొడవును కత్తిరించండి మరియు స్ట్రిప్ చేయండి. అప్పుడు రెండు చివర్లలో కనెక్షన్ టంకము.

సాధారణ చిట్కా: రంగు మీ వైర్లను కోడ్ చేయండి మరియు మొత్తం సర్క్యూట్ అంతటా స్థిరంగా ఉండండి! మీ విద్యుత్ లైన్లన్నీ ఎర్రటి స్ట్రాండ్ కోర్ వైర్ మరియు నలుపు రంగులో ఉండేలా చేయండి. ఇది మీ డీబగ్గింగ్ ప్రక్రియలో మీకు సహాయపడుతుంది అలాగే విషయాలు చక్కగా మరియు క్రమంగా ఉంచడానికి సహాయపడుతుంది.

LED డ్రైవర్ సర్క్యూట్ & స్థాయి షిఫ్టర్

ఈ విభాగంలో బహుళ భాగాలు ఉన్నాయి కాబట్టి మేము దానిని చిన్న భాగాలుగా విడదీసి ఇక్కడ ఉన్న ప్రతిదానికీ వెళ్తాము. పవర్ సర్క్యూట్‌తో ప్రారంభిద్దాం!

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

ప్రారంభించడానికి, MOSFET లు ఏమిటో తెలియని వారికి MOSFET లపై కొంత నేపథ్యాన్ని అందిద్దాం. MOSFET అంటే Mఎప్పటికి Oxide Semiconductor Field Effect Transistor. దీని యొక్క మొదటి భాగం ట్రాన్సిస్టర్ తయారు చేయబడిన పదార్థం యొక్క రకాన్ని సూచిస్తుంది (ఎంచుకున్న పదార్థం యొక్క రకానికి మరియు ట్రాన్సిస్టర్ యొక్క ఫలిత లక్షణాలకు చిక్కులు ఉన్నందున చాలా సరళీకృతం). ఈ ప్రకటన యొక్క రెండవ భాగం కొంచెం క్లిష్టంగా ఉంటుంది; ఛానెల్‌ల మధ్య కదిలే ఛార్జీల ద్వారా ప్రేరేపిత ప్రవాహాల ద్వారా ట్రాన్సిస్టర్ యొక్క గేట్‌ను క్రిందికి లాగడం ఫీల్డ్ ఎఫెక్ట్ సూచిస్తుంది (మీకు అర్థం కాకపోతే చింతించకండి కాని ఇక్కడ మరింత సమాచారం ఉంది!). ట్రాన్సిస్టర్లు ప్రాథమికంగా కేవలం స్విచ్‌లు; సర్క్యూట్ యొక్క కొన్ని భాగాలకు శక్తినిచ్చేలా చేయడానికి గేట్లకు వోల్టేజ్‌లను వర్తింపజేయడం ద్వారా మీరు శక్తి ప్రవాహాన్ని నియంత్రించవచ్చు. ట్రాన్సిస్టర్లు చాలా క్లిష్టంగా ఉంటాయి; సంక్షిప్తంగా, అన్ని ట్రాన్సిస్టర్‌లకు గేట్, డ్రెయిన్ మరియు సోర్స్ ఉన్నాయి. డ్రెయిన్ మరియు మూలాన్ని సర్క్యూట్ యొక్క ఇన్పుట్ మరియు అవుట్పుట్గా పరిగణించవచ్చు. MOSFET లలో చాలా రకాలు ఉన్నాయి, కానీ మీరు మేకర్‌గా పరిగెత్తే ప్రధాన వాటిని మేము వివరిస్తాము. సానుకూల మరియు ప్రతికూల ఛానల్ MOSFET కోసం NMOS మరియు PMOS నిలుస్తాయి. వ్యత్యాసం ముఖ్యం ఎందుకంటే మూలం నుండి ప్రవాహాన్ని ప్రవహించటానికి లేదా మూలానికి ప్రవహించటానికి గేట్‌కు మీరు ఏ విధమైన వోల్టేజ్‌ను వర్తింపజేయవచ్చో ఇది నిర్ణయిస్తుంది. NMOS గేట్లకు దాని గేట్ మరియు మూలం మధ్య సానుకూల సంభావ్య వోల్టేజ్ అవసరం. PMOS కి దాని గేట్ మరియు మూలం మధ్య ప్రతికూల సామర్థ్యం అవసరం. మీరు ఇక్కడ MOSFET ల గురించి తెలుసుకోవచ్చు!

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

MOSFET లతో ఉన్న స్కీమాటిక్‌లో, డయోడ్‌లు (క్షితిజ సమాంతర రేఖలతో త్రిభుజాలు) LED లైట్ స్ట్రిప్‌ను సూచిస్తాయి. LED స్ట్రిప్‌లో నాలుగు మెటల్ ప్యాడ్‌లు (పవర్, రెడ్, గ్రీన్, బ్లూ) ఉన్నాయి, వీటిని మీరు టంకం ఇనుము నుండి వేడిని వర్తింపజేయవచ్చు మరియు మరికొన్ని స్ట్రాండ్డ్ కోర్ వైర్ (కలర్ కోడెడ్ ఆఫ్ కోర్సు) ను ప్యాడ్‌లకు కనెక్ట్ చేయవచ్చు. మీకు దృ connection మైన కనెక్షన్ ఉన్న తర్వాత, మీరు స్ట్రిప్ 12 వోల్ట్‌లను సరఫరా చేస్తారు. దీని అర్థం మీరు DC విద్యుత్ సరఫరా నుండి విద్యుత్ లైన్‌ను మీరు బోర్డు మీద కరిగించిన కనెక్టర్ ముక్కకు కనెక్ట్ చేయాలనుకుంటున్నారు. కనెక్టర్ ముక్క యొక్క పవర్ పిన్ వలె అదే వరుసలో బోర్డులోని ఖాళీ రంధ్రానికి శక్తిని సూచించే లెడ్ స్ట్రిప్ నుండి వైర్‌ను టంకం చేయడం ద్వారా మీరు దీన్ని సులభంగా చేయవచ్చు. ఇది ఎల్‌ఈడీలకు శక్తినిస్తుంది. ఈ సమయంలో మీరు మీ శక్తిని సరిగ్గా కనెక్ట్ చేసి ఉంటే మీ LED లు ఆన్ చేయడాన్ని మీరు చూడాలి. ఇప్పుడు LED స్ట్రిప్ నుండి మిగిలిన లీడ్లను కనెక్ట్ చేయడానికి సమయం ఆసన్నమైంది. ఇవి ఎరుపు, ఆకుపచ్చ మరియు నీలం నియంత్రణ లీడ్‌లుగా ఉండాలి. మీరు చేయవలసింది ఏమిటంటే, ప్రతి తీగను మోస్‌ఫెట్ యొక్క మధ్య పిన్ ఉన్న వరుసకు కనెక్ట్ చేయండి. మీరు MOSFET ల యొక్క మూడు వేర్వేరు గేట్లతో అనుసంధానించబడిన మూడు వైర్లను కలిగి ఉండాలి. అప్పుడు టీన్సీలోని కాలువ నుండి డిజిటల్ పిన్‌కు కనెక్ట్ చేయడానికి మీకు మూడు వైర్లు (ఎరుపు, ఆకుపచ్చ మరియు నీలం) అవసరం. కాలువ MOSFET లో ఎడమవైపున ఉన్న పిన్ మరియు మీరు ప్రతి తీగను ఆ వరుసలోని ఉచిత రంధ్రాలలో ఒకదానికి టంకము చేయాలి.

LED స్ట్రిప్‌ను కనెక్ట్ చేసిన తరువాత, మేము ద్వి-దిశాత్మక స్విచ్చింగ్ రెగ్యులేటర్‌ను కనెక్ట్ చేస్తాము. మా LED ఆన్ చేయడానికి 12 వోల్ట్ల వద్ద పనిచేస్తుంది. అయినప్పటికీ, మిగిలిన సర్క్యూట్లు మరియు బోర్డులు గరిష్టంగా 5 వోల్ట్ లాజిక్ వద్ద మాత్రమే పని చేస్తాయి, అంటే మన ఎలక్ట్రానిక్స్‌ను నాశనం చేయకూడదనుకుంటే, మిగిలిన సర్క్యూట్‌కు వెళ్లే వోల్టేజ్‌ను మనం తగ్గించాల్సి ఉంటుంది. మేము దీన్ని స్విచింగ్ రెగ్యులేటర్ ద్వారా చేస్తాము! స్విచ్చింగ్ రెగ్యులేటర్ అనేది ఒక పరికరం, ఈ సందర్భంలో 12 వోల్ట్ల నుండి 5 వోల్ట్ల వరకు) వోల్టేజ్ కొన్ని అధిక వోల్టేజ్ నుండి తక్కువ స్థాయికి పడిపోతుంది. రెసిస్టర్‌లను ఉపయోగించి వోల్టేజ్ లేదా వోల్టేజ్ డివైడర్ సర్క్యూట్‌ను వదలడానికి రెసిస్టర్‌ను ఎందుకు ఉపయోగించకూడదని ఇప్పుడు మీరు అడగవచ్చు. దీన్ని చేయడంలో బహుళ సమస్యలు ఉన్నాయి; దీన్ని చేయమని మేము బాగా సిఫార్సు చేస్తున్నాము. ఎందుకు? రెసిస్టర్లు మీకు కావలసిన విధంగా వోల్టేజ్ను వదులుతాయి కాని మీరు చాలా వేడిని ఉత్పత్తి చేస్తారు! వాస్తవానికి, మీకు తెలిసి ఉంటే రెసిస్టర్ లేదా లీనియర్ రెగ్యులేటర్‌ను ఉపయోగించడం వల్ల మీరు మీ సర్క్యూట్‌ను సులభంగా కరిగించవచ్చు. కానీ నేను హీట్ సింక్‌ను ఉపయోగించలేకపోతున్నాను మరియు సర్క్యూట్ నుండి వేడిని దూరం చేయలేదా? అవును, మీరు చేయగలరు కాని అప్పుడు మేము శక్తి సామర్థ్యం యొక్క సమస్య వద్ద తలెత్తుతాము! ఇది చాలా అసమర్థంగా ఉంటుంది! మీరు కొన్ని హైస్కూల్ భౌతిక శాస్త్రాన్ని గుర్తుచేసుకుంటే, పవర్ అనేది కరెంట్ టైమ్స్ వోల్టేజ్ లేదా కరెంట్ స్క్వేర్డ్ టైమ్స్ రెసిస్టెన్స్ యొక్క ఉత్పత్తి. శక్తిని వాట్స్‌లో కొలుస్తారు మరియు 12 వోల్ట్‌లను 5 వోల్ట్‌లకు వదలడానికి మీకు గణనీయమైన నిరోధకం అవసరం. ఇది వెదజల్లుతున్న శక్తి చాలా పెద్దదిగా ఉంటుంది. ఇది మీ దీపం చాలా అసమర్థంగా ఉంటుంది. ద్వి-దిశాత్మక స్విచ్చింగ్ రెగ్యులేటర్‌ను ఉపయోగించడం ద్వారా మేము ఈ సమస్యను నివారించాము! ఈ రెగ్యులేటర్ సులభంగా సాధించగల 85% సామర్థ్యాన్ని 12 వోల్ట్ల నుండి 5 వోల్ట్లకు పడిపోతుంది. ఇది ఉష్ణోగ్రతను తగ్గించడానికి మరియు మీ దీపం యొక్క ఆయుర్దాయం పెంచడానికి సహాయపడుతుంది!

స్విచ్చింగ్ రెగ్యులేటర్‌ను కనెక్ట్ చేయడానికి, ఈ డేటాషీట్ చూడండి! డేటాషీట్లను చదవడం మంచి నైపుణ్యం! ప్రతి పేరున్న భాగంలో డేటాషీట్ ఉంది, ఇది పరికరాన్ని మరియు దాని లక్షణాలు మరియు ఆపరేటింగ్ పరిధులను ఎలా ఉపయోగించాలో మీకు చూపుతుంది. ఈ నియంత్రకం కోసం, 12 యొక్క 8 వ పేజీలో, దిగువ ఎడమ చేతి మూలలో పిన్స్ యొక్క పట్టిక మరియు వాటి లేబుల్స్ ఉన్నాయి. పిన్ 1 ఎడమ అత్యంత పిన్ మరియు ఇది పవర్ ఇన్పుట్. పవర్ కనెక్టర్ వలె అదే వరుసలోని రంధ్రం నుండి పిన్ 1 వలె అదే వరుసలోని రంధ్రానికి మీరు ఒక తీగను టంకము చేయాలి. పిన్ 2 గ్రౌండ్ వైర్. కాబట్టి పవర్ కనెక్టర్ యొక్క గ్రౌండ్ పిన్ యొక్క వరుసలోని ఖాళీ రంధ్రం నుండి, పిన్ 2 వలె అదే వరుసలో ఖాళీ రంధ్రానికి ఒక తీగను టంకము వేయండి. పిన్ 3 అవుట్పుట్. ఇది మిగిలిన సర్క్యూట్‌కు శక్తి రేఖగా ఉపయోగపడుతుంది. డీబగ్గింగ్ కోసం సులభతరం చేయడానికి మేము ప్రతి బోర్డు కోసం ప్రత్యేకమైన పవర్ రైల్స్‌ను సృష్టించాము. ప్రతి బోర్డులోని పవర్ పట్టాలు పై చిత్రంలో కనిపిస్తాయి. కనెక్టర్ యొక్క అవుట్పుట్ (భూమి కోసం మాత్రమే) మరియు శక్తి కోసం స్విచ్చింగ్ రెగ్యులేటర్ యొక్క అవుట్పుట్ నుండి భూమి మరియు శక్తి కోసం ఒకే కనెక్షన్. ప్రతి బోర్డుకి అడ్డు వరుసలలోని పెద్ద అంతరం (అడ్డు వరుసలు బోర్డు అంతటా నేరుగా కనెక్ట్ కాలేదు) మరియు ప్రోటోటైపింగ్ బోర్డు మధ్య చిన్న జంప్ అవసరం, మీకు టంకం కనెక్షన్ కూడా అవసరం. సారాంశం పొందడానికి పై చిత్రాలను చూడండి!

కెపాసిటివ్ టచ్ బ్రేక్అవుట్ బోర్డు

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

తదుపరి దశ బటన్‌కు కనెక్ట్ అయ్యే లీడ్స్. ఇంతకు ముందు వివరించినట్లుగా, మీ కెపాసిటివ్ టచ్ బటన్‌ను సాధ్యమైనంత సున్నితంగా చేయడానికి ఈ వైర్లు సాధ్యమైనంత తక్కువగా ఉండాలని మీరు కోరుకుంటారు. దీన్ని చేయడానికి, మీరు పైన చూసినట్లుగా, వైర్‌తో కాంటాక్ట్ ప్యాడ్‌ను సృష్టించాలనుకుంటున్నారు. కొన్ని దృ core మైన కోర్ వైర్ తీసుకొని, తీగను డైమ్ సైజ్ వృత్తాకార, ఫ్లాట్ కాయిల్‌లోకి తీసుకోండి. కాయిల్ యొక్క మరొక చివర వైర్ యొక్క సరళ భాగం మరియు పిన్స్లో కరిగించాలి. ప్రతి బటన్ కోసం మీకు సహజంగా 3 బటన్ కాంటాక్ట్ వైర్లు అవసరం మరియు ఇవి పిన్స్ 0, 1, 2 గా కరిగించబడతాయి. పిన్ 11 లో, మీరు ఎల్ఈడి శక్తి కోసం మరొక వైర్ను టంకము చేస్తారు. ఇది GPIO పిన్ (జనరల్ పర్పస్ ఇన్పుట్ / అవుట్పుట్ పిన్) మరియు PWM (పల్స్ వెడల్పు మాడ్యులేషన్) సామర్థ్యాలను కూడా కలిగి ఉంది. పవర్ బటన్ కోసం బ్యాక్‌లైట్‌గా మారే LED యొక్క తర్కాన్ని నియంత్రించడానికి మేము ఈ పిన్‌ని ఉపయోగిస్తాము. ప్రోగ్రామింగ్ మరియు కోడ్‌లోని విభాగం ఇది ఎలా జరిగిందో వివరిస్తుంది.

యాంబియంట్ లైట్ సెన్సార్

ఈ విభాగం యాంబియంట్ లైట్ సెన్సార్‌కు అంకితం చేయబడింది, ఇది బ్రేక్అవుట్ బోర్డ్, ఇది దాని పరిసరాల నుండి కాంతిని తీసుకుంటుంది మరియు గదిలోని ప్రకాశం మరియు ఐఆర్ మరియు కనిపించే లైట్ రీడింగులపై వినియోగదారు డేటాను అందించడానికి బోర్డు ఫిల్టరింగ్‌ను కలిగి ఉంటుంది. ఈ బ్రేక్అవుట్ చాలా సులభం మరియు ఈగిల్ స్కీమాటిక్స్లో చేర్చబడలేదు, అడాఫ్రూట్ ఇక్కడ చాలా మంచి ట్యుటోరియల్ను కలిగి ఉంది! ఈ లింక్ మీ పరిసర కాంతి సెన్సార్‌ను టీనేజీకి ఎలా తీయాలి అనే దానిపై దశల వారీగా మీకు మార్గనిర్దేశం చేస్తుంది. కనెక్షన్ల పైన ఒక చిత్రం ఉంది; నేను మీకు టీన్సీ యొక్క పిన్‌అవుట్‌లను ఇచ్చే లింక్‌ను చేర్చాను మరియు వైర్‌లను కలిసి కనెక్ట్ చేయడంలో మీకు సహాయపడాలి. మీరు బ్రేక్అవుట్ బోర్డ్‌లోని శక్తిని బోర్డులో ఎక్కడైనా శక్తికి కనెక్ట్ చేయాలి. ఈ కనెక్షన్‌ను చాలా సౌకర్యవంతంగా ఉండే పవర్ రైలుకు అటాచ్ చేయాలని నేను సిఫారసు చేస్తాను. పై చిత్రాలలో మా విద్యుత్ కనెక్షన్ యొక్క స్థానం ఉన్నాయి. తరువాత, మీరు SDA మరియు SCL పిన్‌లను టీన్సీకి కనెక్ట్ చేయాలి. టీనేజీలోని ఆ పిన్స్ ఈగిల్ స్కీమాటిక్‌లో లేబుల్ చేయబడ్డాయి మరియు మీరు చేయాల్సిందల్లా కనెక్షన్‌ను శాశ్వతంగా మార్చడం. టీనేసీపై ఉన్న SDA పిన్ నుండి లైట్ సెన్సార్‌పై SDA పిన్‌కు వైర్‌ని టంకం చేయండి మరియు అదేవిధంగా, టీనేసీపై SCL పిన్ నుండి తీగను కనెక్ట్ చేయండి (పిన్ 13) టీనేసీపై SCL పిన్‌కు కనెక్ట్ చేయండి. దీని తరువాత, చేయవలసిన చివరి కనెక్షన్ GND. బ్రేక్అవుట్ బోర్డు నుండి అందుబాటులో ఉన్న ఏదైనా గ్రౌండ్ రైలుకు భూమిని కనెక్ట్ చేయండి. మళ్ళీ, ఎలక్ట్రానిక్స్‌ను టంకం చేయడం మరియు సమీకరించడం మీకు సులభతరం చేసే స్థలాన్ని ప్రయత్నించండి మరియు ఎంచుకోండి. మా సంస్కరణ కోసం పై చిత్రాన్ని చూడండి. అన్ని గ్రౌండ్ మరియు విద్యుత్ లైన్లు వరుసగా నలుపు మరియు ఎరుపు రంగులో ఉంటాయి.

దశ 3: ప్రోగ్రామింగ్ చాప్స్: MQTT నెట్‌వర్కింగ్

సాఫ్ట్‌వేర్: మూగ వస్తువులను స్మార్ట్‌గా చేయడం

మీరు ఇప్పుడు ఈ ప్రాజెక్ట్ యొక్క సాఫ్ట్‌వేర్ అంశానికి చేరుకున్నారు! మీరు ఇంత దూరం చేసి ఉంటే, అభినందనలు! మీరు ప్రాథమికంగా స్మార్ట్ లాంప్ కలిగి ఉన్నారు, ఎందుకంటే మేము ఈ కోడ్‌లో అన్ని కోడ్‌లను ఈ ఇన్‌స్ట్రక్టబుల్‌లో చేర్చాము మరియు మీరు కోడ్‌ను అప్‌లోడ్ చేయడానికి సిద్ధంగా ఉన్నారు మరియు స్మార్ట్ లాంప్ కలిగి ఉన్నారు! కోడ్ ఏమి చేస్తుందనే దాని గురించి మరింత తెలుసుకోవడానికి మీకు ఆసక్తి ఉంటే, కోడ్ విభాగంలో వ్యాఖ్యలు వివరంగా ఉంటాయి మరియు ప్రతిదీ వివరించండి!

కోడ్‌ను అప్‌లోడ్ చేయడంలో ఆసక్తి ఉన్నవారికి, ఇంకేమీ చదవవలసిన అవసరం లేదు. బోధించదగిన ఈ భాగం టీనేజీకి కోడ్‌ను ఎలా అప్‌లోడ్ చేయాలో గురించి మాట్లాడుతుంది. నేపథ్యం కోసం, టీనేసీ అనేది మైక్రోకంట్రోలర్, దీనికి మాన్యువల్ / ఆటోమేటిక్ బూట్‌లోడర్ (ప్రోగ్రామ్) అవసరం, ఇది ప్రాసెసర్‌ను ప్రోగ్రామింగ్ మోడ్‌లోకి మారుస్తుంది. ఇంతకుముందు ఆర్డునోను ఉపయోగించిన వారికి, ఆర్డునో ప్రాజెక్ట్ కోసం ఒక ప్రోగ్రామ్‌ను కోడింగ్ చేసేటప్పుడు, కుడి ఎగువ మూలలో ఉన్న చెక్ మార్క్ లోపాల కోసం మీ స్కెచ్‌ను ధృవీకరిస్తుంది మరియు కోడ్ కంపైల్ చేసిన తర్వాత, మీరు మీ కోడ్‌ను అప్‌లోడ్ చేయడానికి బాణంపై క్లిక్ చేయవచ్చు. Arduino యొక్క IDE స్వయంచాలకంగా మీ Arduino ని ప్రోగ్రామింగ్ మోడ్‌లోకి మారుస్తుంది మరియు మీ బోర్డుకి కొత్త కోడ్‌ను వెలిగిస్తుంది. టీన్సీతో, ఈ సామర్ధ్యం టీన్సీ బూట్‌లోడర్‌కు సంగ్రహించబడింది. ప్రతి టీన్సీ యూజర్ బూట్‌లోడర్‌ను డౌన్‌లోడ్ చేసుకోవాలి మరియు మీరు ఇప్పటికే కాకపోతే, ఇక్కడ ఉన్న ఆర్డునో ఐడిఇని డౌన్‌లోడ్ చేసుకోండి. మీరు ఇన్‌స్టాలేషన్‌లను పూర్తి చేసిన తర్వాత, మేము పైన చేర్చిన కోడ్‌ను డౌన్‌లోడ్ చేయండి. ఇది మీ Arduino IDE లో తెరవబడుతుంది. అక్కడ చాలా లైబ్రరీలు ఉన్నాయి మరియు కోడ్‌ను కంపైల్ చేయడానికి అవసరం. క్రింద, మీరు .zip ఫైల్‌ను డౌన్‌లోడ్ చేసి లైబ్రరీలలో ఇన్‌స్టాల్ చేయాల్సిన లైబ్రరీలకు లింక్‌లు ఉన్నాయి. ఆర్డునో స్కెచ్‌లోకి లైబ్రరీలను ఎలా ఇన్‌స్టాల్ చేయాలో మీకు తెలియకపోతే, ఎలా చేయాలో బోధించదగిన లింక్ ఇక్కడ ఉంది.

గ్రంథాలయాలు:

  • అడాఫ్రూట్ MQTT లైబ్రరీ
  • MPR121 కెపాసిటివ్ టచ్ బోర్డు
  • WINC1500 వైఫై బోర్డు
  • అడాఫ్రూట్ లక్స్ సెన్సార్
  • Wire.h (లైబ్రరీ లేదు ఎందుకంటే ఇది ముందే ఇన్‌స్టాల్ చేయబడింది)
  • String.h (లైబ్రరీ లేదు ఎందుకంటే ఇది ముందే ఇన్‌స్టాల్ చేయబడింది)
  • SPI.h (లైబ్రరీ లేదు ఎందుకంటే ఇది ముందే ఇన్‌స్టాల్ చేయబడింది)
  • Adafruit_Sensor.h
  • ArduinoJSON

మీరు ఈ లైబ్రరీలన్నింటినీ ఇన్‌స్టాల్ చేసిన తర్వాత, మీ కోడ్ కంపైల్ చేస్తుంది. Arduino IDE లోని ధృవీకరించు కోడ్ బటన్‌ను (చెక్ మార్క్) నొక్కిన తరువాత, టీన్సీ కోసం బూట్‌లోడర్ విండోను తెరవండి. టీన్సీ యొక్క వర్చువల్ వెర్షన్ ఉన్న చిన్న విండోను మీరు చూడాలి. ఆటో బటన్‌ను క్లిక్ చేసి, అది లోపలికి వెళ్లిందని నిర్ధారించుకోండి (మీరు నిజంగానే ఒక బటన్‌ను నొక్కినట్లుగా … టీన్సీ బూట్‌లోడర్ లింక్‌ను చూడండి. ఆ తరువాత, యుఎస్‌బికి ఎదురుగా బోర్డు చివర ఉన్న టీన్సీలోనే భౌతిక బటన్‌ను నొక్కండి. మీరు మీ స్కెచ్ ఉన్న arduino IDE ని తనిఖీ చేసి, సాధనాలపై క్లిక్ చేయండి. టీన్సీ 3.1 / 3.2, యుఎస్‌బి రకం సీరియల్‌కు, సిపియు వేగం 96 మెగాహెర్ట్జ్ ఆప్టిమైజ్ చేసిన ఓవర్‌లాక్డ్‌కు సెట్ చేయబడిందని మరియు పోర్ట్ "యుఎస్‌బికి తరువాత కొన్ని పొడవైన స్ట్రింగ్ నంబర్లు మరియు అక్షరాలతో" సెట్ చేయబడిందని బోర్డు చెప్పిందని నిర్ధారించుకోండి. మీరు దాన్ని పూర్తి చేసిన తర్వాత, ఆర్డునోలోని అప్‌లోడ్ బటన్‌ను (పక్కకి బాణం) నొక్కండి. టీన్సీకి బోర్డులో ఎల్‌ఈడీ ఉండాలి మరియు కోడ్‌ను అప్‌లోడ్ చేసేటప్పుడు అది ఫ్లాష్ అవ్వాలి. ఇది అప్‌లోడ్ చేసిన తర్వాత, మీరు మీ ఎలక్ట్రానిక్‌లను దీపం యొక్క స్థావరంలో ఉంచాలి మరియు మీరు పూర్తి చేసారు!

కోడ్ ఏమి చేస్తుందో మీకు ఆసక్తి ఉంటే, దిగువ కోడ్‌తో చేర్చబడిన వ్యాఖ్యలను తనిఖీ చేయండి!

#include #include #include #include #include # ఉన్నాయి # ఉన్నాయి # చేర్చండి # చేర్చండి
# ఉన్నాయి # ఉన్నాయి
# ఉన్నాయి # WINC_CS 10 ని నిర్వచించండి # WINC_IRQ 7 ని నిర్వచించండి # WINC_RST 4 ను నిర్వచించండి # AIO_SERVER "mqtt2.seecontrol.com" ను నిర్వచించండి # AIO_SERVERPORT 1883 ను నిర్వచించండి (లు)); (1); } # LEDPIN 3 ని నిర్వచించండి # LED_RED 23 ని నిర్వచించండి # LED_GREEN 5 ని నిర్వచించండి # LED_BLUE 6 ని నిర్వచించండి # టచ్_పిన్ 0 ని నిర్వచించండి # టచ్_పిన్ 1 నిర్వచించండి # టచ్_పిన్ 2 2 చార్ ssid = ""; // మీ నెట్‌వర్క్ SSID (పేరు) చార్ పాస్ = ""; // మీ నెట్‌వర్క్ పాస్‌వర్డ్ (WPA కోసం ఉపయోగించండి లేదా WEP కోసం కీగా ఉపయోగించండి) int keyIndex = 0; // మీ నెట్‌వర్క్ కీ సూచిక సంఖ్య (WEP కి మాత్రమే అవసరం) పూర్ణాంక స్థితి = WL_IDLE_STATUS; // వైఫై స్థితి const char MQTT_SERVER PROGMEM = AIO_SERVER; const char MQTT_CLIENTID PROGMEM = __TIME__ AIO_USERNAME; const char MQTT_USERNAME PROGMEM = AIO_USERNAME; const char MQTT_PASSWORD PROGMEM = AIO_KEY; const char IOTLAMP_FEED PROGMEM = "/ IoTLampDemo"; // ఛానెల్ పేరును ప్రచురించండి మరియు చందా చేయండి const char RETURN_FEED PROGMEM = "/ IoTLampDemo"; uint32_t x = 0; // uint8_t POWER_STATE = 0; uint8_t పిన్‌నమ్; uint8_t led_brightness = 100; uint8_t రెడ్‌వాల్ = 0; uint8_t greenVal = 0; uint8_t బ్లూవాల్ = 0; uint16_t లక్స్; bool Network_Mode = తప్పుడు; bool cap_touch_activated = తప్పుడు; const int irqpin = 2; // కార్యాచరణ-సూచిక అస్థిర బూలియన్ ఫ్లాగ్ఇర్క్ కోసం పిన్ సంఖ్య; struct JSON {const char * targetVal; const char * codeVal; int lamponVal; పూర్ణాంకం వాల్; }; / * అన్ని ప్రకటనలు * / Adafruit_WINC1500 WiFi (WINC_CS, WINC_IRQ, WINC_RST); అడాఫ్రూట్_టిఎస్ఎల్ 2591 టిఎస్ఎల్ = అడాఫ్రూట్_టిఎస్ఎల్ 2591 (2591); // లైట్ సెన్సార్ Adafruit_WINC1500 క్లయింట్ క్లయింట్; // వైఫై చిప్ Adafruit_MQTT_Client mqtt (& క్లయింట్, MQTT_SERVER, AIO_SERVERPORT, MQTT_CLIENTID, MQTT_USERNAME, MQTT_PASSWORD); // mqtt డిక్లరేషన్ Adafruit_MQTT_ ప్రచురించండి IOTLAMP = Adafruit_MQTT_ ప్రచురించండి (& mqtt, IOTLAMP_FEED); Adafruit_MQTT_Subscribe VIRTUAL_LAMP = Adafruit_MQTT_Subscribe (& mqtt, RETURN_FEED); / * * ఈ ఫంక్షన్ సెటప్. సెటప్‌లో, మేము * LED ల కోసం అన్ని పిన్‌లను ప్రారంభించాము, అలాగే మేము బటన్లకు అటాచ్ చేస్తున్న అంతరాయాలు. వైఫై బోర్డ్, కెపాసిటివ్ టచ్ బోర్డ్ మరియు * సరైన టాపిక్ పాత్‌కు సభ్యత్వాన్ని పొందే ఫంక్షన్‌ను ఏర్పాటు చేసే ఫంక్షన్లను మేము పిలిచాము. * * / శూన్య సెటప్ () {పిన్‌మోడ్ (ఇర్క్‌పిన్, INPUT); Serial.begin (9600); // సెటప్ సీరియల్.ప్రింట్ల్న్ ("ప్రారంభ ప్రోగ్రామ్") కు అంతరాయం కలిగిస్తుంది; అటాచ్ఇంటరప్ట్ (ఇర్క్పిన్, ఇస్రిర్క్పిన్, మార్చండి); // అటాచ్ ఇర్క్ పిన్ అంతరాయం & RISING / HIGH / CHANGE / LOW / FALLING MPR121.setInterruptPin (irqpin); పిన్‌మోడ్ (LED_RED, OUTPUT); పిన్‌మోడ్ (LED_BLUE, OUTPUT); పిన్‌మోడ్ (LED_GREEN, OUTPUT); డిజిటల్ రైట్ (LED_RED, LOW); డిజిటల్ రైట్ (LED_GREEN, LOW); డిజిటల్ రైట్ (LED_BLUE, LOW); capacitiveTouch_Setup (); wifi_module_config (); // వైఫైని కాన్ఫిగర్ చేయండి mqtt.subscribe (& VIRTUAL_LAMP); Function / * * ఈ ఫంక్షన్ లూప్. * అంతరాయం కనుగొనబడకపోతే ఈ ఫంక్షన్‌లో ఏమి జరిగినా అది అనంతంగా పునరావృతమవుతుంది. * ఈ ఫంక్షన్ ఒక అంతరాయం తొలగించబడిందో లేదో తనిఖీ చేస్తుంది, అలా అయితే, రీసెట్ బటన్ ఫంక్షన్‌ను అమలు చేయండి. * మేము నెట్‌వర్కింగ్ మోడ్‌లో ఉంటే (మనకు వైఫై కనెక్టివిటీ ఉందని అర్థం), అప్పుడు నెట్‌వర్కింగ్ * ఫంక్షన్‌ను అమలు చేయండి. రెండూ నిజం కాకపోతే, సాధారణ దీపంలా ప్రవర్తించండి. * * / శూన్య లూప్ () {if (flagIrq == true) {ResetBUTTONFlag (); // BUTTON అంతరాయం సంభవించినట్లయితే, ఫ్లాగ్‌ను రీసెట్ చేయండి. } else {if (Network_Mode) {నెట్‌వర్కింగ్ (); }}} / * * అంతరాయం తొలగించినప్పుడు ఈ ఫంక్షన్ పిలువబడుతుంది మరియు తరువాత కెపాసిటివ్ బటన్ ఫంక్షన్ * అని పిలువబడుతుంది మరియు ఫ్లాగ్ బూలియన్ ఒప్పుకు సెట్ అవుతుంది.* / void isrIrqPin () {కెపాసిటివ్ టచ్_బటన్లు (); flagIrq = నిజం; Function / * * ఈ ఫంక్షన్ రాష్ట్రాలను జాగ్రత్తగా చూసుకుంటుంది: అంతరాయం తొలగించబడినప్పుడు మాత్రమే ఇది పిలువబడుతుంది * మరియు జెండా బూలియన్ తప్పుగా మారుతుంది మరియు కెపాసిటివ్ టచ్ బూలియన్ ఒప్పుకు సెట్ చేయబడుతుంది. * / void ResetBUTTONFlag () {// రీసెట్ చేయండి BUTTON 1 ఫ్లాగ్ + షో లీడ్ యాక్టివిటీ-ఇండికేటర్ ఫ్లాగ్ఇర్క్ = తప్పుడు; cap_touch_activated = నిజం; } // విస్తరించిన లక్స్ సెన్సార్ రీడౌట్ కోసం ఈ ఫంక్షన్‌ను అన్‌కామెంట్ చేయండి మరియు కావలసిన చోట కాల్ చేయండి. // శూన్యమైన లక్సెన్సర్_ రీడౌట్ (శూన్యమైనది) {// సెన్సార్_టి సెన్సార్; // tsl.getSensor (& సెన్సార్); // సీరియల్.ప్రింట్ల్న్ ("------------------------------------"); // సీరియల్.ప్రింట్ ("గరిష్ట విలువ:"); Serial.print (sensor.max_value); సీరియల్.ప్రింట్ల్న్ ("లక్స్"); // సీరియల్.ప్రింట్ ("కనిష్ట విలువ:"); Serial.print (sensor.min_value); సీరియల్.ప్రింట్ల్న్ ("లక్స్"); // సీరియల్.ప్రింట్ ("రిజల్యూషన్:"); Serial.print (sensor.resolution); సీరియల్.ప్రింట్ల్న్ ("లక్స్"); // సీరియల్.ప్రింట్ల్న్ ("------------------------------------"); // సీరియల్.ప్రింట్ల్న్ (""); // ఆలస్యం (500); //} / * * ఈ ఫంక్షన్ బోర్డును ఏర్పాటు చేస్తుంది. * కెపాసిటివ్ టచ్ బోర్డ్ సరిగ్గా కాన్ఫిగర్ చేయబడిందో లేదో తెలుసుకోవడానికి డీబగ్గింగ్ స్టేట్‌మెంట్‌లను అందించడం ద్వారా ఇది ప్రారంభమవుతుంది. అప్పుడు అది బటన్లు మరియు పవర్ బటన్ కోసం బోర్డులోనే డిజిటల్ పిన్‌లను ప్రారంభిస్తుంది. ఇది సున్నితత్వాన్ని సెట్ చేస్తుంది మరియు ప్రారంభించడానికి క్రమాంకనం * డేటాను పొందుతుంది.అప్పుడు అది ప్రారంభించడానికి POWER LED ని ఆన్ చేస్తుంది. * * / శూన్య కెపాసిటివ్ టచ్_సెట్అప్ () {if (! MPR121.begin (0x5A)) {Serial.println ("MPR121 ను ఏర్పాటు చేయడంలో లోపం"); స్విచ్ (MPR121.getError ()) {కేసు NO_ERROR: Serial.println ("లోపం లేదు"); బ్రేక్; కేసు ADDRESS_UNKNOWN: Serial.println ("తప్పు చిరునామా"); బ్రేక్; కేసు READBACK_FAIL: Serial.println ("రీడ్‌బ్యాక్ వైఫల్యం"); బ్రేక్; కేసు OVERCURRENT_FLAG: Serial.println ("REXT పిన్‌పై ఓవర్‌కరెంట్"); బ్రేక్; కేసు OUT_OF_RANGE: సీరియల్.ప్రింట్ల్న్ ("ఎలక్ట్రోడ్ పరిధిలో లేదు"); బ్రేక్; కేసు NOT_INITED: Serial.println ("ప్రారంభించబడలేదు"); బ్రేక్; డిఫాల్ట్: Serial.println ("తెలియని లోపం"); బ్రేక్; } ఉండగా (1); } Serial.println ("MPR121 దొరికింది!"); MPR121.setTouchThreshold (2); టచ్ MPR121.setReleaseThreshold (1) కోసం // డిఫాల్ట్ విలువ 40; // డిఫాల్ట్ విలువ టచ్ కోసం 20; టచ్ థ్రెషోల్డ్ MPR121.setNumDigPins (1) కంటే ఎల్లప్పుడూ చిన్నదిగా ఉండాలి; // LED అవుట్‌పుట్‌లు MPR121.pinMode (11, OUTPUT); MPR121.updateTouchData (); // ప్రారంభ డేటా నవీకరణ MPR121.digitalWrite (11, HIGH); } / * * ఇది వైఫై కాన్ఫిగరేషన్ ఫంక్షన్. ఇది * వైఫై మాడ్యూల్‌కు శక్తిని అందించబడిందో లేదో తనిఖీ చేస్తుంది మరియు తరువాత శక్తి * అందించబడిందా అనే దానిపై ఆధారపడి నెట్‌వర్కింగ్ బూలియన్లను నిజం లేదా తప్పు అని సెట్ చేస్తుంది. అలా అయితే, మీరు కనెక్ట్ అయ్యారని ముద్రించండి. * * / void wifi_module_config () {Serial.println (F ("WINC1500 కోసం Adafruit MQTT డెమో")); సీరియల్.ప్రింట్ (F ("Wi n వైఫై మాడ్యూల్‌ను ప్రారంభించండి …")); // క్లయింట్‌ను ప్రారంభిస్తే (WiFi.status () == WL_NO_SHIELD) {// బ్రేక్అవుట్ ఉనికిని తనిఖీ చేయండి Serial.println ("WINC1500 లేదు"); // కొనసాగించవద్దు: నెట్‌వర్క్_మోడ్ = తప్పుడు; (నిజం); } Serial.println ("ATWINC OK!"); నెట్‌వర్క్_మోడ్ = నిజం; Function / * * ఈ ఫంక్షన్ RGB విలువల కోసం మ్యాపింగ్‌ను సృష్టిస్తుంది. ఇది తెలుపు యొక్క గరిష్ట స్వరం * దీపం అవుట్పుట్ చేస్తుంది. ప్రతి రంగు ఎరుపు ఆకుపచ్చ మరియు నీలం కోసం మ్యాపింగ్‌ను సృష్టించిన తరువాత, * LED ల యొక్క రంగు యొక్క వాస్తవ స్వరాన్ని సెట్ చేయడానికి మేము ఒక సహాయక ఫంక్షన్‌ను పిలుస్తాము * * / శూన్యమైన మ్యాప్_వైట్ (int new_brightness) {redVal = map (new_brightness, 0, 255, 0, 255); // మ్యాప్ ఎరుపు విలువలు గ్రీన్‌వాల్ = మ్యాప్ (కొత్త_ ప్రకాశం, 0, 255, 0, 255); // మ్యాప్ ఆకుపచ్చ విలువలు బ్లూవాల్ = మ్యాప్ (కొత్త_ ప్రకాశం, 0, 255, 0, 240); // మ్యాప్ బ్లూ విలువలు set_leds (రెడ్‌వాల్, గ్రీన్వాల్, బ్లూవాల్); Function / * * ఈ ఫంక్షన్ వాస్తవానికి LED ల రంగు విలువలను సెట్ చేస్తుంది మరియు LED లను ఆన్ చేస్తుంది. * * / శూన్యమైన సెట్_లెడ్స్ (uint8_t రెడ్‌వాల్, uint8_t గ్రీన్వాల్, uint8_t బ్లూవాల్) {అనలాగ్‌రైట్ (LED_RED, రెడ్‌వాల్); // ప్రస్తుత విలువలను LED పిన్స్ అనలాగ్‌రైట్ (LED_GREEN, గ్రీన్వాల్) కు వ్రాయండి; అనలాగ్‌రైట్ (LED_BLUE, బ్లూవాల్); function / * * ఈ ఫంక్షన్ లైట్ సెన్సార్‌ను కాన్ఫిగర్ చేస్తుంది. సెన్సార్ శక్తికి కనెక్ట్ చేయబడిందో లేదో ఇది మొదట తనిఖీ చేస్తుంది. అది ఒకసారి, అది లాభం సెట్ చేస్తుంది. సెన్సార్ చుట్టూ ఉన్న కాంతి తక్కువగా ఉంటే, ఇది అధిక లాభాలకు విస్తరిస్తుంది. తరువాత, ఇది సమన్వయ సమయాన్ని సెట్ చేస్తుంది, ఇది కొలతకు ఎంత సమయం పడుతుంది. మిగిలిన ఫంక్షన్ * మీ ఎంపికల సమాచారాన్ని సీరియల్ మానిటర్‌లో ప్రింట్ చేస్తుంది. * / void configureSensor (void) {Serial.println ("Adafruit TSL2591 Test ను ప్రారంభిస్తోంది!"); if (tsl.begin ()) {Serial.println ("TSL2591 సెన్సార్ కనుగొనబడింది"); } else {Serial.println ("సెన్సార్ కనుగొనబడలేదు … మీ వైరింగ్‌ను తనిఖీ చేయాలా?"); అయితే (1); } // మీరు ప్రకాశవంతమైన / మసకబారిన కాంతి పరిస్థితులకు అనుగుణంగా ఫ్లైలో లాభాలను మార్చవచ్చు //tsl.setGain(TSL2591_GAIN_LOW); // 1x లాభం (ప్రకాశవంతమైన కాంతి) tsl.setGain (TSL2591_GAIN_MED); // 25x లాభం // tsl.setGain (TSL2591_GAIN_HIGH); // 428x లాభం // ఇంటిగ్రేషన్ సమయాన్ని మార్చడం వల్ల కాంతిని గ్రహించటానికి ఎక్కువ సమయం ఇస్తుంది // ఎక్కువ టైమ్‌లైన్స్ నెమ్మదిగా ఉంటాయి, కానీ చాలా తక్కువ లైట్ సిట్యుటేషన్లలో మంచివి! //tsl.setTiming(TSL2591_INTEGRATIONTIME_100MS); // అతి తక్కువ సమైక్యత సమయం (ప్రకాశవంతమైన కాంతి) // tsl.setTiming (TSL2591_INTEGRATIONTIME_200MS); tsl.setTiming (TSL2591_INTEGRATIONTIME_300MS); // tsl.setTiming (TSL2591_INTEGRATIONTIME_400MS); // tsl.setTiming (TSL2591_INTEGRATIONTIME_500MS); // tsl.setTiming (TSL2591_INTEGRATIONTIME_600MS); // పొడవైన ఇంటిగ్రేషన్ సమయం (మసక కాంతి)

/ * సూచన కొరకు లాభం మరియు సమైక్యత సమయాన్ని ప్రదర్శించు * / Serial.println ("-------------------------------- ---- "); సీరియల్.ప్రింట్ ("లాభం:"); tsl2591Gain_t gain = tsl.getGain (); స్విచ్ (లాభం) {కేసు TSL2591_GAIN_LOW: సీరియల్.ప్రింట్ల్న్ ("1x (తక్కువ)"); బ్రేక్; కేసు TSL2591_GAIN_MED: సీరియల్.ప్రింట్ల్న్ ("25x (మీడియం)"); బ్రేక్; కేసు TSL2591_GAIN_HIGH: సీరియల్.ప్రింట్ల్న్ ("428x (హై)"); బ్రేక్; కేసు TSL2591_GAIN_MAX: సీరియల్.ప్రింట్ల్న్ ("9876x (గరిష్టంగా)"); బ్రేక్; } సీరియల్.ప్రింట్ ("సమయం:"); సీరియల్.ప్రింట్ ((tsl.getTiming () + 1) * 100, DEC); సీరియల్.ప్రింట్ల్న్ ("ms"); Serial.println ( "------------------------------------"); Serial.println ( ""); } / * * ఒక బటన్‌ను తాకిన తర్వాత ఈ ఫంక్షన్ ప్రారంభించబడుతుంది. అది జరిగిన తరువాత, ఇది డేటాను నవీకరిస్తుంది * కెపాసిటివ్ బోర్డు నిల్వ చేసింది. అప్పుడు అందుబాటులో ఉన్న పిన్‌ల ద్వారా నడుస్తుంది (మేము 0 పిన్‌ల నుండి మాత్రమే వెళ్తాము ఎందుకంటే మేము బటన్లకు 3 పిన్‌లను మాత్రమే జత చేసాము). అప్పుడు అది * తాకిన పిన్ నంబర్‌ను తిరిగి ఇస్తుంది. * * / uint8_t కెపాసిటివ్ టచ్_పిన్ టచ్డ్ () {MPR121.updateTouchData (); (pinNum = 0; pinNum <= 2; pinNum ++) {if (MPR121.isNewTouch (pinNum)) {return pinNum; }} పిన్‌నమ్ = 4; తిరిగి పిన్ నమ్; } / * * కెపాసిటివ్ టచ్ బటన్లు వాస్తవానికి ఒక బటన్ * తాకినట్లయితే వ్యవహరించే అన్ని లాజిక్‌లను కలిగి ఉంటాయి. ఈ సమయానికి ఇది ఒక బటన్ తాకినట్లు భావించబడుతుంది మరియు ఇప్పుడు అది తాకిన నిర్దిష్ట బటన్‌తో ఏమి చేయాలో గుర్తించబడుతుంది. ఇది పవర్ స్టేట్ మరియు పవర్ ఎల్‌ఇడితో పాటు ప్రకాశం నియంత్రణ కోసం అన్ని లాజిక్‌లను నియంత్రిస్తుంది. * * / శూన్య కెపాసిటివ్ టచ్_బటన్లు () {uint8_t తాకిన పిన్ = కెపాసిటివ్ టచ్_పిన్ టచ్డ్ (); మారండి (తాకిన పిన్) {కేసు 0: {if (POWER_STATE == 1) {if (led_brightness> 230) {led_brightness = 255; map_white (led_brightness); } else {led_brightness = led_brightness + 25; map_white (led_brightness); R} else {MPR121.digitalWrite (11, LOW); map_white (led_brightness); POWER_STATE = 1; }} విరామం; కేసు 1: {if (POWER_STATE == 1) {MPR121.digitalWrite (11, HIGH); POWER_STATE = 0; map_white (0); } else {MPR121.digitalWrite (11, LOW); POWER_STATE = 1; map_white (led_brightness); } విరామం; కేసు 2: {if (POWER_STATE == 1) {if (led_brightness <= 30) {led_brightness = 25; map_white (led_brightness); } else {led_brightness = led_brightness - 25; map_white (led_brightness); R} else {MPR121.digitalWrite (11, LOW); map_white (led_brightness); POWER_STATE = 1; }} విరామం; డిఫాల్ట్: {} విరామం; Function}} / * * ఈ ఫంక్షన్ లైట్ సెన్సార్ కోసం అధునాతన రీడ్ ఫంక్షన్. లైట్ సెన్సార్ * మీకు ఇన్ఫ్రారెడ్ మరియు కనిపించే లైట్ స్పెక్ట్రం రెండింటినీ సూచించే 32 బిట్లను ఇస్తుంది. ఇది కనిపించే స్పెక్ట్రం యొక్క 16 బిట్స్ * ను పట్టుకుంటుంది మరియు కనిపించే స్పెక్ట్రం కోసం లెక్కించిన లక్స్ విలువను అందిస్తుంది. * * / uint16_t అడ్వాన్స్‌డ్ (శూన్యమైనది) {uint32_t lum = tsl.getFullLuminosity (); // టాప్ 16 బిట్స్ IR తో 32 బిట్స్ చదవండి, దిగువ 16 బిట్స్ పూర్తి స్పెక్ట్రం uint16_t ir, full; ir = లమ్ >> 16; పూర్తి = లమ్ & 0xFFFF; lux = tsl.calcularLux (పూర్తి, ir); రిటర్న్ లక్స్; Function / * * ఈ ఫంక్షన్ JSON లో ఫార్మాట్ చేయబడిన డేటా ప్యాకెట్ల ప్రసారంతో వ్యవహరిస్తుంది. ఇది మీ ఛానెల్ పేరు సరైనదేనా అని తనిఖీ చేస్తుంది మరియు అలా అయితే, అది ఆ ఛానెల్‌కు ప్యాకెట్‌ను ప్రచురిస్తుంది * / void mqtt_transmit (char buf ) {// ఇప్పుడు మనం అంశాలను ప్రచురించవచ్చు! సీరియల్.ప్రింట్ (F ("J n JSON పంపుతోంది")); Serial.print ( "…"); if (! IOTLAMP. ప్రచురించు (buf)) {Serial.println (F ("విఫలమైంది")); } else {Serial.println (F ("OK!")); Serial.println (BUF); Function} / * * ఈ ఫంక్షన్ MQTT ని సెట్ చేస్తుంది మరియు దాన్ని సెట్ చేస్తుంది. సమయం ముగిసే సమయానికి స్టేట్‌మెంట్‌లు ఉన్నాయి మరియు వైఫై కనెక్షన్ స్థాపించబడిన తర్వాత, ప్రోగ్రామ్ MQTT కి కనెక్ట్ అవ్వడానికి ప్రయత్నిస్తుంది. ఒకసారి * కనెక్ట్ అయిన తర్వాత, అది ఆకుపచ్చగా మెరుస్తుంది మరియు మీరు కనెక్ట్ అయ్యారని మీకు తెలియజేయడానికి ఆపివేయబడుతుంది. మీరు * కనెక్ట్ కాకపోతే, వైఫై ప్రాసెస్ కోసం శోధన వ్యవధికి ఇది ఎరుపు రంగులో ఉంటుంది. * * / శూన్యమైన MQTT_ కనెక్ట్ () {int8_t ret; uint8_t సమయం ముగిసింది = 10; // కనెక్షన్ కోసం 10 సెకన్లు వేచి ఉండండి: bool timedOut = false; (WiFi.status ()! = WL_CONNECTED && timedOut == తప్పుడు) {// వైఫై నెట్‌వర్క్‌కు కనెక్ట్ అవ్వడానికి ప్రయత్నం: డిజిటల్ రైట్ (LED_RED, HIGH); సీరియల్.ప్రింట్ ("SSID కి కనెక్ట్ చేయడానికి ప్రయత్నిస్తోంది:"); Serial.println (SSID); status = WiFi.begin (ssid, pass); // WPA / WPA2 నెట్‌వర్క్‌కు కనెక్ట్ అవ్వండి. ఓపెన్ లేదా డబ్ల్యుఇపి నెట్‌వర్క్ ఉపయోగిస్తుంటే ఈ పంక్తిని మార్చండి: సమయం ముగిసింది--; ఆలస్యం (10); if (సమయం ముగిసింది == 0) {timedOut = true; డిజిటల్ రైట్ (LED_RED, LOW); } నెట్‌వర్క్_మోడ్ = తప్పుడు; } ఉండగా (సమయం ముగిసింది) {నెట్‌వర్క్_మోడ్ = తప్పుడు; సీరియల్.ప్రింట్ల్న్ ("ఎంటర్ లెగసీ మోడ్"); } if (mqtt.connected ()) {// ఇప్పటికే కనెక్ట్ అయితే ఆపు. నెట్‌వర్క్_మోడ్ = నిజం; తిరిగి; } సీరియల్.ప్రింట్ ("MQTT కి కనెక్ట్ అవుతోంది …"); అయితే ((ret = mqtt.connect ())! = 0) connect // కనెక్ట్ చేయబడిన కనెక్ట్ చేసిన సీరియల్.ప్రింట్ల్న్ (mqtt.connectErrorString (ret)) కోసం 0 తిరిగి వస్తుంది; Serial.println ("5 సెకన్లలో MQTT కనెక్షన్‌ను మళ్లీ ప్రయత్నిస్తోంది …"); mqtt.disconnect (); నెట్‌వర్క్_మోడ్ = తప్పుడు; ఆలస్యం (500); // 5 సెకన్లు వేచి ఉండండి} Network_Mode = true; Serial.println ("MQTT కనెక్ట్ చేయబడింది!"); డిజిటల్ రైట్ (LED_RED, LOW); డిజిటల్ రైట్ (LED_GREEN, HIGH); ఆలస్యం (1000); డిజిటల్ రైట్ (LED_GREEN, LOW); S / * * ఇది JSON ను ఫార్మాట్ చేసే ఫంక్షన్. ప్రస్తుతం ఇది కొంతవరకు కఠినంగా కోడ్ చేయబడింది * అయితే ఇది సరళమైనది, అయితే * మీరు ప్రవేశించే పారామితుల ఆధారంగా దీన్ని సులభంగా మార్చవచ్చు. * * / స్ట్రింగ్ json_Packet () {స్ట్రింగ్ పబ్ స్ట్రింగ్ = "{target" లక్ష్యం ": Lamp "దీపం ", "కోడ్ ": "దీపం ", "; స్ట్రింగ్ విలువలు = "" విలువలు ": {"; స్ట్రింగ్ ఆన్ఆఫ్ = "" లాంపన్ ":"; JSON ఫార్మాటింగ్ కోసం స్ట్రింగ్ లాంప్‌స్టేట్ = ఆన్ఆఫ్ + POWER_STATE + "," కోసం కోట్స్ కలిగి ఉండటానికి బదులుగా // ints ints గా ఉన్నాయి; స్ట్రింగ్ ప్రకాశం స్టేట్ = "" లాంపింటెన్సిటీ ":"; స్ట్రింగ్ lamp_brightness = brightnessState + led_brightness + ","; స్ట్రింగ్ lamp_luminosity = "" ప్రకాశం ":"; స్ట్రింగ్ ప్రారంభ_ స్ట్రింగ్ = పబ్ స్ట్రింగ్ + విలువలు + లాంప్‌స్టేట్ + దీపం_ ప్రకాశం + దీపం_ ప్రకాశం; ప్రారంభ_ స్ట్రింగ్ తిరిగి; Function / * * ఈ ఫంక్షన్ చందా ఛానెల్ నుండి వచ్చే డేటాకు తర్కం. * ఇది * సబ్‌స్క్రిప్షన్ ఛానెల్ నుండి పంపిన విలువను బట్టి LED పవర్ బ్యాక్‌లైట్‌ను ఆన్ మరియు ఆఫ్ చేస్తుంది. ఇది ఆ డేటాను బట్టి వాస్తవ LED ప్రకాశాన్ని కూడా మారుస్తుంది * * / void subscribe_StateChange (JSON & json) {POWER_STATE = json.lamponVal; led_brightness = json.brightnessVal; if (POWER_STATE == 1) {MPR121.digitalWrite (11, LOW); map_white (led_brightness); } else {MPR121.digitalWrite (11, HIGH); map_white (0); Function} / * * ఈ ఫంక్షన్ అన్ని నెట్‌వర్కింగ్‌తో వ్యవహరించే ఉన్నత స్థాయి ఫంక్షన్. ఇది MQTT కనెక్షన్‌ను సెట్ చేసే * ఫంక్షన్‌ను పిలుస్తుంది. అది స్థాపించబడిన తర్వాత, మీరు డేటాను పొందే చందా యొక్క ఉదాహరణను ప్రారంభించండి. మేము ఇంతకుముందు సృష్టించిన struct యొక్క ఉదాహరణను చేయండి, అది చందా ప్యాకెట్ నుండి మేము అన్వయించే ఫీల్డ్లను నిల్వ చేస్తుంది. ఆ సభ్యత్వ డేటాను నిల్వ చేయడానికి మేము * బఫర్‌ను సృష్టిస్తాము. అప్పుడు ఒక బటన్ తాకినట్లు తనిఖీ చేస్తుంది * ఇది మనకు లైట్ డేటాలో చదవడానికి, డేటాను ప్యాకేజింగ్ చేయడానికి, ఆపై ఒక ప్యాకెట్‌ను ప్రసారం చేయడానికి దారితీస్తుంది. * మేము దీపం యొక్క స్థితిని మార్చకపోతే (ఏదైనా బటన్లను తాకడం), అప్పుడు మనకు చదవడానికి ఏదైనా * ప్యాకెట్లు ఉన్నాయా అని చూడండి. మేము అలా చేస్తే, దాన్ని అన్వయించి, మేము ఇంతకుముందు సృష్టించిన JSON struct లోని ఫీల్డ్‌లను జనసాంద్రత చేయండి. * * / శూన్య నెట్‌వర్కింగ్ () {MQTT_connect (); Adafruit_MQTT_ సబ్‌స్క్రయిబ్ * చందా; JSON json; స్ట్రింగ్ బేసిక్_స్ట్రింగ్ = json_Packet (); స్టాటిక్జోసన్ బఫర్ <5000> jsonBuffer; అయితే (cap_touch_activated) {lux = advancedRead (); // లక్స్ విలువను పొందుతుంది మరియు లక్స్ స్ట్రింగ్ ఫైనల్ స్ట్రింగ్ = బేసిక్_ స్ట్రింగ్ + లక్స్ + "}}" కు సమానంగా సెట్ చేస్తుంది; చార్ బఫ్ ఫైనల్ స్ట్రింగ్.లెంగ్త్ () + 1; finalString.toCharArray (buf, finalString.length () + 1); mqtt_transmit (BUF); cap_touch_activated = తప్పుడు; } అయితే ((చందా = mqtt.readSubscription (5000%)) {if (చందా == & VIRTUAL_LAMP) {JsonObject & root = jsonBuffer.parseObject ((చార్ *) VIRTUAL_LAMP.lastread); if (! root.success ()) {Serial.println ("parseObject () విఫలమైంది"); తిరిగి; } json.targetVal = రూట్ "లక్ష్యం"; json.codeVal = రూట్ "కోడ్"; json.lamponVal = రూట్ "విలువలు" "లాంపన్"; json.brightnessVal = రూట్ "విలువలు" "లాంపింటెన్సిటీ"; subscribe_StateChange (JSON); }}}

నెట్‌వర్క్: WIFI, MQTT & MQTT.fx

ఇది MQTT అంటే ఏమిటో వివరించడానికి మరియు సాధారణంగా నెట్‌వర్కింగ్ కోసం అంకితమైన విభాగం! ప్రారంభిద్దాం!

మేము MQTT అంశంలోకి ప్రవేశించే ముందు, మీరు ఈ వివిక్త పరికరం కోసం మీ WIFI నెట్‌వర్కింగ్ ఆధారాలను సెటప్ చేయాలి. ఇప్పుడు ఈ దీపం భద్రత కారణంగా WPA2 ఎంటర్ప్రైజ్ నెట్‌వర్క్‌లకు కనెక్ట్ కాలేదు. వినియోగదారు పేరు ఫీల్డ్‌లను నిర్వహించడానికి లైబ్రరీలు రూపొందించబడలేదు. ఎంటర్ప్రైజ్ నెట్‌వర్క్ మద్దతును ప్రస్తుతానికి అందించని నెట్‌వర్క్ SSID మరియు పాస్‌వర్డ్. ప్రస్తుతం WPA, WPA2 వ్యక్తిగత మరియు WEP నెట్‌వర్క్‌లకు మద్దతు ఉంది. మీరు ఉపయోగిస్తున్న నెట్‌వర్క్ ఆధారాల కోసం మీరు SSID మరియు పాస్‌వర్డ్‌ను మార్చాలి. దిగువ పంక్తులను చూడండి:

char ssid = ""; // మీ నెట్‌వర్క్ SSID (పేరు)
చార్ పాస్ = ""; // మీ నెట్‌వర్క్ పాస్‌వర్డ్ (WPA కోసం ఉపయోగించండి లేదా WEP కోసం కీగా ఉపయోగించండి) int keyIndex = 0; // మీ నెట్‌వర్క్ కీ సూచిక సంఖ్య (WEP కోసం మాత్రమే అవసరం)

మీరు WEP నెట్‌వర్క్‌ను ఉపయోగిస్తున్నారే తప్ప మీరు కీఇండెక్స్ విలువను మార్చాల్సిన అవసరం లేదు.

కాబట్టి MQTT … MQTT అనేది యంత్ర కనెక్టివిటీ ప్రోటోకాల్‌కు ఒక యంత్రం. ఇవన్నీ అర్థం ఏమిటి? స్టార్టర్స్ కోసం బాగా MQTT అనేది పరికరాలను ఒకదానితో ఒకటి మాట్లాడటానికి ఒక మార్గం, అలా చేయటానికి అధిక శక్తిని ఉపయోగించకుండా. ఇది చాలా చిన్న డేటా ప్యాకెట్లను కలిగి ఉంది, తద్వారా ఇది వేగంగా ప్రసారం చేస్తుంది. MQTT ను MQ టెలిమెట్రీ ట్రాన్స్పోర్ట్ అని పిలుస్తారు. ఏదేమైనా, డేటాను పంపడానికి మరియు స్వీకరించడానికి MQTT ప్రచురణ మరియు సభ్యత్వ నమూనాపై ఆధారపడుతుంది.

MQTT పరికరాల మధ్య డేటాను ముందుకు వెనుకకు పంపడానికి ప్రచురించడానికి మరియు సభ్యత్వాన్ని ఉపయోగిస్తుంది మరియు అలా చేయడానికి, వారికి డేటా బ్రోకర్ అవసరం. దీని అర్థం, డేటాను ప్రచురించడానికి మరియు చందా చేయడానికి అంకితమైన "విషయాలు" లేదా ఛానెల్‌లను ఏర్పాటు చేసే డేటాను పంపడానికి మీకు మధ్యవర్తి స్థలం అవసరం. ఈ బ్రోకర్ డేటాను పంపడం మరియు స్వీకరించడం యొక్క తర్కాన్ని నిర్వహిస్తుంది. వాస్తవానికి, మీరు ఈ బ్రోకర్‌లో ప్రత్యేకంగా ఎక్కడ నుండి డేటాను లాగాలని లేదా డేటాను పంపించాలనుకుంటున్నారో పేర్కొనే విధులను వ్రాయవలసి ఉంటుంది, అయితే ఈ బ్రోకర్ నుండి స్వీకరించబడిన మరియు పంపబడిన డేటాను మీరు పర్యవేక్షించవచ్చు. ప్రచురణ ప్రసారం వలె ఉంటుంది; మీరు మీ డేటాను మీరు కోరుకున్న ఫార్మాట్‌లో ప్యాకేజీ చేసి, ఆపై ప్రచురించడానికి ఛానెల్ పేరును నియమించండి. మీరు దాన్ని పూర్తి చేసిన తర్వాత, మీ డేటాను ఈ ఛానెల్‌కు పంపించడానికి మీరు అడాఫ్రూట్ నుండి డౌన్‌లోడ్ చేసిన లైబ్రరీలను ఉపయోగించవచ్చు మరియు మీరు మీ బ్రోకర్‌ను సెటప్ చేసిన తర్వాత, డేటాను స్వీకరించడాన్ని మీరు చూడవచ్చు.

మీ పరికరానికి వాస్తవానికి డేటాను స్వీకరించడానికి సంబంధించి ప్రచురించడం కంటే చందా పొందడం కొంచెం కష్టం. ప్రచురణతో, మీరు ప్రసారం చేయాలి. మీ ఉపయోగం కేసును బట్టి మీ డేటా మరొక చివరలో స్వీకరించబడిందని లేదా అన్వయించబడిందని మీరు పట్టించుకోరు. ఏదేమైనా, చందాతో, చందా ఛానల్ టాపిక్ నుండి డేటా సరిగ్గా చదవబడిందని నిర్ధారించుకోవడానికి ఇది క్లయింట్ వైపు (పరికర తయారీదారు) ఉంది, ప్యాకెట్లు ఏవీ కోల్పోలేదు, డేటాను అన్వయించండి మరియు ఆ డేటాకు అనుగుణంగా స్పందించండి. చందాతో, మీరు డేటాను పొందుతారో లేదో చూడటానికి మీరు నిరంతరం వినాలి మరియు మిగతావన్నీ జరగకుండా ఆపండి ఎందుకంటే మీ పరికరం యొక్క స్థితి ప్యాకెట్‌ను స్వీకరించిన కొద్దిసేపటికే మారుతుంది. ప్రచురణ ఎలా పనిచేస్తుందో అదేవిధంగా చందా పనిచేస్తుంది; మీరు ఒక ఛానెల్‌ను స్థాపించారు మరియు మీరు దాని నుండి డేటాను Adafruit MQTT లైబ్రరీ నుండి ఫంక్షన్ కాల్ (చందా *. readSubscription (int timeout)) ద్వారా చదువుతారు. మీరు నిరంతరం ప్యాకెట్ల ద్వారా లూప్ చేయవచ్చు మరియు మీరు వాటిని పొందినప్పుడు అన్వయించవచ్చు మరియు ఫలితంగా మీ భౌతిక దీపం యొక్క స్థితి గురించి వెంటనే మార్చవచ్చు. మీరు ప్రతి ప్యాకెట్ అందుకున్నారని మరియు ఏ నాణ్యతలో ఉన్నారో ప్రత్యేకంగా తెలుసుకోవలసిన పనిని మీరు చేస్తుంటే, పంపిన ప్రతి ప్యాకెట్‌తో సేవ యొక్క నాణ్యత కోసం అదనపు ఫీల్డ్ ఉంటుంది. మీ ప్రసారం యొక్క నాణ్యత ఏమిటో మీకు తెలియజేయడానికి ఇది ఉపయోగించబడుతుంది. మీరు మీ అన్ని ప్యాకెట్లను స్వీకరించినట్లయితే, మీకు 2 తిరిగి వస్తుంది. దీని అర్థం మీరు విజయవంతంగా ప్యాకెట్ పంపించి పింగ్ ప్యాకెట్‌ను తిరిగి అందుకున్నారు. మీకు ఒకటి దొరికితే, ప్యాకెట్ పంపబడింది, కాని మీరు అవన్నీ తిరిగి అందుకున్నారని మీరు ఖచ్చితంగా చెప్పలేరు. 0 యొక్క QoS మీరు పంపినట్లు మీకు చెబుతుంది మరియు అది స్వీకరించబడిందా లేదా అనే దానిపై అదనపు సమాచారం లేదు లేదా మీరు అన్ని ప్యాకెట్లను స్వీకరించారా.

మేము ఉపయోగించిన బ్రోకర్ MQTT.fx, మీరు ఇక్కడ డౌన్‌లోడ్ చేసుకోవాలి. MQTT.fx అనేది అన్ని డేటా నిర్వహణతో వ్యవహరించే క్లయింట్ బ్రోకర్. దీన్ని ఉపయోగించడానికి, మీరు దీన్ని సెటప్ చేయాలి. మీరు MQTT.fx కు కనెక్ట్ అవ్వడానికి ప్రయత్నించే ముందు మీరు చేయవలసినది మొదటిది సెట్టింగుల కోసం గేర్‌పై క్లిక్ చేయండి. మీరు దాన్ని క్లిక్ చేసిన తర్వాత, మీరు డేటాను అలాగే పోర్ట్ నంబర్‌కు పంపే సర్వర్ కోసం URL (బ్రోకర్ చిరునామా) ఇవ్వాలి. మాకు విషయాలను సూటిగా ఉంచడానికి తయారుచేసిన ప్రొఫైల్ పేరును మీరే అందించండి, మేము ఆ ప్రొఫైల్ పేరును ఉపయోగించాము మరియు దానిని మా ప్రచురణ ఛానల్ పేరుగా మార్చాము మరియు పేరును అలాగే ప్రొఫైల్ పేరుకు ముందు "/" తో సభ్యత్వాన్ని పొందండి. మీరు ఆ సమాచారాన్ని ఎంటర్ చేసిన తర్వాత, యాదృచ్ఛిక కీని ఉత్పత్తి చేసి, ఆ కీని రికార్డ్ చేయండి. మీరు కోడ్‌లోని AIO_KEY కోసం విలువను మీరు సృష్టించిన క్రొత్త కీతో భర్తీ చేస్తారు. మీరు జనరల్ టాబ్‌కు వెళ్లి వినియోగదారు పేరు మరియు పాస్‌వర్డ్‌ను కూడా అందించవచ్చు, అయినప్పటికీ మేము చేయలేదు మరియు ఇది ప్రత్యేకంగా అవసరం లేదు. ఆ తరువాత, మీరు వర్తించు బటన్‌ను నొక్కడానికి సిద్ధంగా ఉన్నారు మరియు సరే బటన్ ఆపై కనెక్ట్ బటన్‌ను నొక్కండి మరియు మీరు వర్కింగ్ సర్వర్ కోసం కాన్ఫిగర్ చేయాలి. తరువాత, మీరు ప్రచురణలో టైప్ చేయవచ్చు మరియు డ్రాప్ డౌన్ ట్యాబ్‌లో ఛానెల్ పేరును చందా చేసుకోవచ్చు మరియు మీరు ఛానెల్ పేరు ముందు బ్యాక్‌స్లాష్‌ను చేర్చినంత వరకు మీ డేటాను అక్కడ చూడాలి. ఇది ముఖ్యమైనది; ఇది MQTT లో హార్డ్ కోడెడ్ ఫార్మాట్ మరియు మీరు నియమించిన ఛానెల్ పేరు ముందు బ్యాక్‌స్లాష్ లేకపోతే మీ డేటా కనిపించదు. దీని తరువాత, మీరు అంతా సిద్ధంగా ఉన్నారు!