Sadržaj:
- Korak 1: Programiranje ATTINY 85
- Korak 2: Prijenos programa na ATTINY85
- Korak 3: Pokretanje programa
- Korak 4: Zaključak
Video: Upozorenja o SMS tekstualnoj temp s GSM -a ATTINY85 i A1: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
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
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:
Sustav naprednog upozorenja klizanjem: 6 koraka
Sustav upozorenja s slajdovima: Na Brown Dog Gadgetima radimo mnogo video streaminga za radionice, a naša postavka uključuje jednu osobu na kameri i drugu osobu kao producenta koja pokreće softver, nadzire prozor za chat te mijenja kameru i napreduje slajdovi
Sustav upozorenja o nesreći pomoću GSM -a, GPS -a i akcelerometra: 5 koraka (sa slikama)
Sustav upozorenja o nesreći pomoću GSM -a, GPS -a i mjerača brzine: Molimo glasajte me za natjecanjeMolim vas, glasajte me za natjecanjeDanas je mnogo ljudi poginulo na cesti zbog nesreće, glavni uzrok je "kašnjenje u spašavanju". Ovaj je problem vrlo velik u zemljama u razvoju pa sam osmislio ovaj projekt za spremanje
Svjetlosni sustav upozorenja na vremenske uvjete: 6 koraka
Svjetlosni sustav svjetla upozorenja na vremenske uvjete: Svjetlosni sustav upozorenja na promjenu vremena mijenja osvjetljenje kako bi ukazao na različita vremenska upozorenja ili satove. Ovaj sustav koristi slobodno dostupne vremenske podatke za promjenu osvjetljenja kako bi ukazao na vremenske prilike. Malina pi (preko node-red) provjerava
Sustav upozorenja na pospanost: 3 koraka
Sustav upozorenja na pospanost: Svake godine mnogi ljudi izgube živote zbog fatalnih prometnih nesreća diljem svijeta, a pospana vožnja jedan je od primarnih uzroka prometnih nesreća i smrti. Umor i mikro spavanje na kontrolama vožnje često su uzrok ozbiljnih nesreća
Detektor curenja s obavijesti o tekstualnoj poruci: 7 koraka
Detektor curenja s obavijesti o tekstualnoj poruci: Ovaj vodič pokazuje kako izgraditi detektor curenja koji šalje obavijesti o tekstualnim porukama. Šalje upozorenja ako se osjeti voda iz prsnute cijevi ili rezervnog odvoda. Vodič je namijenjen svima koji se zanimaju za Python 3, Raspberry Pi, Secure Shell