Cuprins:
- Pasul 1: Programarea ATTINY 85
- Pasul 2: Încărcarea programului pe ATTINY85
- Pasul 3: Rulați programul
- Pasul 4: Concluzie
Video: Alerte SMS Text Temp de la un GSM ATTINY85 și A1: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Această instrucțiune vă arată cum să captați temperatura de la un senzor simplu de temperatură și să o trimiteți prin sms către telefonul dvs. mobil. Pentru a simplifica lucrurile, trimit temperatura la un interval stabilit, dar arăt, de asemenea, cum se poate face acest lucru numai prin excepții / alerte. Hardware-ul are un cost foarte mic, mai puțin de 10 dolari, deși există costurile recurente ale SMS-urilor de luat în considerare.
Ridicarea grea este realizată de ATTINY 85 simplu, dar puternic, care captează datele de temperatură și apoi declanșează un SMS pentru a fi trimis printr-un modul AI-Thinker A6 GSM.
Pe scurt, scrieți codul ATTINY85 în mediul Arduino IDE și îl ardeți pe ATTINY85 folosind un convertor USBASP serial / USB. Am acoperit configurarea modulului AI-Thinker A6 GSM și Arduino IDE în două tutoriale anterioare. Ceea ce diferă aici este interfațarea modulului ATTINY și A6 GSM utilizând comunicații seriale.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
După programare, ATTINY citește datele de temperatură de la un senzor termometru - Dallas 18B20- și apoi transmite datele și comenzile prin conexiune serială la modulul A6 GSM care apoi le trimite ca text SMS pe telefonul mobil / inteligent.
Iată de ce aveți nevoie:
1. Convertor USBASP serial / USB.
2. ATTINY 85.
3. Modulul AI-Thinker A6 GSM versiunea 6 (cu un sim care are credite SMS).
4. Sursă de alimentare 3.3V pentru ATTINY85.
5. 3.3.v Alimentare USB pentru modulul AI-Thinker A6 GSM.
6. Senzor de temperatură Dallas 18B20..
7. Rezistor de 4.7k pentru senzorul 18B20.
8. Plăci și cabluri.
9. Arduino IDE (am folosit versiunea 1.8.5. Pentru asta).
10. Laptop Windows X (am folosit versiunea 10) cu un port USB gratuit.
Pasul 1: Programarea ATTINY 85
Iată codul IDE Arduino (va trebui să schimbați numărul de telefon la care doriți să trimiteți SMS-ul.)
#include #include #include
// *** // *** Definiți pinii RX și TX. Alegeți doi // *** pini neutilizați. Încercați să evitați D0 (pinul 5) // *** și D2 (pinul 7) dacă intenționați să utilizați I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Definiți portul serial bazat pe software. Folosind numele // *** Serial, astfel încât codul să poată fi utilizat pe alte platforme // *** care acceptă serial bazat pe hardware. Pe cipurile // *** care acceptă seria hardware, doar // *** comentează această linie. // ***
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 frecvență setată la 8 MHz intern
// *** // *** Pinul la care este conectat firul OneWire // ***. // *** #define ONE_WIRE_BUS 1
// *** // *** Configurați o instanță oneWire pentru a comunica cu orice dispozitiv OneWire // *** (nu doar cu circuitele de temperatură Maxim / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Treceți referința noastră oneWire la temperatura Dallas. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inițializați portul serial // *** mySerial.begin (115200); întârziere (60000);
// *** Porniți biblioteca. _sensors.begin (); }
bucla nulă () {
// *** // *** Obțineți temperatura actuală și afișați-o. // *** _sensors.requestTemperatures (); întârziere (2000); tempC dublu = _sensors.getTempCByIndex (0); tempF dublu = _sensors.getTempFByIndex (0); // verificați dacă există erori - uneori la început, temperatura este afișată ca 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Prea cald");}}
void SMS_temp (mytemp dublu, String myalert) {mySerial.println ("AT + CMGF = 1"); // setat la modul SMS întârziere (1000); mySerial.println ("AT + CMGF = 1"); // setat la modul SMS întârziere (1000); //mySerial.println("AT+CMGS=\"+YOUR NUMBER / ""); // setați numărul de telefon (înfășurat în ghilimele duble) întârziere (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); întârziere (1000); mySerial.write (0x1A); // trimite ctrl + z sfârșitul întârzierii mesajului (1000); mySerial.write (0x0D); // Returnarea transportului în întârziere hexagonală (1000); mySerial.write (0x0A); întârziere (1000000); // 17 minute - reglați-vă pentru a vă potrivi aplicației}
Deschideți mediul Arduino IDE - Am descris cum să vă găsesc în detaliu acest lucru în instructajul meu anterior la care am făcut aluzie mai devreme.
Veți avea nevoie de următoarele biblioteci
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Apoi, configurați pinii RX și TX de pe ATTINY85 de care trebuie să vă conectați cu A1 Thinker. ATTINY 85 are 8 pini, patru pe fiecare parte și este aliniat utilizând punctul de pe suprafață ca referință. Pinul 1 sau pinul RESET se află lângă punctul.
(în acest caz am ales Pin2 și 3 - Acestea sunt pe aceeași parte ca pinul RESET care este lângă punctul de pe suprafața ATTINY 85. Pinul 2 este următorul pin de-a lungul pinului RESET, în timp ce Pinul 3 este între Pin 2 și TEREN)
Apoi, trebuie să configurați senzorul de temperatură -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Apoi configurați portul serial al software-ului
mySerial.begin (115200);
întârziere (60000);
și apoi apelați senzorii cu _sensors.begin ();
Apoi, există bucla, care sondează la un moment prestabilit, înregistrează temperatura și trimite un mesaj / alertă în funcție de valoare. Folosește o funcție SMS_temp, care este, de asemenea, locul în care setați sincronizarea buclei
void loop () {sensors.requestTemperatures (); întârziere (2000);
tempC dublu = _sensors.getTempCByIndex (0);
tempF dublu = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Destul de rece");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Prea cald");}
}
==============
Apoi, configurați IDE-ul Arduino pentru a vă pregăti pentru încărcare pe ATTINY85.
O serie de lucruri de remarcat
1- Dacă nu aveți familia de plăci ATTINY, adăugați următoarea adresă URL https://raw.githubusercontent.com/damellis/attiny/… în fișier / Preferințe / Adresa URL a plăcilor suplimentare, Apoi, în Arduio IDE, faceți clic pe Tools / Board / Board Manager și căutați ATTINY și instalați noua placă. Schimbați procesorul în Attiny85.
Pasul 2: Încărcarea programului pe ATTINY85
De asemenea, consultați instrucțiunile mele anterioare în acest sens -
ATTINY85 are două moduri, programarea și respectiv modul de operare. MODUL DE PROGRAMARE În primul rând, identificați pinii de pe ATTINY85. Pentru a face acest lucru, găsiți mica crestătură de pe suprafața cipului care este lângă pinul RST / RESET. Folosind acest lucru ca punct de referință, puteți identifica restul pinilor. Toate aceste informații sunt furnizate în fișa tehnică A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
USBasp și ATTINY85 trebuie conectate așa cum se arată în imaginea de mai sus.
Apoi, pe Arduino IDE, setați programatorul la USBasp și frecvența la 8Mhz intern.
Conectați USBasp la un port USB de pe laptop (pe Windows 10, dacă nu aveți driverul USBasp, utilizați Zadig conform site-ului
Apoi, cu USBasp conectat, selectați din Arduino IDE Sketch / upload și, sperăm, ar trebui să vedeți progresul încărcării afișat cu litere roșii ale Arduino IDE și se termină cu avrdude terminat. Mulțumesc.
Orice erori în această etapă sunt asociate de obicei cu cabluri libere sau cu driverul greșit.
Pasul 3: Rulați programul
În primul rând, ceva despre senzorul termometrului Dallas 18b20. Are 3 pini, masă (G), date (D) și VCC așa cum se arată în imaginea de mai sus. Pentru funcționare, necesită conectarea D și VCC cu un rezistor de 4,7 k. G și VCC sunt conectate la polii respectivi, în timp ce D este conectat la un ATTINY 85, pin - [6] PB1, așa cum este configurat în cod.
Apoi, conectați ATTINY la A6 GSM după cum urmează (și se arată mai sus)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
și pe A6 în sine, A6 PWR A6 VCC 5.0A6 RST A6 GND (Nu vă conectați încă la masă !!!!!)
Acum porniți ambele dispozitive și, după câteva secunde, atingeți temporar pinul de masă A6 cu cablul conectat la pinul A6 RST. A6 se va opri și porni și, sperăm, ar trebui să primiți în curând date de temperatură pe telefon.
Pasul 4: Concluzie
Acest lucru instructiv poate părea destul de simplu, dar ideea este de a ilustra ceea ce se poate realiza cu componente cu costuri reduse. Evident, dacă aveți acces la Wi-Fi sau la un hub BLE, atunci există soluții mai potrivite.
Nu am acoperit alte funcționalități, cum ar fi trimiterea unui SMS către telefon pentru a iniția înregistrarea / transmiterea temperaturii etc.
Recomandat:
Dispozitiv de siguranță pentru femei cu urmărire GPS și alerte folosind Arduino: 6 pași
Dispozitiv de siguranță pentru femei cu urmărire GPS și alerte folosind Arduino: Cu toată tehnologia disponibilă pentru noi în ultima perioadă, nu este greu să construiești un dispozitiv de siguranță pentru femei, care nu numai că va genera o alarmă de urgență, ci va trimite și un mesaj prietenilor, familiei tale , sau persoana în cauză. Aici vom construi o trupă
Cum să trimiteți mesaje text SMS din proiectul dvs. Arduino ESP: 6 pași
Cum să trimiteți mesaje text SMS din proiectul dvs. Arduino ESP: Această instrucțiune demonstrează cum să trimiteți mesaje text SMS din proiectul dvs. arduino utilizând un dispozitiv ESP8266 și o conexiune WiFi. De ce să utilizați SMS-uri? mesaje. * Mesajele SMS pot, de asemenea
Construiți o oală de auto-udare DIY cu WiFi - Apă plante automat și trimite alerte când apa este scăzută: 19 pași
Construiți o oală de auto-udare DIY cu WiFi - Apă plantele în mod automat și trimite alerte când apa este scăzută: Acest tutorial vă arată cum să construiți o jardinieră personalizată conectată la Wi-Fi folosind o jardinieră veche, un coș de gunoi, o parte din adeziv și un auto Set de subansamble ghivece de udare de la Adosia
Alarma de ușă DIY cu alerte text: 5 pași
Alarma de ușă DIY cu alerte text: Creați propria alarmă de ușă / fereastră cu niște electronice simple, magneți și Raspberry Pi. Raspberry Pi este folosit pentru a vă trimite mesaje text sau prin e-mail când ușa este deschisă! Materiale necesare (linkuri incluse): Raspberry Pi (aici este kitul pe care l-am folosit)
Alarmă ușă Arduino cu alerte text: 14 pași (cu imagini)
Alarmă ușă Arduino cu alerte text: Aceasta este o alarmă ușă bazată pe Arduino care folosește un comutator magnetic reed pentru a determina starea ușii și are o alarmă sonoră și o alarmă bazată pe mesaje text