Sadržaj:

Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1: 5 koraka
Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1: 5 koraka

Video: Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1: 5 koraka

Video: Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1: 5 koraka
Video: Simulacija alarmnog sistema u stanu (House Alarm System Simulation), Grupa 3 2024, Studeni
Anonim
Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1
Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1

Ova uputa pokazuje vam kako snimiti temperaturu s jednostavnog temperaturnog senzora i poslati je putem SMS -a na svoj mobilni telefon. Da pojednostavim stvari, šaljem temperaturu u zadanom intervalu, ali također pokazujem kako se to može učiniti samo iznimkama / upozorenjima. Hardver je vrlo niske cijene, manji od 10 dolara, iako postoje periodični troškovi sms -a koje treba uzeti u obzir.

Podizanje tereta preuzima jednostavan, ali moćan ATTINY 85 koji bilježi podatke o temperaturi, a zatim pokreće slanje SMS-a putem AI-Thinker A6 GSM modula.

Ukratko, zapisujete ATTINY85 kod u Arduino IDE okruženju i snimate ga na ATTINY85 pomoću USBASP serijskog/USB pretvarača. O postavljanju AI-Thinker A6 GSM modula i Arduino IDE-a govorio sam u dva prethodna vodiča. Ono što se ovdje razlikuje je povezivanje ATTINY i A6 GSM modula pomoću serijske komunikacije.

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

Nakon programiranja, ATTINY čita podatke o temperaturi s senzora termometra - Dallas 18B20-, a zatim šalje podatke i naredbe serijskom vezom na A6 GSM modul koji ih zatim šalje kao SMS tekst na vaš mobilni / pametni telefon.

Evo što vam treba:

1. USBASP serijski/USB pretvarač.

2. ATTINIJA 85.

3. AI-Thinker A6 GSM modul verzija 6 (sa sim karticom koja ima SMS kredite).

4. Napajanje matične ploče 3.3v za ATTINY85.

5. 3.3.v USB napajanje za AI-Thinker A6 GSM modul.

6. Senzor temperature Dallas 18B20..

7. Otpornik od 4,7 k za senzor 18B20.

8. Oglasna ploča i kabeli.

9. Arduino IDE (za ovo sam koristio verziju 1.8.5.).

10. Windows X prijenosno računalo (koristio sam verziju 10) sa besplatnim USB priključkom.

Korak 1: Programiranje ATTINY 85

Ovdje je Arduino IDE kôd (morat ćete promijeniti telefonski broj na koji želite poslati SMS.)

#include #include #include

// *** // *** Definirajte RX i TX pinove. Odaberite bilo koja dva // *** igla koja su neiskorištena. Pokušajte izbjeći D0 (pin 5) // *** i D2 (pin 7) ako namjeravate koristiti I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Definirajte softverski serijski port. Korištenje // *** naziva Serial tako da se kôd može koristiti na drugim // *** platformama koje podržavaju hardversku seriju. Na // *** čipovima koji podržavaju hardversku seriju, samo // *** komentirajte ovu liniju. // ***

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 frekvencija postavljena na internih 8 MHz

// *** // *** Pin na koji je spojena žica podataka OneWire // ***. // *** #define ONE_WIRE_BUS 1

// *** // *** Postavite instancu oneWire za komunikaciju s bilo kojim OneWire // *** uređajima (ne samo za IC -ove temperature Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Prenesite našu referencu oneWire na temperaturu u Dallasu. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicijalizacija serijskog porta // *** mySerial.begin (115200); kašnjenje (60000);

// *** Pokretanje knjižnice. _sensors.begin (); }

void loop () {{100} {101}

// *** // *** Dobijte trenutnu temperaturu i prikažite je. // *** _sensors.requestTemperatures (); odgoda (2000); dvostruka tempC = _sensors.getTempCByIndex (0); dvostruki tempF = _sensors.getTempFByIndex (0); // provjeravamo ima li grešaka - ponekad pri startu, temperatura se prikazuje kao 85C

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Pretoplo");}}

void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // postavljeno na kašnjenje SMS načina (1000); mySerial.println ("AT+CMGF = 1"); // postavljeno na kašnjenje SMS načina (1000); //mySerial.println("AT+CMGS=\"+VAS BROJ / ""); // postavljanje telefonskog broja (umotano u dvostruke navodnike) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); kašnjenje (1000); mySerial.write (0x1A); // šalje ctrl+z kraj odgode poruke (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); kašnjenje (1000000); // 17 minuta - prilagodite vlastitoj aplikaciji}

Otvorite Arduino IDE okruženje - detaljno sam opisao kako se snaći u ovome u prethodnim uputama na koje sam ranije aludirao.

Trebat će vam sljedeće knjižnice

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Zatim konfigurirajte RX i TX pinove na ATTINY85 koje trebate povezati s A1 Thinkerom. ATTINY 85 ima 8 pinova, po četiri sa svake strane i poravnat je pomoću točke na površini kao referencom. Pin 1 ili PIN za resetiranje nalazi se pored točke.

(u ovom slučaju odabrao sam Pin2 i 3 - Oni su na istoj strani kao i pin za resetiranje koji se nalazi pored točke na površini ATTINY 85. Pin 2 je sljedeći pin uz pin za resetiranje dok je pin 3 između pina 2 i UZEMLJENJE)

Zatim morate konfigurirati osjetnik temperature -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Zatim postavite serijski port softvera

mySerial.begin (115200);

kašnjenje (60000);

a zatim pozvati senzore s _sensors.begin ();

Zatim postoji petlja koja se anketira unaprijed u unaprijed određeno vrijeme, bilježi temperaturu i šalje poruku / upozorenje ovisno o vrijednosti. Koristi funkciju SMS_temp gdje također postavljate vrijeme petlje

void loop () {sensors.requestTemperatures (); odgoda (2000);

dvostruka tempC = _sensors.getTempCByIndex (0);

dvostruki tempF = _sensors.getTempFByIndex (0);

if (tempC <= 14) {SMS_temp (tempC, "OPASNO Hladno");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Sasvim hladno");}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp upravo u redu");}

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Pretoplo");}

}

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

Zatim postavite Arduino IDE za pripremu za prijenos na ATTINY85.

Niz stvari koje treba napomenuti

1- Ako nemate obitelj ploča ATTINY, dodajte sljedeći url https://raw.githubusercontent.com/damellis/attiny/… u URL datoteke/Postavke/Dodatne upravitelje ploča, Zatim, unutar Arduio IDE -a kliknite na Tools/Board/Board Manager i potražite ATTINY te instalirajte novu ploču. Promijenite procesor u Attiny85.

Korak 2: Prijenos programa na ATTINY85

Prijenos programa na ATTINY85
Prijenos programa na ATTINY85

Također pogledajte moje prethodne upute o ovome-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 ima dva načina rada, način programiranja i rada.1. NAČIN PROGRAMIRANJA Prvo identificirajte pinove na ATTINY85. Da biste to učinili, pronađite mali zarez na površini čipa koji se nalazi pored RST/RESET pina. Koristeći ovo kao referentnu točku, možete identificirati ostale pinove. Svi ovi podaci nalaze se u podatkovnom listu A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp i ATTINY85 trebaju biti povezani kako je prikazano na gornjoj slici.

Zatim na Arduino IDE -u postavite programator na USBasp, a frekvenciju na unutarnjih 8 MHz.

Spojite USBasp na USB priključak na prijenosnom računalu (u sustavu Windows 10, ako nemate USBasp upravljački program, upotrijebite Zadig prema web stranici

Zatim, s priključenim USBaspom, odaberite Arduino IDE Sketch/upload i nadamo se da biste trebali vidjeti napredak prijenosa prikazan crvenim slovima Arduino IDE -a i završiti s avrdude gotovo. Hvala vam.

Sve pogreške u ovoj fazi obično su povezane s labavim kabelima ili pogrešnim upravljačkim programom.

Korak 3: Pokretanje programa

Pokretanje vašeg programa
Pokretanje vašeg programa
Pokretanje vašeg programa
Pokretanje vašeg programa
Pokretanje vašeg programa
Pokretanje vašeg programa

Prvo, nešto o osjetniku termometra Dallas 18b20. Ima 3 pina, uzemljenje (G), podatke (D) i VCC kao što je prikazano na gornjoj slici. Za rad je potrebno premostiti D i VCC otpornikom od 4,7 k. G i VCC spojeni su na odgovarajuće polove, dok je D spojen na ATTINY 85, pin - [6] PB1, kako je konfigurirano u kodu.

Zatim spojite ATTINY na A6 GSM na sljedeći način (i prikazano gore)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

i na samom A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Ne spajajte se na masu još !!!!!)

Sada uključite oba uređaja, a nakon nekoliko sekundi privremeno dodirnite pin za uzemljenje A6 s kabelom spojenim na pin A6 RST. A6 će se isključiti i uključiti i nadamo se da biste uskoro trebali primiti podatke o temperaturi na svoj telefon.

Korak 4: Zaključak

Ovo uputstvo može izgledati prilično jednostavno, ali ideja je ilustrirati što se može postići s jeftinim komponentama. Očigledno, ako imate pristup Wi-Fi ili BLE čvorištu, onda postoje prikladnija rješenja.

Nisam obuhvatio druge funkcije, poput slanja SMS -a na telefon radi pokretanja snimanja / prijenosa temperature itd.

Preporučeni: