Obsah:

SMS textové teplotné výstrahy z ATTINY85 a A1 GSM: 5 krokov
SMS textové teplotné výstrahy z ATTINY85 a A1 GSM: 5 krokov

Video: SMS textové teplotné výstrahy z ATTINY85 a A1 GSM: 5 krokov

Video: SMS textové teplotné výstrahy z ATTINY85 a A1 GSM: 5 krokov
Video: Co znamenají pojmy místy a ojediněle v předpovědi počasí? 2024, Júl
Anonim
SMS textové upozornenie na teplotu od GSM ATTINY85 a A1
SMS textové upozornenie na teplotu od GSM ATTINY85 a A1

Tento návod vám ukáže, ako zachytiť teplotu z jednoduchého teplotného senzora a odoslať ju formou SMS správy na váš mobilný telefón. Aby som to zjednodušil, odosielam teplotu v nastavenom intervale, ale tiež ukazujem, ako sa to dá urobiť iba pomocou výnimiek / upozornení. Hardvér je veľmi lacný, menej ako 10 dolárov, aj keď existujú stále sa opakujúce náklady na SMS.

Na zdvíhanie ťažkých bremien sa stará jednoduchý, ale výkonný ATTINY 85, ktorý zaznamenáva údaje o teplote a potom spustí odoslanie SMS správy prostredníctvom GSM modulu AI-Thinker A6.

Stručne povedané, napíšete kód ATTINY85 v prostredí Arduino IDE a napálite ho na ATTINY85 pomocou sériového/USB prevodníka USBASP. Nastaveniu modulu GSM-Thinker A6 GSM a Arduino IDE som sa venoval v dvoch predchádzajúcich návodoch. Čo je tu iné, je prepojenie modulu GSM ATTINY a A6 pomocou sériovej komunikácie.

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

Po naprogramovaní ATTINY načíta údaje o teplote zo snímača teplomera - Dallas 18B20- a potom odošle údaje a príkazy sériovým pripojením k GSM modulu A6, ktorý ich potom odošle ako text SMS na váš mobilný telefón.

Čo potrebujete:

1. USBASP sériový/USB prevodník.

2. ATTINY 85.

3. GSM modul AI-Thinker A6, verzia 6 (so sim, ktorý má kredity SMS).

4. Napájací adaptér 3,3 V pre ATTINY85.

5. 3.3.v USB napájací zdroj pre GSM modul AI-Thinker A6.

6. Snímač teploty Dallas 18B20..

7. Rezistor 4,7k pre snímač 18B20.

8. Breadboard a káble.

9. Arduino IDE (použil som na to verziu 1.8.5.).

10. Notebook Windows X (použil som verziu 10) s voľným USB portom.

Krok 1: Programovanie ATTINY 85

Tu je kód Arduino IDE (Budete musieť zmeniť telefónne číslo, na ktoré chcete odoslať SMS.)

#include #include #include

// *** // *** Definujte piny RX a TX. Vyberte akékoľvek dva // *** piny, ktoré sú nepoužívané. Ak plánujete používať I2C, pokúste sa vyhnúť D0 (pin 5) // *** a D2 (pin 7). // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Definujte softvérový sériový port. Použitie // *** názvu Sériové, aby bolo možné kód použiť na iných // *** platformách, ktoré podporujú hardvérové seriály. Na // *** čipoch, ktoré podporujú hardvérové série, stačí // *** komentovať tento riadok. // ***

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 frekvencia nastavená na interných 8 MHz

// *** // *** Kolík, na ktorý je pripojený drôt OneWire data // ***. // *** #define ONE_WIRE_BUS 1

// *** // *** Nastavte inštanciu oneWire na komunikáciu s akýmkoľvek zariadením OneWire // *** (nielen s integrovanými obvodmi teploty Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Odošlite náš odkaz OneWire na teplotu v Dallase. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicializácia sériového portu // *** mySerial.begin (115200); oneskorenie (60 000);

// *** Spustite knižnicu. _sensors.begin (); }

prázdna slučka () {

// *** // *** Zistite aktuálnu teplotu a zobrazte ju. // *** _sensors.requestTemperatures (); oneskorenie (2000); double tempC = _sensors.getTempCByIndex (0); double tempF = _sensors.getTempFByIndex (0); // kontrola chýb - niekedy pri štarte, teplota zobrazená ako 85 ° C

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

neplatné SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // nastavenie oneskorenia režimu SMS (1000); mySerial.println ("AT+CMGF = 1"); // nastavenie oneskorenia režimu SMS (1000); //mySerial.println("AT+CMGS=\"+VÁŠ ČÍSLO / ""); // nastavenie telefónneho čísla (zabalené do dvojitých úvodzoviek) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); oneskorenie (1000); mySerial.write (0x1A); // odosiela ctrl+z koniec oneskorenia správy (1000); mySerial.write (0x0D); // Návrat vozíka v šesťnásobnom oneskorení (1000); mySerial.write (0x0A); oneskorenie (10 000 000); // 17 minút - upravte podľa vlastnej aplikácie}

Otvorte prostredie Arduino IDE - podrobne som vás popísal, ako sa v tom zorientovať v mojom predchádzajúcom návode, na ktorý som už spomenul.

Budete potrebovať nasledujúce knižnice

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Ďalej nakonfigurujte piny RX a TX na ATTINY85, ktoré potrebujete na prepojenie s A1 Thinker. ATTINY 85 má 8 kolíkov, štyri na každej strane a je zarovnaný pomocou bodky na povrchu a je referenciou. Kolík 1 alebo kolík RESET je vedľa bodu.

(V tomto prípade som vybral Pin2 a 3 - Tieto sú na tej istej strane ako pin RESET, ktorý je vedľa bodky na povrchu ATTINY 85. Pin 2 je ďalším pinom pozdĺž kolíka RESET, zatiaľ čo Pin 3 je medzi Pinom 2 a ZEM)

Ďalej musíte nakonfigurovať snímač teploty -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Ďalej nastavte sériový port softvéru

mySerial.begin (115200);

oneskorenie (60 000);

a potom zavolajte senzory pomocou _sensors.begin ();

Ďalej je tu slučka, ktorá hlasuje vo vopred určenom čase, zaznamenáva teplotu a podľa hodnoty odošle správu / upozornenie. Využíva funkciu SMS_temp, kde tiež nastavujete načasovanie slučky

void loop () {sensor.requestTemperatures (); oneskorenie (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, "Docela Cold");}

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

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}

}

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

Ďalej nastavte IDE Arduino, aby sa pripravilo na odoslanie do ATTINY85.

Niekoľko vecí na vedomie

1- Ak nemáte radu ATTINY dosiek, pridajte nasledujúcu adresu URL https://raw.githubusercontent.com/damellis/attiny/… do URL súboru/Predvoľby/Správca dodatočných dosiek, Potom v rámci Arduio IDE kliknite na Nástroje/Správca/Správca dosiek a vyhľadajte ATTINY a nainštalujte novú dosku. Zmeňte procesor na Attiny85.

Krok 2: Nahranie programu do ATTINY85

Odovzdanie programu do ATTINY85
Odovzdanie programu do ATTINY85

Pozrite si tiež moje predchádzajúce pokyny k tomuto-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 má dva režimy, programovací a prevádzkový režim. REŽIM PROGRAMOVANIA Najprv identifikujte kolíky na ATTINY85. Za týmto účelom nájdite malý zárez na povrchu čipu, ktorý je vedľa kolíka RST/RESET. Pomocou tohto referenčného bodu môžete identifikovať ostatné kolíky. Všetky tieto informácie sú uvedené v dátovom liste A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp a ATTINY85 by mali byť prepojené tak, ako je to znázornené na obrázku vyššie.

Ďalej na Arduino IDE nastavte programátor na USBasp a frekvenciu na interných 8 MHz.

Pripojte USBasp k portu USB na prenosnom počítači (Ak v systéme Windows 10 nemáte ovládač USBasp, použite Zadig podľa webovej stránky

Potom, keď je pripojený USBasp, vyberte zo skici/nahrávania Arduino IDE a dúfajme, že by ste mali vidieť priebeh nahrávania zobrazený červenými písmenami Arduino IDE a končiť hotovým. Ďakujem.

Všetky chyby v tejto fáze sú zvyčajne spojené s uvoľnenými káblami alebo nesprávnym ovládačom.

Krok 3: Spustenie programu

Spustenie programu
Spustenie programu
Spustenie programu
Spustenie programu
Spustenie programu
Spustenie programu

Po prvé, niečo o snímači teplomera Dallas 18b20. Má 3 piny, uzemnenie (G), údaje (D) a VCC, ako je znázornené na obrázku vyššie. Na prevádzku vyžaduje premostenie D a VCC odporom 4,7 k. G a VCC sú pripojené k príslušným pólom, zatiaľ čo D je pripojený k ATTINY 85, pin - [6] PB1, ako je nakonfigurované v kóde.

Potom pripojte ATTINY k A6 GSM nasledovne (a znázornené vyššie)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

a na samotnej A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Zatiaľ sa nepripájajte k zemi !!!!!)

Teraz zapnite obe zariadenia a po niekoľkých sekundách sa dočasne dotknite uzemňovacieho kolíka A6 káblom pripojeným k kolíku A6 RST. A6 sa bude vypínať a zapínať a dúfajme, že čoskoro by ste mali do telefónu dostať údaje o teplote.

Krok 4: Záver

Tento návod sa môže zdať dosť jednoduchý, ale cieľom je ilustrovať, čo sa dá dosiahnuť pomocou lacných komponentov. Očividne, ak máte prístup k wi-fi alebo rozbočovaču BLE, potom existujú vhodnejšie riešenia.

Nepokryl som ďalšie funkcie, ako je odoslanie SMS správy na telefón na spustenie nahrávania / prenosu teploty atď.

Odporúča: