Kazalo:

Opozorila SMS o tempni besedi iz GSM ATTINY85 in A1: 5 korakov
Opozorila SMS o tempni besedi iz GSM ATTINY85 in A1: 5 korakov

Video: Opozorila SMS o tempni besedi iz GSM ATTINY85 in A1: 5 korakov

Video: Opozorila SMS o tempni besedi iz GSM ATTINY85 in A1: 5 korakov
Video: Брайан Китинг и Ли Кронин: Жизнь во Вселенной 2024, Julij
Anonim
Opozorila o temp SMS besedila iz GSM ATTINY85 in A1
Opozorila o temp SMS besedila iz GSM ATTINY85 in A1

Ta navodila vam pokažejo, kako zajeti temperaturo s preprostim temperaturnim senzorjem in jo poslati po SMS -u na svoj mobilni telefon. Za poenostavitev pošiljam temperaturo v določenem intervalu, pokažem pa tudi, kako je to mogoče narediti le z izjemo / opozorili. Strojna oprema je zelo nizka, manj kot 10 dolarjev, čeprav je treba upoštevati ponavljajoče se stroške sms -a.

Težko dviganje opravi preprost, a zmogljiv ATTINY 85, ki zajame podatke o temperaturi in nato sproži pošiljanje SMS-a prek GSM modula AI-Thinker A6.

Skratka, kodo ATTINY85 napišete v okolje Arduino IDE in jo zapisujete na ATTINY85 s serijskim/USB pretvornikom USBASP. V dveh prejšnjih vadnicah sem obravnaval nastavitev modula AI-Thinker A6 GSM in Arduino IDE. Tu je drugačen vmesnik modulov GSM ATTINY in A6 z uporabo serijske komunikacije.

www.instructables.com/id/How-to-Send-an-SM…

Po programiranju naprava ATTINY prebere temperaturne podatke s termometrskega senzorja - Dallas 18B20-, nato pa podatke in ukaze po serijski povezavi pošlje v modul A6 GSM, ki jih nato pošlje kot besedilo SMS na vaš mobilni / pametni telefon.

Tukaj potrebujete:

1. Serijski/USB pretvornik USBASP.

2. ATTINY 85.

3. AI-Thinker A6 GSM modul različice 6 (s sim, ki ima kredite SMS).

4. Napajanje 3.3V za matično ploščo za ATTINY85.

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

6. Senzor temperature Dallas 18B20..

7. 4,7 k upor za senzor 18B20.

8. Ohišje in kabli.

9. Arduino IDE (za to sem uporabil različico 1.8.5.).

10. Prenosni računalnik Windows X (uporabil sem različico 10) z brezplačnimi vrati USB.

1. korak: Programiranje ATTINY 85

Tukaj je koda Arduino IDE (spremeniti boste morali telefonsko številko, na katero želite poslati SMS.)

#include #include #include

// *** // *** Določite zatiče RX in TX. Izberite dva neuporabljena zatiča // ***. Poskusite se izogniti D0 (pin 5) // *** in D2 (pin 7), če nameravate uporabljati I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Določite programska serijska vrata. Z uporabo // *** imena Serial, tako da se lahko koda uporablja na drugih // *** platformah, ki podpirajo serijsko serijsko opremo. Na // *** čipih, ki podpirajo serijsko opremo strojne opreme, samo // *** komentirajte to vrstico. // ***

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 frekvenca nastavljena na notranjih 8 MHz

// *** // *** Pin, na katerega je priključena podatkovna žica OneWire // ***. // *** #define ONE_WIRE_BUS 1

// *** // *** Nastavite primerek oneWire za komunikacijo s poljubnimi napravami OneWire // *** (ne samo z IC -ji temperature Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Prenesite našo referenco oneWire na temperaturo v Dallasu. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicializirajte serijska vrata // *** mySerial.begin (115200); zamuda (60000);

// *** Zaženite knjižnico. _sensors.begin (); }

void loop () {

// *** // *** Pridobite trenutno temperaturo in jo prikažite. // *** _sensors.requestTemperatures (); zamuda (2000); dvojni tempC = _sensors.getTempCByIndex (0); dvojni tempF = _sensors.getTempFByIndex (0); // preverjanje napak - včasih pri zagonu je temperatura prikazana kot 85C

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

void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // nastavljeno na zakasnitev načina SMS (1000); mySerial.println ("AT+CMGF = 1"); // nastavljeno na zakasnitev načina SMS (1000); //mySerial.println("AT+CMGS=\"+ VAŠA ŠTEVILKA / ""); // nastavimo zakasnitev telefonske številke (zavite v dvojne narekovaje) (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); zamuda (1000); mySerial.write (0x1A); // pošlje ctrl+z konec zamude sporočila (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); zamuda (1000000); // 17 minut - prilagodite se svoji aplikaciji}

Odprite okolje IDE Arduino - podrobno sem opisal, kako se tega izogniti, v prejšnjih navodilih, na katera sem že prej omenil.

Potrebovali boste naslednje knjižnice

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Nato konfigurirajte zatiče RX in TX na ATTINY85, ki jih potrebujete za povezavo z A1 Thinkerjem. ATTINY 85 ima 8 zatičev, po štiri na vsaki strani in je poravnan s piko na površini kot referenco. Pin 1 ali RESET pin je poleg pike.

(v tem primeru sem izbral Pin2 in 3 - Ti sta na isti strani kot zatič RESET, ki je poleg pike na površini ATTINY 85. Pin 2 je naslednji zatič vzdolž zatiča RESET, medtem ko je Pin 3 med zatičem 2 in OZEMLJE)

Nato morate nastaviti temperaturni senzor -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Nato nastavite serijska vrata programske opreme

mySerial.begin (115200);

zamuda (60000);

in nato pokličite senzorje z _sensors.begin ();

Nato sledi zanka, ki po vnaprej določenem času poizveduje, zabeleži temperaturo in pošlje sporočilo / opozorilo, odvisno od vrednosti. Uporablja funkcijo SMS_temp, kjer prav tako nastavite čas zanke

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

dvojni tempC = _sensors.getTempCByIndex (0);

dvojni tempF = _sensors.getTempFByIndex (0);

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

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

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp ravno prav");}

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Preveč toplo");}

}

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

Nato nastavite Arduino IDE, da se pripravi na nalaganje v ATTINY85.

Opozoriti je treba na številne stvari

1- Če nimate družine plošč ATTINY, dodajte naslednji URL https://raw.githubusercontent.com/damellis/attiny/… v URL Datoteka/Nastavitve/Dodatni upravitelji plošč, Nato v Arduio IDE kliknite Tools/Board/Board Manager in poiščite ATTINY ter namestite novo ploščo. Procesor spremenite v Attiny85.

2. korak: Nalaganje programa v ATTINY85

Nalaganje programa v ATTINY85
Nalaganje programa v ATTINY85

Glej tudi moja prejšnja navodila o tem-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 ima dva načina, način programiranja in delovanja. NAČIN PROGRAMIRANJA Najprej identificirajte zatiče na ATTINY85. Če želite to narediti, poiščite majhno zarezo na površini čipa, ki je poleg zatiča RST/RESET. Če to uporabite kot referenčno točko, lahko prepoznate ostale zatiče. Vse te informacije so na voljo v podatkovnem listu A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp in ATTINY85 morata biti priključena, kot je prikazano na zgornji sliki.

Nato v Arduino IDE nastavite programer na USBasp in frekvenco na internih 8 Mhz.

Priključite USBasp v vrata USB na prenosnem računalniku (v sistemu Windows 10, če nimate gonilnika USBasp, uporabite Zadig na spletnem mestu

Nato, ko je priključen USBasp, izberite skico/nalaganje Arduino IDE in upajmo, da bi morali videti napredek nalaganja, ki je prikazan z rdečimi črkami Arduino IDE in se konča z avrdude. Hvala vam.

Vse napake na tej stopnji so običajno povezane z ohlapnimi kabli ali napačnim gonilnikom.

3. korak: Zaženite program

Izvajanje vašega programa
Izvajanje vašega programa
Izvajanje vašega programa
Izvajanje vašega programa
Izvajanje vašega programa
Izvajanje vašega programa

Najprej nekaj o senzorju termometra Dallas 18b20. Ima 3 zatiče, ozemljitev (G), podatke (D) in VCC, kot je prikazano na zgornji sliki. Za delovanje potrebuje premostitev D in VCC z uporom 4,7 k. G in VCC sta povezana na ustrezna pola, D pa na ATTINY 85, pin - [6] PB1, kot je nastavljeno v kodi.

Nato priključite ATTINY na A6 GSM na naslednji način (in prikazano zgoraj)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

in na samem A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (še ne priključite na zemljo !!!!!)

Zdaj vklopite obe napravi in se po nekaj sekundah začasno dotaknite ozemljitvenega zatiča A6 s kablom, priključenim na zatič A6 RST. A6 se bo izklopil in vklopil, upam, da boste kmalu prejeli podatke o temperaturi v telefon.

4. korak: Zaključek

To navodilo se morda zdi precej preprosto, vendar je ideja ponazoriti, kaj je mogoče doseči z nizkimi stroški. Očitno je, če imate dostop do wi-fi ali vozlišča BLE, obstajajo ustreznejše rešitve.

Nisem zajel drugih funkcij, kot je pošiljanje SMS -a na telefon za začetek snemanja / prenosa temperature itd.

Priporočena: