विषयसूची:

ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट: 5 कदम
ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट: 5 कदम

वीडियो: ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट: 5 कदम

वीडियो: ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट: 5 कदम
वीडियो: Battery Draining & Heating issue Fix All Samsung Smartphones #hanging #batterybackup #heatingissue 2024, जुलाई
Anonim
ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट
ATTINY85 और A1 GSM से एसएमएस टेक्स्ट टेम्प अलर्ट

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

भारी भारोत्तोलन सरल लेकिन शक्तिशाली ATTINY 85 द्वारा किया जाता है जो तापमान डेटा को कैप्चर करता है और फिर एआई-थिंकर ए 6 जीएसएम मॉड्यूल के माध्यम से भेजे जाने वाले एक एसएमएस को ट्रिगर करता है।

संक्षेप में, आप Arduino IDE वातावरण में ATTINY85 कोड लिखते हैं और इसे USBASP सीरियल/USB कनवर्टर का उपयोग करके ATTINY85 पर जलाते हैं। मैंने पिछले दो ट्यूटोरियल में AI-Thinker A6 GSM मॉड्यूल और Arduino IDE की स्थापना को कवर किया है। यहाँ जो अलग है वह सीरियल संचार का उपयोग करके ATTINY और A6 GSM मॉड्यूल को इंटरफेस कर रहा है।

www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…

प्रोग्रामिंग के बाद, ATTINY एक थर्मामीटर सेंसर - डलास 18B20- से तापमान डेटा पढ़ता है और फिर A6 GSM मॉड्यूल को सीरियल कनेक्शन द्वारा डेटा और कमांड भेजता है जो फिर इसे आपके मोबाइल / स्मार्ट फोन पर एक एसएमएस टेक्स्ट के रूप में भेजता है।

यहाँ आपको क्या चाहिए:

1. यूएसबीएएसपी सीरियल / यूएसबी कनवर्टर।

2. ATTINY 85.

3. एआई-थिंकर ए6 जीएसएम मॉड्यूल संस्करण 6 (एक सिम के साथ जिसमें एसएमएस क्रेडिट है)।

4. ATTINY85 के लिए 3.3v ब्रेडबोर्ड बिजली की आपूर्ति।

5. 3.3.v एआई-थिंकर ए 6 जीएसएम मॉड्यूल के लिए यूएसबी बिजली की आपूर्ति।

6. डलास 18B20 तापमान सेंसर..

7. 18B20 सेंसर के लिए 4.7k रोकनेवाला।

8. ब्रेडबोर्ड और केबल।

9. Arduino IDE (मैंने इसके लिए संस्करण 1.8.5 का उपयोग किया)।

10. एक मुफ्त यूएसबी पोर्ट के साथ विंडोज एक्स लैपटॉप (मैंने संस्करण 10 का इस्तेमाल किया)।

चरण 1: ATTINY 85 प्रोग्रामिंग करना

यहाँ Arduino IDE कोड है (आपको उस फ़ोन नंबर को बदलना होगा जिस पर आप एसएमएस भेजना चाहते हैं।)

#शामिल करें #शामिल करें

// *** // *** RX और TX पिन को परिभाषित करें। कोई दो // *** पिन चुनें जो अप्रयुक्त हैं। यदि आप I2C का उपयोग करने की योजना बना रहे हैं तो D0 (पिन 5) // *** और D2 (पिन 7) से बचने का प्रयास करें। // *** # परिभाषित आरएक्स 3 // *** डी 3, पिन 2 # TX 4 परिभाषित करें // *** डी 4, पिन 3

// *** // *** सॉफ्टवेयर आधारित सीरियल पोर्ट को परिभाषित करें। // *** नाम सीरियल का उपयोग करना ताकि कोड का उपयोग अन्य // *** प्लेटफॉर्म पर किया जा सके जो हार्डवेयर आधारित सीरियल का समर्थन करते हैं। हार्डवेयर सीरियल को सपोर्ट करने वाले // *** चिप्स पर, बस // *** इस लाइन पर कमेंट करें। // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** पिनआउट ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ================ ============================================ ======================//****** (पीसीआईएनटी5/रीसेट/एडीसी0/डीडब्ल्यू) पीबी5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // *** (PCINT4/ XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/DI/SDA/AIN0 /OC0A/OC1A/AREF/PCINT0) // *** // आंतरिक 8 मेगाहर्ट्ज पर ATTINY 85 आवृत्ति सेट

// *** // *** पिन जिस पर वनवायर डेटा // *** वायर जुड़ा हुआ है। // *** # परिभाषित करें ONE_WIRE_BUS 1

// *** // *** किसी भी वनवायर // *** डिवाइस के साथ संचार करने के लिए वनवायर इंस्टेंस सेट करें (न कि केवल मैक्सिम/डलास तापमान आईसीएस)। // *** वनवायर _oneवायर = वनवायर (ONE_WIRE_BUS);

// *** // *** डलास तापमान के लिए हमारे वनवायर संदर्भ को पास करें। // *** डलास तापमान _sensors = डलास तापमान (&_oneWire);

शून्य सेटअप () {// *** // *** सीरियल पोर्ट को प्रारंभ करें // *** mySerial.begin (115200); देरी (६००००);

// *** पुस्तकालय शुरू करें। _sensors.begin (); }

शून्य लूप () {

// *** // *** वर्तमान तापमान प्राप्त करें और इसे प्रदर्शित करें। // *** _sensors.requestTemperatures (); देरी (2000); डबल अस्थायी = _sensors.getTempCByIndex(0); डबल अस्थायी = _sensors.getTempFByIndex(0); // त्रुटियों की जांच करें - कभी-कभी शुरुआत में, अस्थायी 85C. के रूप में दिखाया जाता है

अगर (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "बहुत गर्म");}}

शून्य SMS_temp (डबल mytemp, स्ट्रिंग myalert) { mySerial.println ("एटी + सीएमजीएफ = 1"); // एसएमएस मोड विलंब (1000) पर सेट करें; mySerial.println ("एटी + सीएमजीएफ = 1"); // एसएमएस मोड विलंब (1000) पर सेट करें; //mySerial.println("AT+CMGS=\"+Your NUMBER\""); // फोन नंबर सेट करें (दोहरे उद्धरणों में लिपटे) देरी (1000); mySerial.print(mytemp, 1); mySerial.print(myalert); देरी (1000); mySerial.write(0x1A); // संदेश विलंब (1000) का ctrl + z अंत भेजता है; mySerial.write(0x0D); // हेक्स देरी (1000) में कैरिज रिटर्न; mySerial.write(0x0A); देरी (1000000); // 17 मिनट - अपने आवेदन के अनुरूप समायोजित करें}

Arduino IDE वातावरण खोलें - मैंने वर्णन किया है कि कैसे आप अपने पिछले निर्देश में विस्तार से इसके आसपास का रास्ता खोज सकते हैं, जिसका मैंने पहले उल्लेख किया था।

आपको निम्नलिखित पुस्तकालयों की आवश्यकता होगी

SoftwareSerial.h

वनवायर.एच

डलास तापमान। एच

इसके बाद, ATTINY85 पर RX और TX पिन कॉन्फ़िगर करें जिसे आपको A1 थिंकर से कनेक्ट करने की आवश्यकता है। ATTINY 85 में 8 पिन होते हैं, प्रत्येक तरफ चार पिन होते हैं और एक संदर्भ के रूप में सतह पर डॉट का उपयोग करके संरेखित किया जाता है। पिन 1 या रीसेट पिन thte dot के बगल में है।

(इस मामले में मैंने पिन२ और ३ को चुना - ये उसी तरफ हैं जिस तरफ रीसेट पिन है जो एटीटीआईएनवाई 85 की सतह पर डॉट के पास है। पिन २ रीसेट पिन के साथ अगला पिन है जबकि पिन ३ पिन के बीच है 2 और ग्राउंड)

अगला, आपको तापमान संवेदक को कॉन्फ़िगर करना होगा -

#परिभाषित करें ONE_WIRE_BUS 1

वनवायर _oneWire = वनवायर (ONE_WIRE_BUS);

डलास तापमान _sensors = डलास तापमान (&_oneWire);

अगला सॉफ्टवेयर सीरियल पोर्ट सेट करें

mySerial.begin(११५२००);

देरी (६००००);

और फिर सेंसर को _sensors.begin() से कॉल करें;

इसके बाद, लूप है, जो पूर्व-निर्धारित समय पर मतदान करता है, तापमान रिकॉर्ड करता है और मूल्य के आधार पर एक संदेश/अलर्ट भेजता है। यह एक फ़ंक्शन SMS_temp का उपयोग करता है जो वह भी है जहां आप लूप का समय निर्धारित करते हैं

शून्य लूप () {सेंसर। अनुरोध तापमान (); देरी (2000);

डबल अस्थायी = _sensors.getTempCByIndex(0);

डबल टेम्पफ = _sensors.getTempFByIndex(0);

अगर (अस्थायी <= 14) {SMS_temp (tempC, "खतरनाक ठंड");}

अगर (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "काफी ठंडा");}

अगर (tempC> 18 && tempC <23) {SMS_temp (tempC, "टेम्प जस्ट राइट");}

अगर (tempC>= 23 && error_temperature) {SMS_temp (tempC, "बहुत गर्म");}

}

==============

इसके बाद, ATTINY85 पर अपलोड करने की तैयारी के लिए Arduino IDE सेट करें।

ध्यान देने योग्य कई बातें

1- यदि आपके पास बोर्डों का ATTINY परिवार नहीं है, तो निम्न url https://raw.githubusercontent.com/damellis/attiny/… को File/Preferences/Additional Boards Manager URL में जोड़ें, इसके बाद, Arduio IDE के भीतर Tools/Board/Board Manager पर क्लिक करें और ATTINY खोजें और नया बोर्ड स्थापित करें। प्रोसेसर को Attiny85 में बदलें।

चरण 2: प्रोग्राम को ATTINY85. पर अपलोड करना

कार्यक्रम को ATTINY85. पर अपलोड करना
कार्यक्रम को ATTINY85. पर अपलोड करना

इसके अलावा, इस पर मेरे पिछले निर्देश देखें -

ATTINY85 में क्रमशः दो मोड, प्रोग्रामिंग और ऑपरेशन मोड हैं।1। प्रोग्रामिंग मोड सबसे पहले, ATTINY85 पर पिन की पहचान करें। ऐसा करने के लिए, चिप की सतह पर आरएसटी/रीसेट पिन के बगल में स्थित छोटे पायदान को ढूंढें। इसे संदर्भ बिंदु के रूप में उपयोग करके, आप बाकी पिनों की पहचान कर सकते हैं। यह सारी जानकारी A85 डेटा शीट -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp और ATTINY85 को ऊपर की छवि में दिखाए अनुसार जोड़ा जाना चाहिए।

अगला, Arduino IDE पर, प्रोग्रामर को USBasp और आवृत्ति को आंतरिक 8Mhz पर सेट करें।

USBasp को अपने लैपटॉप पर USB पोर्ट से कनेक्ट करें (Windows 10 पर, यदि आपके पास USBasp ड्राइवर नहीं है तो वेबसाइट https://www.fischl.de/usbasp/ के अनुसार Zadig का उपयोग करें)

अगला, USBasp कनेक्ट होने के साथ, Arduino IDE स्केच/अपलोड से चयन करें और उम्मीद है कि आपको Arduino IDE के लाल अक्षरों में दिखाई गई अपलोड प्रगति को देखना चाहिए और avrdude के साथ समाप्त होना चाहिए। धन्यवाद ।

इस स्तर पर कोई भी त्रुटि आमतौर पर ढीले केबल या गलत ड्राइवर से जुड़ी होती है।

चरण 3: अपना कार्यक्रम चलाना

अपना कार्यक्रम चलाना
अपना कार्यक्रम चलाना
अपना कार्यक्रम चलाना
अपना कार्यक्रम चलाना
अपना कार्यक्रम चलाना
अपना कार्यक्रम चलाना

सबसे पहले, डलास 18b20 थर्मामीटर सेंसर के बारे में कुछ। इसमें 3 पिन हैं, ग्राउंड (जी), डेटा (डी) और वीसीसी जैसा कि ऊपर की छवि में दिखाया गया है। संचालन के लिए, इसे 4.7k रोकनेवाला के साथ D और VCC को पाटने की आवश्यकता है। G और VCC संबंधित पोल से जुड़े हैं जबकि D एक ATTINY 85, पिन - [6] PB1 से जुड़ा है, जैसा कि कोड में कॉन्फ़िगर किया गया है।

इसके बाद, ATTINY को A6 GSM से इस प्रकार कनेक्ट करें (और ऊपर दिखाया गया है)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

और A6 पर ही, A6 PWR A6 VCC 5.0A6 RST A6 GND (अभी तक जमीन से कनेक्ट न करें !!!!!)

अब दोनों उपकरणों को पावर दें, और कुछ सेकंड के बाद, A6 RST पिन से जुड़े केबल के साथ A6 ग्राउंड पिन को अस्थायी रूप से स्पर्श करें। A6 चालू और बंद हो जाएगा और उम्मीद है, आपको जल्द ही अपने फोन पर तापमान डेटा प्राप्त करना चाहिए।

चरण 4: निष्कर्ष

यह शिक्षाप्रद सरल लग सकता है, लेकिन विचार यह स्पष्ट करना है कि कम लागत वाले घटकों के साथ क्या हासिल किया जा सकता है। जाहिर है, अगर आपके पास वाई-फाई या बीएलई हब तक पहुंच है तो अधिक उपयुक्त समाधान हैं।

मैंने तापमान रिकॉर्डिंग/ट्रांसमिशन आदि शुरू करने के लिए फोन पर एक एसएमएस भेजने जैसी अन्य कार्यक्षमताओं को कवर नहीं किया।

सिफारिश की: