Мазмұны:

ATTINY85 және A1 GSM -ден SMS мәтіндік хабарландырулары: 5 қадам
ATTINY85 және A1 GSM -ден SMS мәтіндік хабарландырулары: 5 қадам

Бейне: ATTINY85 және A1 GSM -ден SMS мәтіндік хабарландырулары: 5 қадам

Бейне: ATTINY85 және A1 GSM -ден SMS мәтіндік хабарландырулары: 5 қадам
Бейне: XIAOMI REDMI A1: An Ultra-Budget King // Things To Know Before Buy 2024, Шілде
Anonim
ATTINY85 және A1 GSM хабарламаларынан SMS мәтіні туралы ескертулер
ATTINY85 және A1 GSM хабарламаларынан SMS мәтіні туралы ескертулер

Бұл нұсқаулық қарапайым температура сенсорынан температураны алуды және оны смс -мәтінмен ұялы телефонға жіберуді көрсетеді. Жеңілдету үшін мен температураны белгіленген аралықта жіберемін, бірақ мен мұны тек ерекше жағдайлар / ескертулер арқылы ғана жасауға болатынын көрсетемін. Аппараттық құралдың бағасы өте төмен, 10 доллардан аз, бірақ смс -хабарламалардың қайталанатын шығындары бар.

Ауыр көтеруді қарапайым, бірақ қуатты ATTINY 85 көтереді, ол температура туралы мәліметтерді жинайды, содан кейін AI-Thinker A6 GSM модулі арқылы SMS жібереді.

Қысқаша айтқанда, сіз 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 термометр сенсорынан - Dallas 18B20 - температура мәліметтерін оқиды, содан кейін деректер мен командаларды A6 GSM модуліне сериялық қосылу арқылы жібереді, содан кейін оны ұялы телефонға / смартфонға SMS мәтіні ретінде жібереді.

Міне сізге қажет:

1. USBASP сериялық/USB түрлендіргіші.

2. ATTINY 85.

3. AI-Thinker A6 GSM модулінің 6-нұсқасы (SMS несиелері бар симмен).

4. ATTINY85 үшін 3.3В нан тақтасының қуат көзі.

5. 3.3.v AI-Thinker A6 GSM модулі үшін USB қуат көзі.

6. Dallas 18B20 температура сенсоры.

7. 18В20 датчигі үшін 4.7к резистор.

8. Нан тақтасы мен кабельдер.

9. Arduino IDE (мен бұл үшін 1.8.5 нұсқасын қолдандым).

10. Ақысыз USB порты бар Windows X ноутбукі (мен 10 нұсқасын қолдандым).

1 -қадам: ATTINY 85 бағдарламалау

Міне Arduino IDE коды (SMS жіберілетін телефон нөмірін өзгерту қажет болады.)

#қосу #қосу #қосу

// *** // *** RX және TX түйреуіштерін анықтаңыз. Пайдаланылмайтын кез келген екі // *** түйреуішті таңдаңыз. Егер сіз I2C пайдалануды жоспарласаңыз, D0 (5 -ші түйін) // *** және D2 (7 -штыр) болдырмауға тырысыңыз. // *** #RX 3 анықтаңыз // *** D3, 2 түйреу #TX 4 анықтаңыз // *** D4, 3 түйреуіш

// *** // *** Бағдарламалық жасақтамаға негізделген сериялық портты анықтаңыз. Кодты аппараттық құралдарға негізделген серияны қолдайтын басқа // *** платформаларында қолдануға болатындай // сериялық // *** атауын пайдалану. Аппараттық серияны қолдайтын // *** чиптерінде бұл жолға // *** түсініктеме беріңіз. // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** 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 данасын орнатыңыз (тек Максим/Даллас температурасы IC -ін ғана емес). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Біздің OneWire сілтемесін Даллас температурасына жіберіңіз. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Сериялық портты инициализациялау // *** mySerial.begin (115200); кешіктіру (60000);

// *** Кітапхананы іске қосыңыз. _sensors.begin (); }

void loop () {

// *** // *** Ағымдағы температураны алыңыз және оны көрсетіңіз. // *** _sensors.requestTemperatures (); кешіктіру (2000); қос tempC = _sensors.getTempCByIndex (0); қос tempF = _sensors.getTempFByIndex (0); // қателерді тексеру - кейде басында, температура 85C ретінде көрсетіледі

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, «Тым жылы»);}}

жарамсыз SMS_temp (double mytemp, String myalert) {mySerial.println («AT+CMGF = 1»); // SMS режимінің кідірісін орнату (1000); mySerial.println («AT+CMGF = 1»); // SMS режимінің кідірісін орнату (1000); //mySerial.println("AT+CMGS=\"+СЕНІҢ НОМЕРІҢ «\» «); // телефон нөмірін орнатыңыз (қос тырнақшамен оралған) кешіктіру (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

Даллас температурасы.h

Әрі қарай, ATTINY85 құрылғысында A1 ойлағышпен қосылу қажет RX және TX түйреуіштерін конфигурациялаңыз. ATTINY 85 -де 8 түйреуіш бар, олардың әрқайсысы төртеу және бетіндегі нүкте арқылы сілтеме бойынша тураланған. 1 -түйреуіш немесе RESET түйрегіші нүктенің жанында.

(бұл жағдайда мен Pin2 мен 3 -ті таңдадым - олар ATTINY 85 бетіндегі нүктенің қасында орналасқан RESET түйреуішімен бір жағында. 2 -ші түйін - RESET түйреуішінен кейінгі келесі түйреуіш, ал 3 -түйреуіш түйреуіш арасында 2 және GROUND)

Әрі қарай, температура сенсорын конфигурациялау керек -

#ONE_WIRE_BUS анықтаңыз

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Содан кейін бағдарламалық жасақтаманың портын орнатыңыз

mySerial.begin (115200);

кешіктіру (60000);

содан кейін сенсорларды _sensors.begin () көмегімен шақырыңыз;

Әрі қарай, алдын ала белгіленген уақытта сауалнама жүргізетін, температураны жазатын және мәнге байланысты хабарлама / ескерту жіберетін цикл бар. Ол SMS_temp функциясын қолданады, онда сіз циклдің уақытын орнатасыз

void loop () {sensors.requestTemperatures (); кешіктіру (2000);

қос tempC = _sensors.getTempCByIndex (0);

қос tempF = _sensors.getTempFByIndex (0);

егер (tempC <= 14) {SMS_temp (tempC, «ҚАТЕРЛІ суық»);}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, «Өте суық»);}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, «Temp Just right»);}

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, «Тым жылы»);}

}

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

Содан кейін ATTINY85 жүктеуге дайын болу үшін Arduino IDE орнатыңыз.

Бірнеше нәрсеге назар аудару керек

1- Егер сізде ATTINY тақталар отбасы болмаса, мына URL мекенжайын қосыңыз: File/Preferences/Қосымша тақталар менеджерінің URL мекенжайына

Содан кейін Arduio IDE ішінде Tools/Board/Board Manager түймесін басып, ATTINY іздеп, жаңа тақтаны орнатыңыз. Процессорды Attiny85 етіп өзгертіңіз.

2 -қадам: Бағдарламаны ATTINY85 -ке жүктеу

Бағдарламаны ATTINY85 жүйесіне жүктеу
Бағдарламаны ATTINY85 жүйесіне жүктеу

Сондай-ақ, бұл туралы алдыңғы нұсқаулықты қараңыз-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 екі режимі бар, сәйкесінше бағдарламалау және операциялар режимі.1. БАҒДАРЛАМА РЕЖИМІ Алдымен ATTINY85 құрылғысындағы түйреуіштерді анықтаңыз. Ол үшін чиптің бетіндегі RST/RESET түйреуішінің жанындағы кішкене ойықты табыңыз. Мұны сілтеме нүктесі ретінде қолдана отырып, қалған түйреуіштерді анықтауға болады. Бұл ақпараттың барлығы A85 мәліметтер парағында берілген -https://www.microchip.com/downloads/kz/DeviceDoc/At…

USBasp пен ATTINY85 жоғарыдағы суретте көрсетілгендей қосылуы керек.

Әрі қарай, Arduino IDE -де бағдарламашыны USBasp -қа, ал жиілікті ішкі 8 МГц -ке орнатыңыз.

USBasp -ты ноутбуктің USB портына қосыңыз (Windows 10 -де, егер USBasp драйвері болмаса, https://www.fischl.de/usbasp/ веб -сайтына сәйкес Zadig пайдаланыңыз)

Әрі қарай, USBasp қосылған кезде Arduino IDE Sketch/жүктеуден таңдаңыз және жүктеу барысын Arduino IDE қызыл әріптерімен көрсетілген және avrdude аяқталғанмен көресіз деп үміттенеміз. Рақмет сізге.

Бұл кезеңдегі қателер әдетте кабельдің бос болуына немесе дұрыс емес драйверге байланысты болады.

3 -қадам: Бағдарламаны іске қосыңыз

Сіздің бағдарламаңызды іске қосу
Сіздің бағдарламаңызды іске қосу
Сіздің бағдарламаңызды іске қосу
Сіздің бағдарламаңызды іске қосу
Сіздің бағдарламаңызды іске қосу
Сіздің бағдарламаңызды іске қосу

Біріншіден, Dallas 18b20 термометр сенсоры туралы. Оның 3 түйреуіші бар, Ground (G), data (D) және VCC жоғарыдағы суретте көрсетілгендей. Жұмыс істеу үшін D және VCC 4.7k резистормен байланыстыруды қажет етеді. G және VCC тиісті полюстерге қосылады, ал D - ATTINY 85, pin - [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 -қадам: Қорытынды

Бұл нұсқаулық қарапайым болып көрінуі мүмкін, бірақ идея арзан компоненттермен қол жеткізуге болатынын көрсету. Әлбетте, егер сізде Wi-Fi немесе BLE хабына қол жетімді болса, онда неғұрлым қолайлы шешімдер бар.

Мен басқа функцияларды қамтымадым, мысалы, температураны жазуды / беруді бастау үшін телефонға SMS жіберу және т.

Ұсынылған: