Sisällysluettelo:

Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteilta: 5 vaihetta
Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteilta: 5 vaihetta

Video: Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteilta: 5 vaihetta

Video: Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteilta: 5 vaihetta
Video: Tekstiviesti: Varattu aika 2024, Marraskuu
Anonim
Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteista
Tekstiviestien lämpötilahälytykset ATTINY85- ja A1 -GSM -laitteista

Tämä opas näyttää, kuinka voit tallentaa lämpötilan yksinkertaisesta lämpötila -anturista ja lähettää sen tekstiviestinä matkapuhelimeesi. Asioiden yksinkertaistamiseksi lähetän lämpötilan määrätyin väliajoin, mutta näytän myös, kuinka tämä voidaan tehdä vain poikkeuksellisesti / hälytyksillä. Laitteisto on erittäin edullinen, alle 10 dollaria, vaikka on otettava huomioon toistuvat tekstiviestikustannukset.

Raskaan nostamisen suorittaa yksinkertainen mutta tehokas ATTINY 85, joka kerää lämpötilatiedot ja käynnistää sitten tekstiviestin lähetettäväksi AI-Thinker A6 GSM -moduulin kautta.

Lyhyesti sanottuna kirjoitat ATTINY85 -koodin Arduino IDE -ympäristöön ja poltat sen ATTINY85 -laitteeseen USBASP -sarja-/USB -muuntimen avulla. Olen käsitellyt AI-Thinker A6 GSM -moduulin ja Arduino IDE: n käyttöönottoa kahdessa edellisessä opetusohjelmassa. Eri asia on liittää ATTINY- ja A6 GSM -moduuli sarjaliikennettä käyttäen.

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

Ohjelmoinnin jälkeen ATTINY lukee lämpötilatiedot Dallas 18B20- lämpömittarianturista ja lähettää sitten tiedot ja komennot sarjaliitännällä A6 GSM -moduulille, joka lähettää sen sitten tekstiviestinä matkapuhelimeesi / älypuhelimeesi.

Tässä on mitä tarvitset:

1. USBASP -sarja-/USB -muunnin.

2. ATTINY 85.

3. AI-Thinker A6 GSM -moduulin versio 6 (sim-kortilla, jossa on tekstiviestit).

4. 3.3V leipälevyn virtalähde ATTINY85: lle.

5. 3.3.v USB-virtalähde AI-Thinker A6 GSM -moduulille.

6. Dallas 18B20 lämpötila -anturi..

7. 4,7 k: n vastus 18B20 -anturille.

8. Leipälauta ja kaapelit.

9. Arduino IDE (käytin tätä versiota 1.8.5.).

10. Windows X -tietokone (käytin versiota 10), jossa on ilmainen USB -portti.

Vaihe 1: ATTINY 85 -ohjelmointi

Tässä on Arduino IDE -koodi (Sinun on vaihdettava puhelinnumero, johon haluat lähettää tekstiviestin.)

#Sisällytä #Sisällytä #Sisällytä

// *** // *** Määritä RX- ja TX -nastat. Valitse kaksi käyttämätöntä // *** nastaa. Yritä välttää D0 (nasta 5) // *** ja D2 (nasta 7), jos aiot käyttää I2C: tä. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Määritä ohjelmistopohjainen sarjaportti. Käyttämällä // *** -nimeä Sarja, jotta koodia voidaan käyttää muilla // *** -alustoilla, jotka tukevat laitteistopohjaista sarjaliikennettä. // *** siruilla, jotka tukevat laitteistosarjaa, // // kommentoi tätä riviä. // ***

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 -taajuus asetettu sisäiselle 8 MHz: lle

// *** // *** Nasta, johon OneWire data // *** -johto on kytketty. // *** #define ONE_WIRE_BUS 1

// *** // *** Asenna oneWire -ilmentymä kommunikoimaan minkä tahansa OneWire // *** -laitteen kanssa (ei vain Maxim/Dallas -lämpötila -IC: t). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Ohita oneWire -viittauksemme Dallasin lämpötilaan. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Alusta sarjaportti // *** mySerial.begin (115200); viive (60000);

// *** Käynnistä kirjasto. _anturit.begin (); }

void loop () {

// *** // *** Hae nykyinen lämpötila ja näytä se. // *** _sensors.requestTemperatures (); viive (2000); double tempC = _sensors.getTempCByIndex (0); double tempF = _sensors.getTempFByIndex (0); // tarkista virheet - joskus alussa, lämpötila näkyy 85C

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "liian lämmin");}}

void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // asetetaan tekstiviestin viiveeseen (1000); mySerial.println ("AT+CMGF = 1"); // asetetaan tekstiviestin viiveeseen (1000); //mySerial.println ("AT+CMGS=\"+VUOSINUMERO / ""); // asettaa puhelinnumeron (lainausmerkkeihin) viive (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); viive (1000); mySerial.write (0x1A); // lähettää ctrl+z viestin lopun viiveen (1000); mySerial.write (0x0D); // Vaunun paluu heksadesimaaliviiveellä (1000); mySerial.write (0x0A); viive (1000000); // 17 minuuttia - säädä sovelluksesi mukaan}

Avaa Arduino IDE -ympäristö - Olen kuvannut yksityiskohtaisesti, miten löydät sinut kiertämään tämän yksityiskohtaisesti edellisessä ohjeessani, johon viittasin aiemmin.

Tarvitset seuraavat kirjastot

SoftwareSerial.h

OneWire.h

Dallas Lämpötila. H

Määritä seuraavaksi ATTINY85: n RX- ja TX -nastat, jotka sinun on yhdistettävä A1 Thinker -laitteeseen. ATTINY 85 -laitteessa on 8 nastaa, neljä kummallakin puolella, ja se on kohdistettu käyttämällä pisteessä olevaa viivaa. Nasta 1 tai RESET -nasta on tämän pisteen vieressä.

(tässä tapauksessa valitsin nastat 2 ja 3 - Nämä ovat samalla puolella kuin RESET -nasta, joka on ATTINY 85: n pinnalla olevan pisteen vieressä. Nasta 2 on RESET -nastan seuraava nasta, kun taas nasta 3 on nastan välissä 2 ja GROUND)

Seuraavaksi sinun on määritettävä lämpötila -anturi -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Määritä seuraavaksi ohjelmiston sarjaportti

mySerial.begin (115200);

viive (60000);

ja soita sitten antureille _sensors.begin ();

Seuraavaksi on silmukka, joka kyselee ennalta määrätyllä hetkellä, tallentaa lämpötilan ja lähettää viestin / hälytyksen arvon mukaan. Se käyttää toimintoa SMS_temp, jossa myös asetat silmukan ajoituksen

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

double tempC = _sensors.getTempCByIndex (0);

double tempF = _sensors.getTempFByIndex (0);

if (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Melko kylmä");}

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

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Liian lämmin");}

}

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

Määritä seuraavaksi Arduino IDE valmistautuaksesi lataamiseen ATTINY85 -laitteeseen.

Useita huomioitavia asioita

1- Jos sinulla ei ole ATTINY-lautaperhettä, lisää seuraava URL-osoite https://raw.githubusercontent.com/damellis/attiny/… kohtaan Tiedosto/Asetukset/Lisätaulujen hallinnan URL-osoite, Napsauta seuraavaksi Arduio IDE: ssä Työkalut/Hallitus/Hallituksen hallinta ja etsi ATTINY ja asenna uusi levy. Vaihda suoritin Attiny85: ksi.

Vaihe 2: Ohjelman lataaminen ATTINY85 -laitteeseen

Ohjelman lataaminen ATTINY85 -laitteeseen
Ohjelman lataaminen ATTINY85 -laitteeseen

Katso myös aiemmat ohjeeni tästä-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85: ssä on kaksi tilaa, ohjelmointi- ja toimintatila. OHJELMOTILA Tunnista ensin ATTINY85: n nastat. Voit tehdä tämän etsimällä pienen loven sirun pinnalta, joka on RST/RESET -nastan vieressä. Käyttämällä tätä vertailupisteenä voit tunnistaa loput nastat. Kaikki nämä tiedot ovat A85 -tietolomakkeessa -https://www.microchip.com/downloads/en/DeviceDoc/At…

USBasp ja ATTINY85 on liitettävä yllä olevan kuvan mukaisesti.

Seuraavaksi, aseta Arduino IDE ohjelmoijaksi USBasp ja taajuus sisäiseen 8Mhz.

Liitä USBasp kannettavan tietokoneen USB -porttiin (Windows 10: ssä, jos sinulla ei ole USBasp -ohjainta, käytä Zadigia verkkosivuston https://www.fischl.de/usbasp/ mukaisesti)

Seuraavaksi, kun USBasp on kytketty, valitse Arduino IDE Sketch/upload ja toivottavasti sinun pitäisi nähdä latauksen edistyminen Arduino IDE: n punaisilla kirjaimilla ja päättyy avrdude done. Kiitos.

Kaikki virheet tässä vaiheessa liittyvät yleensä löysiin kaapeleihin tai väärään ohjaimeen.

Vaihe 3: Ohjelman suorittaminen

Ohjelman suorittaminen
Ohjelman suorittaminen
Ohjelman suorittaminen
Ohjelman suorittaminen
Ohjelman suorittaminen
Ohjelman suorittaminen

Ensinnäkin jotain Dallas 18b20 -lämpömittarianturista. Siinä on 3 nastaa, maa (G), data (D) ja VCC yllä olevan kuvan mukaisesti. Käyttö edellyttää D- ja VCC -siltojen yhdistämistä 4,7 k: n vastuksella. G ja VCC on kytketty vastaaviin napoihin, kun taas D on kytketty ATTINY 85, nasta - [6] PB1, kuten koodi on määritetty.

Liitä seuraavaksi ATTINY A6 GSM: ään seuraavasti (ja yllä)

ATTINY TX A6 UART_RXd ATTINY RX A6 UART_TXd

ATTINY GND A6 GND

ja itse A6: ssa, A6 PWR A6 VCC 5.0A6 RST A6 GND (Älä vielä liitä maahan !!!!!)

Kytke nyt virta molempiin laitteisiin ja kosketa muutaman sekunnin kuluttua tilapäisesti A6 -maadoitusliitintä kaapelilla, joka on kytketty A6 RST -tappiin. A6 sammuu ja käynnistyy, ja toivottavasti sinun pitäisi pian saada lämpötilatiedot puhelimeesi.

Vaihe 4: Johtopäätös

Tämä ohje voi tuntua melko yksinkertaiselta, mutta ajatuksena on havainnollistaa sitä, mitä voidaan saavuttaa edullisilla komponenteilla. On selvää, että jos sinulla on pääsy Wi-Fi-verkkoon tai BLE-keskittimeen, on olemassa sopivampia ratkaisuja.

En käsitellyt muita toimintoja, kuten tekstiviestin lähettämistä puhelimeen lämpötilan tallennuksen / lähetyksen aloittamiseksi jne.

Suositeltava: