विज्ञापन

वाई-फाई किसी भी इंटरनेट ऑफ थिंग्स (IoT) DIY परियोजनाओं के लिए एक आवश्यक बिट किट है, लेकिन हमारे पसंदीदा Arduino वाई-फाई के साथ नहीं आते हैं, और वाई-फाई शील्ड में जोड़ने से कुल लागत लगभग 40 डॉलर तक आ सकती है। क्या होगा यदि मैंने आपको $ 10 से कम के लिए अंतर्निहित वाई-फाई के साथ एक Arduino- संगत देव बोर्ड बताया है? खैर, वहाँ है।

Arduino किलर से मिलो: ESP8266 हमारे प्रिय अर्डुइनो विकास बोर्ड के चमकदार सिर से मुकुट चोरी होने से पहले यह केवल समय की बात थी। क्या सर्किट बोर्ड के प्यार में पड़ना संभव है?

एक तरफ आकर्षक नाम, ESP8266 (जिसे NodeMCU के रूप में भी जाना जाता है) को मूल रूप से कम लागत वाले वाई-फाई के रूप में विपणन किया गया था। Arduino बोर्डों के लिए, जब तक हैकर समुदाय ने महसूस नहीं किया कि आप Arduino को समीकरण से काट सकते हैं पूरी तरह से।

एक वर्ष से भी कम समय में, ESP8266 ने लोकप्रियता में धूम मचाई है, और अब इतनी अच्छी तरह से समर्थित और विकसित है कि यदि आप वर्तमान में Arduino का उपयोग कर रहे हैं, तो आपको खड़े होने और ध्यान देने की आवश्यकता है। अब एक खरीदें, तो इस गाइड के साथ अपने ESP8266 प्रोग्रामिंग शुरू करने के लिए पालन करें - सभी परिचित Arduino IDE के भीतर से।

आप निश्चित रूप से Arduino IDE का उपयोग करने के लिए सीमित नहीं हैं - वे लुआ के साथ भी संगत हैं (जो कि मेरे लिए पायथन से नीचे की तरह दिखता है) नौसिखिया आँखें), लेकिन जब से हम इसे उन लोगों के दृष्टिकोण से निपटा रहे हैं जो कि हमने Arduino पर सीखा है, तो हम विशेष रूप से कवर करते हैं आज।

ESP8266 के आसपास अभी कुछ मॉडल हैं, लेकिन मैं इसे आगे बढ़ाने जा रहा हूं और इसकी अनुशंसा करता हूं: ईएसपी-12E (इसे NodeMCU 1.0 के नाम से भी जाना जाता है, या यह सबसे नया भाई-बहन NodeMCU 2.0 है)।

यह दूसरों की तुलना में थोड़ा अधिक महंगा है ($ 6.50 $ 4 की तुलना में!), लेकिन इसमें चिप को प्रोग्राम करने के लिए आवश्यक धारावाहिक ड्राइवर शामिल है, और इसमें एक अंतर्निहित बिजली नियामक है, साथ ही साथ बहुत सारे IO पिन भी हैं। यह व्यापक रूप से समर्थित है और वास्तव में प्रोग्रामिंग या पावर के लिए यूएसबी कनेक्शन के अलावा कुछ भी आवश्यक नहीं है, इसलिए इसके साथ काम करना सबसे आसान है। यदि आप किसी अन्य प्रकार का ESP8266 बोर्ड खरीदते हैं, तो आपको एक अलग 3.3v पावर नियामक, और प्रोग्रामिंग के लिए एक उपयुक्त FTDI कनेक्शन की आवश्यकता हो सकती है।

ESP8266-12E और Arduino के साथ शुरुआत करना

प्रथम, सीरियल ड्राइवरों को स्थापित करें इस बोर्ड के लिए। आपको करना पड़ सकता है KEXT साइनिंग अक्षम करें यदि आप नई सुरक्षा प्रणालियों के कारण El Capitan चला रहे हैं।

इसके बाद, हमें Arduino IDE के बोर्ड मैनेजर से ESP8266 के लिए समर्थन सक्षम करने की आवश्यकता है। प्राथमिकताएं खोलें, और निम्न URL दर्ज करें जहां यह कहता है अतिरिक्त बोर्ड प्रबंधक यूआरएल:

Arduino बोर्ड मैनेजर URLS

ठीक है मारो, फिर खोलें बोर्ड के प्रबंधक से उपकरण -> बोर्ड मेनू, esp8266 के लिए खोज और मंच स्थापित करें। अब आपको NodeMCU 1.0 के लिए एक विकल्प देखना चाहिए।

बोर्ड का चयन करें

सीपीयू को छोड़ दें और गति को अपलोड करें, और अपने नए इंस्टॉल सीरियल पोर्ट का चयन करें। मैक पर, यह दिखाई देता है घन। SLAB_USBtoUART.

पहले कार्यक्रम के रूप में, मैं साधारण वाई-फाई स्कैनर का सुझाव देता हूं - इसे खोजो फ़ाइल -> उदाहरण -> ESP8266WiFi -> WifiScan. ध्यान दें कि यह अपलोड करने में काफी धीमा है, लेकिन अंततः इसे "अपलोड किया गया" कहेंगे और उस बिंदु पर (इससे पहले नहीं, या आप अपलोड प्रक्रिया को नहीं तोड़ेंगे), आप सीरियल मॉनिटर खोल सकते हैं। आपको इसके समान कुछ देखना चाहिए:

वाईफ़ाई स्कैन परीक्षण esp8266
सफलता! अब, एक से जुड़ने का प्रयास करें।

वाई-फाई नेटवर्क से जुड़ने के लिए यहां एक बिल्कुल सरल नंगे कोड है। यह सिर्फ कनेक्ट करने के अलावा कुछ नहीं करता है, लेकिन यह कुछ ऐसा है जिसे आप बहुत बाद में जोड़ सकते हैं। बस याद रखें कि अपने वाई-फाई के विवरणों के लिए अपने_एसएसआईडी और अपने_पास को बदल दें। अपलोड करें, सीरियल कंसोल खोलें और आपको इसे कनेक्ट करते हुए देखना चाहिए।

 # कांस्टेबल चर * ssid = "your_SSID"; const char * पासवर्ड = "Your_PASSWORD"; WiFiClient wifiClient; शून्य सेटअप () {Serial.begin (115200); Serial.print ("कनेक्ट करने के लिए"); सीरीयल.प्रिंट (ssid); WiFi.begin (ssid, पासवर्ड); जबकि (WiFi.status ()! = WL_CONNECTED) {विलंब (500); Serial.print ( "।"); } Serial.println (""); Serial.println ("वाईफाई कनेक्ट"); Serial.println ("आईपी पता:"); Serial.println (WiFi.localIP ()); } शून्य लूप () {}

क्या यह महान नहीं है कि यह कितना हास्यास्पद था?

इससे पहले कि हम आगे बढ़ें, यहाँ पिनआउट आरेख है - यह बाद में काम आ सकता है। ध्यान दें कि कोड में निर्दिष्ट पिन नंबर GPIO नंबर हैं, न कि D0-16 जो संभवतः आपके बोर्ड पीसीबी पर लिखे गए हैं। यदि आप पूरी तरह से, सकारात्मक रूप से यह पता नहीं लगा सकते हैं कि कोई सेंसर काम क्यों नहीं कर रहा है, तो संभवत: आपने पिन नंबरों को मिलाया है।

NodeMCU__v1.0_pinout

MQTT और DHT11 के साथ क्विक स्मार्ट होम सेंसर

यहां एक व्यावहारिक उदाहरण है जिसे आप सीधे अपने घर की निगरानी के लिए उपयोग कर सकते हैं। हम DHT11 तापमान और आर्द्रता सेंसर जोड़ रहे हैं, फिर MQTT प्रोटोकॉल का उपयोग करके मूल्यों की रिपोर्टिंग करेंगे वाई-फाई नेटवर्क पर, मेरे मामले में ओपनहैब DIY होम ऑटोमेशन सिस्टम (यदि नहीं, तो आप पढ़ना चाहते हैं हमारी शुरुआती OpenHAB प्राप्त करने और रास्पबेरी पाई पर चलने के लिए मार्गदर्शन करते हैं रास्पबेरी पाई पर ओपनएचएबी होम ऑटोमेशन के साथ शुरुआत करनाओपनएचएबी एक परिपक्व, ओपन सोर्स होम ऑटोमेशन प्लेटफॉर्म है जो विभिन्न प्रकार के हार्डवेयर पर चलता है और है प्रोटोकॉल अज्ञेयवाद, जिसका अर्थ है कि यह बाजार पर लगभग किसी भी होम ऑटोमेशन हार्डवेयर से जुड़ सकता है आज। अधिक पढ़ें , और भाग 2, जो विशेष रूप से संबंधित है MQTT सर्वर स्थापित करना ओपनहैब बिगिनर्स गाइड भाग 2: जेडवे, एमक्यूटीटी, नियम और चार्टिंगOpenHAB, ओपन सोर्स होम ऑटोमेशन सॉफ्टवेयर, अब तक बाजार पर अन्य होम ऑटोमेशन सिस्टम की क्षमताओं से अधिक है - लेकिन इसे स्थापित करना आसान नहीं है। वास्तव में, यह सर्वथा निराशाजनक हो सकता है। अधिक पढ़ें ).

वायरिंग साइड पर, DHT सेंसर को कनेक्ट करें GND, 3.3, तथा ~ D4 (या GPIO 2) अब हमें इसकी आवश्यकता है

डाउनलोड ये MQTT और DHT लाइब्रेरीज़. भले ही आपके पास पहले से ही हो, इन लोगों को वैसे भी डाउनलोड करें, जो आपके पास है और इनसे ओवरराइट करें। Adafruit की नवीनतम DHT11 लाइब्रेरी जिस पर गति निर्धारित करने के लिए एक स्वचालित एल्गोरिथ्म का उपयोग करती है डेटा सेंसर से पढ़ा जाता है, लेकिन यह ESP8266 पर छोटी गाड़ी है और समय का 90% विफल रहा है रीडिंग।

लाइब्रेरी के पुराने संस्करण 1.0 के साथ जिसे मैंने डाउनलोड में शामिल किया है, आप मैन्युअल रूप से समय बदल सकते हैं: 11 इन ESPV66 बोर्ड के लिए सबसे अच्छा काम करता है। मैं MQTT लाइब्रेरी की कई प्रतियों के माध्यम से भी गया, जो एक अच्छी खोज थी वापस कॉल करें फ़ंक्शन, अंत में एक पर उतरना शामिल था। इनकी जगह लेने के बाद आपको Arduino IDE को पुनरारंभ करना होगा।

यहाँ है परियोजना के लिए पूरा कोड. शीर्ष पर वे सभी चर हैं जिन्हें आपको बदलने की आवश्यकता है, जिसमें वाई-फाई विवरण, एमक्यूटीटी सर्वर (एक URL का उपयोग किया जा सकता है) इसके बजाय यदि कोई क्लाउड सर्वर का उपयोग कर रहा है, हालांकि वहां कोई प्रमाणीकरण नहीं है), और डेटा को प्रकाशित करने के लिए चैनल।

यहां बताया गया है कि यह कैसे काम करता है और कुछ नोट्स:

  • पहले हम वाई-फाई से कनेक्ट होते हैं, फिर एमक्यूटीटी सर्वर से, फिर मुख्य शुरू करते हैं पाश ()।
  • लूप में, हम हर 60 सेकंड में DHT सेंसर को पोल करते हैं और संबंधित MQTT चैनलों को रीडिंग प्रकाशित करते हैं। फिर, यदि आपको अधिकांश रीडिंग में विफलता संदेश मिलता है, तो आपके पास DHT लाइब्रेरी का गलत संस्करण है - डाउनग्रेड v1.0।
  • client.loop () MQTT लाइब्रेरी पर नियंत्रण रखता है, जिससे आने वाले संदेशों पर प्रतिक्रिया हो सके।
  • वहां एक संदेश मिल गया() फ़ंक्शन जहां हम आने वाले संदेशों को संभालते हैं - यदि आप अपेक्षा कर रहे हैं कि संदेश के साथ पेलोड की तुलना करने के लिए केवल एक सरल कथन करें। उदाहरण के लिए, रिले को सक्रिय करने के लिए आप इसका उपयोग कर सकते हैं।
  • कुछ दिनों तक इन्हें चलाने के बाद, मैंने पाया कि वे बेतरतीब ढंग से काम करना बंद कर देंगे - मुझे लगता है कि यह किसी तरह की मेमोरी लीक है, लेकिन दिया गया है मेरे पास इससे निपटने के लिए कोडिंग कौशल नहीं है और यह कोर पुस्तकालयों के साथ हो सकता है, मैंने हर बार एक सरल सॉफ्ट रीसेट का विकल्प चुना है दिन। सेंसर नोड के पहले सक्रिय होने के एक दिन बाद, वे स्वयं को पुनः आरंभ करेंगे।
  • 3.3v से इन सस्ते DHT11 मॉड्यूल्स को पावर करते समय नमी का मान इनकी तुलना में बहुत कम होता है। मैंने इसे एक सरल गुणन के साथ हल किया है, और एक वाणिज्यिक सेंसर के खिलाफ कैलिब्रेट किया गया है। रीडिंग पर भरोसा करने से पहले, मैं आपको अपने स्वयं के ज्ञात स्रोत के खिलाफ भी पुष्टि करने की सलाह देता हूं। वैकल्पिक रूप से, उन्हें 5V के साथ शक्ति दें - लेकिन आपको डेटा पिन और ESP8266 के बीच 5v-3.3v लॉजिक लेवल शिफ्टर रखना होगा, या आप इसे नुकसान पहुंचाएंगे.

यदि सब कुछ ठीक रहा, तो आपको अब अपने MQTT ब्रोकर में सेंसर रीडिंग प्राप्त होनी चाहिए, और इन्हें OpenHAB से जोड़कर आगे बढ़ाया जा सकता है। हमारे शुरुआती गाइड के भाग 2 ओपनहैब बिगिनर्स गाइड भाग 2: जेडवे, एमक्यूटीटी, नियम और चार्टिंगOpenHAB, ओपन सोर्स होम ऑटोमेशन सॉफ्टवेयर, अब तक बाजार पर अन्य होम ऑटोमेशन सिस्टम की क्षमताओं से अधिक है - लेकिन इसे स्थापित करना आसान नहीं है। वास्तव में, यह सर्वथा निराशाजनक हो सकता है। अधिक पढ़ें , जहां मैंने आपको यह भी दिखाया कि डेटा को कैसे ग्राफ़ किया जाए

ओपनहैब से विनम्रता का ग्राफ

विदाई Arduino, हम तुम्हें बहुत प्यार करता था। केवल मजाक करना: मेरे घर में हर जगह वाई-फाई भी नहीं मिल सकता है, इसलिए उन स्थानों के लिए मुझे अभी भी Arduino और RF रिसीवर के साथ एक जाल नेटवर्क की आवश्यकता है।

एक मजेदार परियोजना के लिए, बाहर की जाँच करें ईएसपी 8266 के साथ वाई-फाई बटन कैसे बनाएं ESP8266 के साथ अपनी खुद की वाई-फाई कनेक्टेड बटन कैसे बनाएंइस ट्यूटोरियल में, आप सीखेंगे कि NodeMCU और IFTTT का उपयोग करके वाई-फाई-सक्षम बटन कैसे बनाया जाए। अधिक पढ़ें .

लेकिन आप ESP8266 के साथ क्या करेंगे? ESP8266 का उपयोग करने वाली कोई भी परियोजना जिसे आप MakeUseOf पर लिखा हुआ देखना चाहते हैं? हमें टिप्पणियों में बताएं!

जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।