সুচিপত্র:

একটি ATTINY85 এবং A1 GSM থেকে এসএমএস টেক্সট টেম্প সতর্কতা: 5 টি ধাপ
একটি ATTINY85 এবং A1 GSM থেকে এসএমএস টেক্সট টেম্প সতর্কতা: 5 টি ধাপ

ভিডিও: একটি ATTINY85 এবং A1 GSM থেকে এসএমএস টেক্সট টেম্প সতর্কতা: 5 টি ধাপ

ভিডিও: একটি ATTINY85 এবং A1 GSM থেকে এসএমএস টেক্সট টেম্প সতর্কতা: 5 টি ধাপ
ভিডিও: Data recovery from a dead MicroSD card using PC3000 Flash and Spider Board (without soldering) 2024, জুলাই
Anonim
একটি ATTINY85 এবং A1 GSM থেকে SMS টেক্সট টেম্প সতর্কতা
একটি ATTINY85 এবং A1 GSM থেকে SMS টেক্সট টেম্প সতর্কতা

এই নির্দেশযোগ্য আপনাকে দেখায় কিভাবে একটি সাধারণ তাপমাত্রা সেন্সর থেকে তাপমাত্রা ক্যাপচার করতে হয় এবং এটি আপনার মোবাইল ফোনে এসএমএস পাঠ্যের মাধ্যমে পাঠাতে হয়। জিনিসগুলিকে সহজ করার জন্য, আমি একটি নির্দিষ্ট ব্যবধানে তাপমাত্রা পাঠাই কিন্তু আমি এটাও দেখাই যে কিভাবে এটি শুধুমাত্র ব্যতিক্রম / সতর্কতা দ্বারা করা যেতে পারে। হার্ডওয়্যারটি খুব কম খরচে, 10 ডলারেরও কম, যদিও পুনরাবৃত্ত এসএমএস খরচগুলি বিবেচনা করতে হবে।

সহজ কিন্তু শক্তিশালী ATTINY 85 দ্বারা ভারী উত্তোলন করা হয় যা তাপমাত্রার তথ্য ক্যাপচার করে এবং তারপর একটি AI-Thinker A6 GSM মডিউলের মাধ্যমে একটি এসএমএস পাঠায়।

সংক্ষেপে, আপনি Arduino IDE পরিবেশে ATTINY85 কোড লিখুন এবং এটি একটি USBASP সিরিয়াল/ইউএসবি কনভার্টার ব্যবহার করে ATTINY85 এ বার্ন করুন। আমি পূর্ববর্তী দুটি টিউটোরিয়ালে AI-Thinker A6 GSM মডিউল এবং Arduino IDE সেট আপ করা হয়েছে। এখানে যা ভিন্ন তা হল ATTINY এবং A6 GSM মডিউলকে সিরিয়াল যোগাযোগ ব্যবহার করে ইন্টারফেস করা।

www.instructables.com/id/How-to-Send-an-SM…

প্রোগ্রামিং করার পর, ATTINY একটি থার্মোমিটার সেন্সর - ডালাস 18B20- থেকে তাপমাত্রার তথ্য পড়ে এবং তারপর A6 GSM মডিউলে সিরিয়াল সংযোগের মাধ্যমে ডেটা এবং কমান্ড পাঠায় যা তারপর এটি আপনার মোবাইল / স্মার্ট ফোনে একটি এসএমএস পাঠ্য হিসাবে পাঠায়।

আপনার যা প্রয়োজন তা এখানে:

1. ইউএসবিএএসপি সিরিয়াল/ইউএসবি কনভার্টার।

2. ATTINY 85।

3. AI-Thinker A6 GSM মডিউল সংস্করণ 6 (একটি সিম যার সাথে এসএমএস ক্রেডিট আছে)।

4. ATTINY85 এর জন্য 3.3v ব্রেডবোর্ড পাওয়ার সাপ্লাই।

5. AI-Thinker A6 GSM মডিউলের জন্য 3.3.v USB পাওয়ার সাপ্লাই।

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) এড়ানোর চেষ্টা করুন। // *** #ডিএফাইন RX 3 // *** D3, পিন 2 #ডিফাইন TX 4 // *** D4, পিন 3

// *** // *** সফটওয়্যার ভিত্তিক সিরিয়াল পোর্ট সংজ্ঞায়িত করুন। // *** নাম সিরিয়াল ব্যবহার করে যাতে কোড অন্য // *** প্ল্যাটফর্মে ব্যবহার করা যায় যা হার্ডওয়্যার ভিত্তিক সিরিয়াল সমর্থন করে। // *** চিপ যা হার্ডওয়্যার সিরিয়াল সমর্থন করে, শুধু // *** এই লাইনটি মন্তব্য করুন। // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ================== ======================================================== =========================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [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) // *** // ATTINY 85 ফ্রিকোয়েন্সি অভ্যন্তরীণ 8 MHz এ সেট

// *** // *** পিন যার উপর ওয়ানওয়ায়ার ডেটা // *** ওয়্যার সংযুক্ত। // *** ON_WIRE_BUS 1 নির্ধারণ করুন

// *** // *** যেকোন ওয়ানওয়ায়ার // *** ডিভাইসের সাথে যোগাযোগের জন্য ওয়ান ওয়াইয়ারের উদাহরণ সেটআপ করুন (শুধু ম্যাক্সিম/ডালাস তাপমাত্রা আইসি নয়)। // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** ডালাস তাপমাত্রার জন্য আমাদের ওয়ানওয়্যার রেফারেন্স পাস করুন। // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

অকার্যকর সেটআপ () {// *** // *** সিরিয়াল পোর্ট শুরু করুন // *** mySerial.begin (115200); বিলম্ব (60000);

// *** লাইব্রেরি শুরু করুন। _sensors.begin (); }

অকার্যকর লুপ () {

// *** // *** বর্তমান তাপমাত্রা পান এবং এটি প্রদর্শন করুন। // *** _sensors.requestTempemeters (); বিলম্ব (2000); ডবল tempC = _sensors.getTempCByIndex (0); ডবল tempF = _sensors.getTempFByIndex (0); // ত্রুটির জন্য পরীক্ষা করুন - কখনও কখনও শুরুতে, তাপমাত্রা 85C হিসাবে দেখানো হয়

যদি (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}}

অকার্যকর SMS_temp (ডবল mytemp, স্ট্রিং myalert) {mySerial.println ("AT+CMGF = 1"); // এসএমএস মোড বিলম্ব (1000) সেট; mySerial.println ("AT+CMGF = 1"); // এসএমএস মোড বিলম্ব (1000) সেট; //mySerial.println("AT+CMGS=\"+YOUR NUMBER / ""); // ফোন নম্বর সেট করুন (ডাবল কোটে মোড়ানো) বিলম্ব (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); বিলম্ব (1000); mySerial.write (0x1A); // পাঠায় ctrl+z বার্তা বিলম্বের শেষ (1000); mySerial.write (0x0D); // হেক্স বিলম্বে ক্যারেজ রিটার্ন (1000); mySerial.write (0x0A); বিলম্ব (1000000); // 17 মিনিট - আপনার নিজের আবেদন অনুসারে সামঞ্জস্য করুন}

Arduino IDE এনভায়রনমেন্টটি খুলুন - আমি আমার পূর্ববর্তী নির্দেশাবলীতে বিস্তারিতভাবে এই সম্পর্কে আপনাকে কীভাবে খুঁজে বের করতে হয় তা বর্ণনা করেছি যা আমি আগে উল্লেখ করেছি।

আপনার নিম্নলিখিত লাইব্রেরিগুলির প্রয়োজন হবে

SoftwareSerial.h

OneWire.h

ডালাস তাপমাত্রা

এরপরে, ATTINY85 এ RX এবং TX পিনগুলি কনফিগার করুন যা আপনাকে A1 চিন্তকের সাথে সংযুক্ত করতে হবে। ATTINY 85 এর 8 টি পিন আছে, প্রতিটি পাশে চারটি এবং পৃষ্ঠের একটি বিন্দু ব্যবহার করে একটি রেফারেন্স দিয়ে বিন্যস্ত। পিন 1 বা রিসেট পিন টি ডট এর পাশে।

(এই ক্ষেত্রে আমি পিন 2 এবং 3 বেছে নিয়েছি - এইগুলি RESET পিনের মতোই যা ATTINY 85 পৃষ্ঠের বিন্দুর পাশে আছে 2 এবং গ্রাউন্ড)

পরবর্তী, আপনাকে তাপমাত্রা সেন্সর কনফিগার করতে হবে -

#সংজ্ঞায়িত ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

পরবর্তী সফ্টওয়্যার সিরিয়াল পোর্ট সেট আপ করুন

mySerial.begin (115200);

বিলম্ব (60000);

এবং তারপর _sensors.begin () দিয়ে সেন্সর কল করুন;

এর পরে, একটি লুপ রয়েছে, যা একটি পূর্বনির্ধারিত সময়ে ভোট দেয়, তাপমাত্রা রেকর্ড করে এবং মান অনুযায়ী একটি বার্তা / সতর্কতা পাঠায়। এটি একটি ফাংশন SMS_temp ব্যবহার করে যা আপনি যেখানে লুপের সময় নির্ধারণ করেন

অকার্যকর লুপ () {sensors.requestTempemeters (); বিলম্ব (2000);

ডবল tempC = _sensors.getTempCByIndex (0);

ডবল tempF = _sensors.getTempFByIndex (0);

যদি (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}

যদি (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "বেশ ঠান্ডা");}

যদি (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}

যদি (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}

}

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

পরবর্তী, ATTINY85 এ আপলোড করার জন্য প্রস্তুত করার জন্য Arduino IDE সেট আপ করুন।

নোট করার মতো কিছু জিনিস

1- যদি আপনার বোর্ডের ATTINY পরিবার না থাকে, তাহলে ফাইল/পছন্দ/অতিরিক্ত বোর্ড ম্যানেজারের URL- এ নিম্নলিখিত url যোগ করুন

পরবর্তী, Arduio IDE এর মধ্যে সরঞ্জাম/বোর্ড/বোর্ড ম্যানেজারে ক্লিক করুন এবং ATTINY অনুসন্ধান করুন এবং নতুন বোর্ড ইনস্টল করুন। Attiny85 এ প্রসেসর পরিবর্তন করুন।

ধাপ 2: ATTINY85 এ প্রোগ্রাম আপলোড করা হচ্ছে

ATTINY85 এ প্রোগ্রাম আপলোড করা হচ্ছে
ATTINY85 এ প্রোগ্রাম আপলোড করা হচ্ছে

এছাড়াও, এই বিষয়ে আমার আগের নির্দেশাবলী পড়ুন-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 এর যথাক্রমে দুটি মোড, প্রোগ্রামিং এবং অপারেশন মোড রয়েছে। প্রোগ্রামিং মোড প্রথমে ATTINY85 এর পিনগুলি চিহ্নিত করুন। এটি করার জন্য, RST/RESET পিনের পাশে থাকা চিপের পৃষ্ঠে সামান্য খাঁজ খুঁজুন। এটি একটি রেফারেন্স পয়েন্ট হিসাবে ব্যবহার করে, আপনি বাকি পিনগুলি সনাক্ত করতে পারেন। এই সমস্ত তথ্য A85 ডেটা শীটে দেওয়া হয়েছে -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp এবং ATTINY85 উপরের ছবিতে দেখানো হিসাবে সংযুক্ত হওয়া উচিত।

পরবর্তী, Arduino IDE- এ, প্রোগ্রামারকে USBasp এবং ফ্রিকোয়েন্সিটি অভ্যন্তরীণ 8Mhz এ সেট করুন।

আপনার ল্যাপটপে একটি USB পোর্টের সাথে USBasp সংযুক্ত করুন (উইন্ডোজ 10 -এ, যদি আপনার কাছে USBasp ড্রাইভার না থাকে তবে ওয়েবসাইট https://www.fischl.de/usbasp/ অনুযায়ী Zadig ব্যবহার করুন)

পরবর্তীতে, USBasp সংযুক্ত থাকাকালীন, Arduino IDE স্কেচ/আপলোড থেকে নির্বাচন করুন এবং আশা করি আপনি Arduino IDE এর লাল অক্ষরে দেখানো আপলোডের অগ্রগতি দেখতে পাবেন এবং এভারডুড সম্পন্ন হয়ে শেষ হবে। ধন্যবাদ.

এই পর্যায়ে যে কোনও ত্রুটিগুলি সর্বদা আলগা কেবল বা ভুল চালকের সাথে যুক্ত।

ধাপ 3: আপনার প্রোগ্রাম চালানো

আপনার প্রোগ্রাম চালানো
আপনার প্রোগ্রাম চালানো
আপনার প্রোগ্রাম চালানো
আপনার প্রোগ্রাম চালানো
আপনার প্রোগ্রাম চালানো
আপনার প্রোগ্রাম চালানো

প্রথমত, ডালাস 18b20 থার্মোমিটার সেন্সর সম্পর্কে কিছু। এটিতে 3 টি পিন, গ্রাউন্ড (জি), ডেটা (ডি) এবং ভিসিসি উপরের ছবিতে দেখানো হয়েছে। অপারেশনের জন্য, এটি একটি 4.7k প্রতিরোধক সঙ্গে D এবং VCC সেতু প্রয়োজন। কোডটি কনফিগার করা হিসাবে, D এবং ATTINY 85, পিন - [6] PB1- এর সাথে G এবং VCC সংশ্লিষ্ট মেরুতে সংযুক্ত থাকে।

পরবর্তীতে, 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: উপসংহার

এই নির্দেশযোগ্যটি বরং সহজ মনে হতে পারে কিন্তু ধারণাটি হল কম খরচের উপাদান দিয়ে কী অর্জন করা যায় তা ব্যাখ্যা করা। স্পষ্টতই, যদি আপনার ওয়াই-ফাই বা বিএলই হাবের অ্যাক্সেস থাকে তবে আরও উপযুক্ত সমাধান রয়েছে।

আমি তাপমাত্রা রেকর্ডিং / ট্রান্সমিশন ইত্যাদি শুরু করার জন্য ফোনে একটি এসএমএস পাঠানোর মতো অন্যান্য কার্যকারিতা অন্তর্ভুক্ত করি নি।

প্রস্তাবিত: