Sisukord:

SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist: 5 sammu
SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist: 5 sammu

Video: SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist: 5 sammu

Video: SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist: 5 sammu
Video: 10 Onderzoeksmethoden stof meetbare eigenschappen temperatuur chemische reactie 2024, Juuli
Anonim
SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist
SMS -i tekstitemperatuuri hoiatused ATTINY85 ja A1 GSM -ist

See juhend näitab teile, kuidas lihtsast temperatuuriandurist temperatuuri salvestada ja SMS -i teel mobiiltelefonile saata. Asjade lihtsustamiseks saadan temperatuuri kindla intervalliga, kuid näitan ka seda, kuidas seda saab teha ainult erandite / hoiatuste alusel. Riistvara on väga odav, alla 10 dollari, kuigi tuleb arvestada korduvate SMS -kuludega.

Raske tõstmise võtab ette lihtne, kuid võimas ATTINY 85, mis salvestab temperatuuri andmed ja käivitab seejärel SMS-i, mis saadetakse AI-Thinker A6 GSM-mooduli kaudu.

Lühidalt, kirjutate ATTINY85 koodi Arduino IDE keskkonda ja põletate selle ATTINY85 -le USBASP jada-/USB -muunduri abil. Olen kahes eelmises õpetuses käsitlenud AI-Thinker A6 GSM mooduli ja Arduino IDE seadistamist. Erinev on siin ATTINY ja A6 GSM mooduli liidestamine jadaühenduse abil.

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

Pärast programmeerimist loeb ATTINY temperatuuri andmed Dallas 18B20- termomeetriandurilt ja saadab seejärel andmed ja käsud jadaühenduse kaudu A6 GSM -moodulile, mis saadab need seejärel SMS -tekstina teie mobiiltelefonile / nutitelefonile.

Siin on vaja:

1. USBASP jada-/USB -muundur.

2. ATTINY 85.

3. AI-Thinker A6 GSM mooduli versioon 6 (sim-iga, millel on SMS-i krediit).

4. 3.3V leivaplaadi toiteallikas ATTINY85 jaoks.

5. 3.3.v USB-toiteallikas AI-Thinker A6 GSM-moodulile.

6. Dallas 18B20 temperatuuriandur..

7. 4,7 k takisti 18B20 andurile.

8. Leivalaud ja kaablid.

9. Arduino IDE (selleks kasutasin versiooni 1.8.5.).

10. Windows X sülearvuti (ma kasutasin versiooni 10), millel on tasuta USB -port.

1. samm: ATTINY 85 programmeerimine

Siin on Arduino IDE -kood (peate muutma telefoninumbrit, millele soovite SMS -i saata.)

#kaasama #kaasama #kaasama

// *** // *** Määrake RX- ja TX -tihvtid. Valige kasutamata kaks // *** tihvti. Kui plaanite kasutada I2C, proovige vältida D0 (tihvt 5) // *** ja D2 (tihvt 7). // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Tarkvarapõhise jadapordi määratlemine. // *** nime Serial kasutamine, et koodi saaks kasutada ka teistel // *** platvormidel, mis toetavad riistvarapõhist seeriat. // *** kiipidel, mis toetavad riistvara jadasid, lihtsalt // *** kommenteerige seda rida. // ***

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 sagedus, mis on seatud sisemisele 8 MHz

// *** // *** Tihvt, millele on ühendatud OneWire'i andmejuhe // ***. // *** #defineeri ONE_WIRE_BUS 1

// *** // *** Seadistage oneWire eksemplar suhtlemiseks mis tahes OneWire // *** seadmetega (mitte ainult Maximi/Dallase temperatuuri IC -dega). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Edastage meie oneWire'i viide Dallase temperatuurile. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Initsialiseeri jadaport // *** mySerial.begin (115200); viivitus (60000);

// *** Käivitage raamatukogu. _ensorid.begin (); }

void loop () {

// *** // *** Hankige praegune temperatuur ja näidake seda. // *** _sensors.requestTemperatures (); viivitus (2000); topelt tempC = _ensorid.getTempCByIndex (0); topelt tempF = _ensorid.getTempFByIndex (0); // kontrollige vigu - mõnikord alguses, temp näidatakse kui 85C

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

tühine SMS_temp (topeltmutemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS -režiimi viivitus (1000); mySerial.println ("AT+CMGF = 1"); // SMS -režiimi viivitus (1000); //mySerial.println ("AT+CMGS=\"+YOUR NUMBER / ""); // määrake telefoninumbri (jutumärkidesse mähitud) viivitus (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); viivitus (1000); mySerial.write (0x1A); // saadab ctrl+z sõnumi lõppu (1000); mySerial.write (0x0D); // Vankri tagastamine kuuekuulises viivituses (1000); mySerial.write (0x0A); viivitus (1000000); // 17 minutit - kohandage vastavalt oma rakendusele}

Avage Arduino IDE keskkond - olen oma eelmises juhendis, millele ma varem vihjasin, üksikasjalikult kirjeldanud, kuidas teid selles osas leida.

Te vajate järgmisi raamatukogusid

SoftwareSerial.h

OneWire.h

DallasTemperatuur.h

Seejärel konfigureerige ATTINY85 RX- ja TX -tihvtid, mida peate ühendama A1 Thinkeriga. ATTINY 85 -l on 8 tihvti, mõlemal küljel neli ja see on joondatud, kasutades pinnal asuvat punkti, mis on võrdlusalus. Nööpnõel 1 või nullimisnupp on selle punkti kõrval.

(sel juhul valisin tihvtid 2 ja 3 - need asuvad samal pool RESET -tihvtiga, mis asub ATTINY 85 pinnal oleva punkti kõrval. Tihvt 2 on järgmine tihvt RESET -tihvti kõrval, tihvt 3 aga tihvti vahel 2 ja GROUND)

Järgmisena peate konfigureerima temperatuurianduri -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Järgmisena seadistage tarkvara jadaport

mySerial.begin (115200);

viivitus (60000);

ja seejärel helistage anduritele _sensors.begin ();

Järgmisena on tsükkel, mis küsitleb eelnevalt kindlaksmääratud ajal ringi, salvestab temperatuuri ja saadab sõnumi / hoiatuse sõltuvalt väärtusest. See kasutab funktsiooni SMS_temp, kus saate määrata ka tsükli ajastuse

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

topelt tempC = _ensorid.getTempCByIndex (0);

topelt tempF = _ensorid.getTempFByIndex (0);

if (tempC <= 14) {SMS_temp (tempC, "OHTLIK külm");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Üsna külm");}

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

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

}

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

Seejärel seadistage Arduino IDE, et valmistuda ATTINY85 -sse üleslaadimiseks.

Märkida tuleb mitmeid asju

1- Kui teil pole ATTINY plaatide perekonda, lisage järgmine URL aadressile https://raw.githubusercontent.com/damellis/attiny/… failis/eelistustes/täiendavate tahvlite halduri URL-is, Järgmisena klõpsake Arduio IDE -s nuppu Tools/Board/Board Manager ja otsige üles ATTINY ning installige uus tahvel. Muutke protsessor Attiny85 -ks.

2. samm: programmi üleslaadimine ATTINY85 -sse

Programmi üleslaadimine ATTINY85 -sse
Programmi üleslaadimine ATTINY85 -sse

Vaadake ka minu eelmist juhendit selle kohta-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 -l on kaks režiimi, vastavalt programmeerimis- ja töörežiim.1. PROGRAMMEERIMISREŽIIM Esmalt tuvastage ATTINY85 tihvtid. Selleks leidke kiibi pinnalt väike sälk, mis asub RST/RESET tihvti kõrval. Kasutades seda võrdluspunktina, saate tuvastada ülejäänud tihvtid. Kogu see teave on esitatud A85 andmelehel -https://www.microchip.com/downloads/en/DeviceDoc/At…

USBasp ja ATTINY85 tuleks ühendada, nagu ülaltoodud pildil näidatud.

Seejärel seadke Arduino IDE -s programmeerijaks USBasp ja sageduseks sisemine 8Mhz.

Ühendage USBasp sülearvuti USB -porti (Windows 10 -s, kui teil pole USBasp -draiverit, kasutage Zadigi veebisaidi https://www.fischl.de/usbasp/ kohaselt)

Järgmisena, kui USBasp on ühendatud, valige Arduino IDE Sketch/upload ja loodetavasti peaksite nägema üleslaadimise edenemist, mis on näidatud Arduino IDE punaste tähtedega ja lõpeb avrdude tehtud. Aitäh.

Selles etapis esinevad vead on tavaliselt seotud lahtiste kaablite või vale draiveriga.

Samm: programmi käivitamine

Teie programmi käivitamine
Teie programmi käivitamine
Teie programmi käivitamine
Teie programmi käivitamine
Teie programmi käivitamine
Teie programmi käivitamine

Esiteks midagi Dallase 18b20 termomeetri anduri kohta. Sellel on 3 tihvti, maandus (G), andmed (D) ja VCC, nagu on näidatud ülaltoodud pildil. Töötamiseks on vaja ühendada D ja VCC 4,7 k takistiga. G ja VCC on ühendatud vastavate poolustega, samas kui D on ühendatud ATTINY 85 tihvtiga - [6] PB1, nagu koodis on konfigureeritud.

Seejärel ühendage ATTINY A6 GSM -iga järgmiselt (ja näidatud ülal)

ATTINY TX A6 UART_RXd ATTINY RX A6 UART_TXd

ATTINY GND A6 GND

ja A6 -l endal, A6 PWR A6 VCC 5.0A6 RST A6 GND (Ärge ühendage veel maaga !!!!!)

Lülitage nüüd mõlemad seadmed sisse ja mõne sekundi pärast puudutage ajutiselt A6 maandusnõela, kui kaabel on ühendatud A6 RST tihvtiga. A6 lülitub välja ja sisse ning loodetavasti peaksite varsti oma telefoni temperatuuriandmeid saama.

4. samm: järeldus

See juhendamine võib tunduda üsna lihtne, kuid idee on illustreerida seda, mida on võimalik saavutada odavate komponentidega. Ilmselgelt, kui teil on juurdepääs WiFi-le või BLE-jaoturile, on sobivamaid lahendusi.

Ma ei käsitlenud muid funktsioone, nagu SMS -i saatmine telefoni, et alustada temperatuuri salvestamist / edastamist jne.

Soovitan: