ዝርዝር ሁኔታ:

የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM: 5 ደረጃዎች
የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM: 5 ደረጃዎች

ቪዲዮ: የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM: 5 ደረጃዎች

ቪዲዮ: የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM: 5 ደረጃዎች
ቪዲዮ: እንደዚክ አይነት መጥለፊያ አፕ ኣይቸ አላቅም (control all phones) 2024, ሀምሌ
Anonim
የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM
የኤስኤምኤስ የጽሑፍ ቴምፕ ማንቂያዎች ከ ATTINY85 እና A1 GSM

ይህ አስተማሪ የሙቀት መጠንን ከቀላል የሙቀት ዳሳሽ እንዴት እንደሚይዙ እና በሞባይል ስልክዎ በኤስኤምኤስ ጽሑፍ እንደሚልኩ ያሳየዎታል። ነገሮችን ለማቃለል ፣ በተወሰነ የሙቀት መጠን የሙቀት መጠኑን እልካለሁ ፣ ግን ይህ እንዴት በልዩ / ማንቂያዎች ብቻ እንደሚደረግ አሳያለሁ። ከግምት ውስጥ የሚገቡ ተደጋጋሚ የኤስኤምኤስ ወጪዎች ቢኖሩም ሃርድዌርው በጣም ዝቅተኛ ዋጋ ፣ ከ 10 ዶላር በታች ነው።

ከባድ ማንሳት የሚከናወነው በቀላል ግን ኃይለኛ በሆነው ATTINY 85 የሙቀት መጠን ውሂቡን በሚይዝ እና ከዚያ በኤአይ-አስሊ A6 GSM ሞዱል በኩል ለመላክ ኤስኤምኤስ ያስነሳል።

በአጭሩ ፣ በአርዱዲኖ አይዲኢ አከባቢ ውስጥ የ ATTINY85 ኮዱን ይጽፉ እና የዩኤስቢኤስፒ ተከታታይ/የዩኤስቢ መቀየሪያን በመጠቀም በ ATTINY85 ላይ ያቃጥሉታል። በሁለት ቀዳሚ አጋዥ ስልጠናዎች ውስጥ AI- Thinker A6 GSM ሞጁሉን እና አርዱዲኖ አይዲኢን ማቀናበሩን ሸፍኗል። እዚህ የሚለየው ተከታታይ ግንኙነቶችን በመጠቀም የ ATTINY እና A6 GSM ሞጁሉን ማገናኘት ነው።

www.instructables.com/id/ እንዴት-ወደ-መላክ-ኤስ.ኤም.ኤም.

ከፕሮግራሙ በኋላ ፣ ATTINY የሙቀት መረጃን ከቴርሞሜትር ዳሳሽ ያነባል - ዳላስ 18B20- ከዚያም ውሂቡን እና ትዕዛዞቹን በተከታታይ ግንኙነት ወደ A6 GSM ሞጁል ይልካል ከዚያም ወደ ኤስኤምኤስ ጽሑፍ ወደ ሞባይል / ስማርት ስልክዎ ይልካል።

የሚያስፈልግዎት እዚህ አለ

1. USBASP ተከታታይ/ዩኤስቢ መቀየሪያ።

2. ATTINY 85.

3. AI-Thinker A6 GSM ሞዱል ስሪት 6 (የኤስኤምኤስ ክሬዲት ካለው ሲም ጋር)።

4. 3.3v የዳቦ ሰሌዳ የኃይል አቅርቦት ለ ATTINY85።

5. ለ 3.3.v የዩኤስቢ የኃይል አቅርቦት ለ AI- አስታራቂ A6 GSM ሞዱል።

6. ዳላስ 18 ቢ 20 የሙቀት ዳሳሽ..

7. 4.7 ኪ ለ 18B20 ዳሳሽ።

8. የዳቦ ሰሌዳ እና ኬብሎች።

9. አርዱዲኖ አይዲኢ (እኔ ስሪት 1.8.5. ለዚህ ተጠቀምኩ)።

10. ዊንዶውስ ኤክስ ላፕቶፕ (ስሪት 10 ን ተጠቅሜያለሁ) ከነፃ የዩኤስቢ ወደብ ጋር።

ደረጃ 1 ATTINY 85 ን ፕሮግራም ማድረግ

የአርዱዲኖ አይዲኢ ኮድ እዚህ አለ (ኤስኤምኤስ ለመላክ የሚፈልጉትን የስልክ ቁጥር መለወጥ ይኖርብዎታል)።

#አካትት #አካትት #አካት

// *** // *** የ RX እና TX ፒኖችን ይግለጹ። ጥቅም ላይ ያልዋሉ ማናቸውንም ሁለት / *** *** ፒኖችን ይምረጡ። I2C ን ለመጠቀም ካሰቡ D0 (ፒን 5) // *** እና D2 (ፒን 7) ለማስወገድ ይሞክሩ። // *** #መግለፅ RX 3 // *** D3 ፣ ፒን 2 #መግለፅ TX 4 // *** D4 ፣ ፒን 3

// *** // *** በሶፍትዌር ላይ የተመሠረተ ተከታታይ ወደብ ይግለጹ። በሃርድዌር ላይ የተመሠረተ ተከታታይን በሚደግፉ ሌሎች // *** የመሣሪያ ስርዓቶች ላይ ኮድ እንዲጠቀም የ // *** ስም Serial ን በመጠቀም። በርቷል // *** የሃርድዌር ተከታታይን የሚደግፉ ቺፕስ ፣ ልክ // *** ይህንን መስመር አስተያየት ይስጡ። // ***

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 ሜኸ

// *** // *** የ OneWire ውሂብ // *** ሽቦ የተገናኘበትን ፒን። // *** #ONE_WIRE_BUS 1 ን ይግለጹ

// *** // *** ከማንኛውም የ OneWire // *** መሣሪያዎች ጋር ለመገናኘት የ OneWire ምሳሌን ያዋቅሩ (ማክስም/ዳላስ የሙቀት አይሲዎች ብቻ አይደሉም)። // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** የእኛን የአንድ ዋየር ማጣቀሻ ለዳላስ ሙቀት ያስተላልፉ። // *** የዳላስ ቴምፕሬተር _ ዳሳሾች = የዳላስ ቴምፕሬተር (& _ oneWire);

ባዶነት ማዋቀር () {// *** // *** ተከታታይ ወደብ // *** mySerial.begin (115200) ያስጀምሩ; መዘግየት (60000);

// *** ቤተመጽሐፉን ያስጀምሩ። _sensors.begin (); }

ባዶነት loop () {

// *** // *** የአሁኑን የሙቀት መጠን ያግኙ እና ያሳዩ። // *** _sensors.requestTemperatures (); መዘግየት (2000); ድርብ tempC = _sensors.getTempCByIndex (0); ድርብ tempF = _sensors.getTempFByIndex (0); // ስህተቶችን ይፈትሹ - አንዳንድ ጊዜ ሲጀመር ፣ የሙቀት መጠኑ እንደ 85 ሲ ይታያል

ከሆነ (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC ፣ «በጣም ሞቃት»);}}

ባዶነት 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 (የእኔ ሙከራ ፣ 1); mySerial.print (myalert); መዘግየት (1000); mySerial.write (0x1A); // የመልዕክት መዘግየት ctrl+z መጨረሻን ይልካል (1000); mySerial.write (0x0D); // በሄክስ መዘግየት ውስጥ መጓጓዣ መመለስ (1000); mySerial.write (0x0A); መዘግየት (1000000); // 17 ደቂቃዎች - ከራስዎ መተግበሪያ ጋር ለመስማማት ያስተካክሉ}

የአርዱዲኖ አይዲኢ አከባቢን ይክፈቱ - ቀደም ሲል በጠቀስኩት በቀድሞው መመሪያዬ ውስጥ በዚህ ዙሪያ እርስዎን እንዴት ማግኘት እንደሚቻል በዝርዝር ገልጫለሁ።

የሚከተሉትን ቤተ -መጻሕፍት ያስፈልግዎታል

ሶፍትዌርSerial.h

OneWire.h

የዳላስ የሙቀት መጠን

በመቀጠል ፣ ከ A1 አስማሚ ጋር መገናኘት በሚፈልጉበት ATTINY85 ላይ የ RX እና TX ፒኖችን ያዋቅሩ። ATTINY 85 8 ፒኖች አሉት ፣ በእያንዳንዱ ጎን አራት እና በላዩ ላይ ያለውን ነጥብ በመጠቀም ማጣቀሻ ነው። ፒን 1 ወይም ዳግም ማስጀመሪያ ፒን ከጠቋሚው ነጥብ አጠገብ ነው።

(በዚህ ሁኔታ ፒን 2 እና 3 ን መርጫለሁ - እነዚህ በ ATTINY 85 ገጽ ላይ ካለው የ RESET ፒን ጋር በተመሳሳይ ጎን ናቸው። ፒን 2 ከ ‹ዳግም ማስቀመጫ› ፒን ጋር ቀጣዩ ፒን ሲሆን ፒን 3 በፒን መካከል ነው 2 እና መሬት)

በመቀጠል የሙቀት ዳሳሹን ማዋቀር አለብዎት -

#ONE_WIRE_BUS 1 ን ይግለጹ

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

የዳላስ ቴምፕሬተር _ ዳሳሾች = የዳላስ ቴምፕሬተር (& _ oneWire);

ቀጥሎ የሶፍትዌር ተከታታይ ወደብ ያዘጋጁ

mySerial.begin (115200);

መዘግየት (60000);

እና ከዚያ ዳሳሾቹን በ _sensors.begin () ይደውሉ ፤

በመቀጠልም ፣ አስቀድሞ በተወሰነው ጊዜ ዙሪያ ድምጽ የሚሰጥ ፣ ሞገዱን የሚዘግብ እና በእሴቱ ላይ በመመርኮዝ መልእክት / ማንቂያ ይልካል። እሱ የ SMS_temp ን ተግባር ይጠቀማል ፣ እሱም የሉፉን ጊዜ የሚያዘጋጁበት ነው

ባዶነት loop () {sensors.requestTemperatures (); መዘግየት (2000);

ድርብ tempC = _sensors.getTempCByIndex (0);

ድርብ tempF = _sensors.getTempFByIndex (0);

ከሆነ (tempC <= 14) {SMS_temp (tempC ፣ "አደገኛ ቀዝቃዛ");}

ከሆነ (tempC> 14 && tempC <= 18) {SMS_temp (tempC ፣ «በጣም ቀዝቃዛ»);}

ከሆነ (tempC> 18 && tempC <23) {SMS_temp (tempC ፣ “Temp Just right”);}

ከሆነ (tempC> = 23 && error_temperature) {SMS_temp (tempC ፣ «በጣም ሞቃት»);}

}

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

በመቀጠል ፣ ወደ ATTINY85 ለመስቀል ለመዘጋጀት Arduino IDE ን ያዘጋጁ።

ልብ ሊሏቸው የሚገቡ በርካታ ነገሮች

1- የ ATTINY የቦርዶች ቤተሰብ ከሌለዎት የሚከተለውን url https://raw.githubusercontent.com/damellis/attiny/… ውስጥ በፋይል/ምርጫ/ተጨማሪ የቦርዶች ሥራ አስኪያጅ ዩአርኤል ውስጥ ይጨምሩ ፣

በመቀጠል ፣ በአርዱዲዮ አይዲኢ ውስጥ በመሣሪያዎች/ቦርድ/ቦርድ ሥራ አስኪያጅ ላይ ጠቅ ያድርጉ እና ATTINY ን ይፈልጉ እና አዲሱን ሰሌዳ ይጫኑ። ማቀነባበሪያውን ወደ አቲን 85 ይለውጡ።

ደረጃ 2 ፕሮግራሙን ወደ ATTINY85 በመስቀል ላይ

ፕሮግራሙን ወደ ATTINY85 በመስቀል ላይ
ፕሮግራሙን ወደ ATTINY85 በመስቀል ላይ

እንዲሁም በዚህ ላይ የቀድሞ አስተማሪዬን ይመልከቱ-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 በቅደም ተከተል ሁለት ሁነታዎች ፣ የፕሮግራም እና የአሠራር ሁነታዎች አሉት ።1. የፕሮግራም ሞድ በመጀመሪያ ፣ በ ATTINY85 ላይ ያሉትን ፒኖች ይለዩ። ይህንን ለማድረግ ከ RST/RESET ፒን አጠገብ ባለው ቺፕ ላይ ያለውን ትንሽ ደረጃ ይፈልጉ። ይህንን እንደ ማጣቀሻ ነጥብ በመጠቀም የተቀሩትን ፒኖች መለየት ይችላሉ። ይህ ሁሉ መረጃ በ A85 የመረጃ ሉህ ውስጥ ተሰጥቷል -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

ከላይ በምስሉ ላይ እንደሚታየው USBasp እና ATTINY85 መገናኘት አለባቸው።

በመቀጠል ፣ በአርዱዲኖ አይዲኢ ላይ ፕሮግራሙን ወደ ዩኤስቢፕ እና ድግግሞሹን ወደ ውስጣዊ 8Mhz ያቀናብሩ።

በላፕቶፕዎ ላይ ዩኤስቢያንን ከዩኤስቢ ወደብ ጋር ያገናኙ (በዊንዶውስ 10 ላይ ፣ የዩኤስቢስፕ ሾፌር ከሌለዎት በድረ -ገጹ https://www.fischl.de/usbasp/ መሠረት Zadig ን ይጠቀሙ።

በመቀጠል ፣ ከዩኤስቢኤስፕ ጋር ተገናኝቶ ፣ ከ Arduino IDE Sketch/upload ይምረጡ እና በአርዱዲኖ አይዲኢ በቀይ ፊደላት የሚታየውን የሰቀላ ሂደት ማየት እና በ avrdude መጠናቀቁን ማየት አለብዎት ብለን ተስፋ እናደርጋለን። አመሰግናለሁ.

በዚህ ደረጃ ላይ ያሉ ማናቸውም ስህተቶች ከተለመዱት ገመዶች ወይም ከተሳሳተ አሽከርካሪ ጋር የተቆራኙ ናቸው።

ደረጃ 3 - ፕሮግራምዎን ማስኬድ

ፕሮግራምዎን ማስኬድ
ፕሮግራምዎን ማስኬድ
ፕሮግራምዎን ማስኬድ
ፕሮግራምዎን ማስኬድ
ፕሮግራምዎን ማስኬድ
ፕሮግራምዎን ማስኬድ

በመጀመሪያ ፣ ስለ ዳላስ 18b20 ቴርሞሜትር ዳሳሽ የሆነ ነገር። ከላይ በምስሉ ላይ እንደሚታየው 3 ፒን ፣ መሬት (ጂ) ፣ መረጃ (ዲ) እና ቪሲሲ አለው። ለአሠራር ፣ ዲ እና ቪሲሲን በ 4.7 ኪ resistor ማገናኘት ይጠይቃል። ጂ እና ቪሲሲ በየራሳቸው ምሰሶዎች የተገናኙ ሲሆኑ D ከቁጥሩ 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 የመሬቱን ፒን ለጊዜው ይንኩ። ኤ 6 ያበራል እና ያበራ እና ተስፋ እናደርጋለን ፣ በቅርቡ በስልክዎ ላይ የሙቀት መረጃን መቀበል አለብዎት።

ደረጃ 4 መደምደሚያ

ይህ አስተማሪ ቀለል ያለ ሊመስል ይችላል ፣ ግን ሀሳቡ በዝቅተኛ ዋጋ አካላት ምን ሊገኝ እንደሚችል ለማሳየት ነው። በግልጽ ለማየት እንደሚቻለው የ wi-fi ወይም የ BLE ማዕከል መዳረሻ ካለዎት ከዚያ የበለጠ ተገቢ መፍትሄዎች አሉ።

የሙቀት ቀረፃ / ማስተላለፍን ወዘተ ለመጀመር ወደ ስልኩ ኤስ ኤም ኤስ መላክን የመሳሰሉ ሌሎች ተግባሮችን አልሸፈንም።

የሚመከር: