Obsah:

SMS textová teplotní upozornění od ATTINY85 a A1 GSM: 5 kroků
SMS textová teplotní upozornění od ATTINY85 a A1 GSM: 5 kroků

Video: SMS textová teplotní upozornění od ATTINY85 a A1 GSM: 5 kroků

Video: SMS textová teplotní upozornění od ATTINY85 a A1 GSM: 5 kroků
Video: ANDROID MÁ JEDNO SKRYTÉ NASTAVENÍ 🤖 2024, Září
Anonim
SMS textová upozornění na teploty od GSM ATTINY85 a A1
SMS textová upozornění na teploty od GSM ATTINY85 a A1

Tento návod vám ukáže, jak zachytit teplotu pomocí jednoduchého teplotního senzoru a odeslat ji pomocí sms textu na váš mobilní telefon. Pro zjednodušení posílám teplotu v nastaveném intervalu, ale také ukazuji, jak to lze provést pouze pomocí výjimek / upozornění. Hardware je velmi levný, méně než 10 dolarů, přestože je třeba vzít v úvahu opakující se náklady na SMS.

Těžké zvedání provádí jednoduchý, ale výkonný ATTINY 85, který zaznamenává údaje o teplotě a poté spouští SMS odeslanou přes GSM modul AI-Thinker A6.

Stručně řečeno, napíšete kód ATTINY85 v prostředí Arduino IDE a vypálíte ho na ATTINY85 pomocí převodníku sériového/USB USBASP. Ve dvou předchozích tutoriálech jsem se zabýval nastavením GSM modulu AI-Thinker A6 a Arduino IDE. Co je zde jiné, je propojení modulu GSM ATTINY a A6 pomocí sériové komunikace.

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

Po naprogramování ATTINY načte teplotní data ze snímače teploměru - Dallas 18B20- a poté odešle data a příkazy sériovým připojením k GSM modulu A6, který je poté odešle jako SMS text na váš mobilní / chytrý telefon.

Zde je to, co potřebujete:

1. Převodník sériového/USB USBASP.

2. ATTINY 85.

3. GSM modul AI-Thinker A6 verze 6 (se sim, který má SMS kredity).

4. Napájecí zdroj 3,3 V pro ATTINY85.

5. 3.3.v USB napájecí zdroj pro GSM modul AI-Thinker A6.

6. Teplotní senzor Dallas 18B20..

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

8. Breadboard a kabely.

9. Arduino IDE (k tomu jsem použil verzi 1.8.5.).

10. Notebook Windows X (použil jsem verzi 10) s volným USB portem.

Krok 1: Programování ATTINY 85

Zde je kód Arduino IDE (Budete muset změnit telefonní číslo, na které chcete odeslat SMS.)

#include #include #include

// *** // *** Definujte piny RX a TX. Vyberte libovolné dva // *** piny, které nejsou použity. Pokud plánujete použít I2C, zkuste se vyhnout D0 (pin 5) // *** a D2 (pin 7). // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Definujte softwarový sériový port. Použití // *** názvu Sériové, aby bylo možné kód použít na jiných // *** platformách, které podporují hardwarový seriál. U // *** čipů, které podporují hardwarový seriál, stačí // *** okomentovat tento řádek. // ***

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 frekvence nastavená na interní 8 MHz

// *** // *** Pin, na který je připojen datový vodič OneWire // ***. // *** #define ONE_WIRE_BUS 1

// *** // *** Nastavte instanci oneWire pro komunikaci s jakýmkoli zařízením OneWire // *** (nejen teplotními integrovanými obvody Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Předejte náš oneWire odkaz na teplotu v Dallasu. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicializace sériového portu // *** mySerial.begin (115200); zpoždění (60 000);

// *** Spusťte knihovnu. _sensors.begin (); }

prázdná smyčka () {

// *** // *** Získejte aktuální teplotu a zobrazte ji. // *** _sensors.requestTemperatures (); zpoždění (2000); double tempC = _sensors.getTempCByIndex (0); double tempF = _sensors.getTempFByIndex (0); // kontrola chyb - někdy při startu, teplota zobrazena jako 85C

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"); // nastaveno na zpoždění režimu SMS (1000); mySerial.println ("AT+CMGF = 1"); // nastaveno na zpoždění režimu SMS (1000); //mySerial.println("AT+CMGS=\"+VÁŠ ČÍSLO / ""); // nastavení telefonního čísla (zabalené do uvozovek) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); zpoždění (1000); mySerial.write (0x1A); // posílá ctrl+z konec zpoždění zprávy (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); zpoždění (10 000 000); // 17 minut - přizpůsobte své vlastní aplikaci}

Otevřete prostředí Arduino IDE - podrobně jsem vás popsal, jak se v tom zorientovat v mém předchozím pokynu, o kterém jsem se zmiňoval dříve.

Budete potřebovat následující knihovny

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Dále nakonfigurujte piny RX a TX na ATTINY85, které potřebujete k propojení s A1 Thinker. ATTINY 85 má 8 kolíků, čtyři na každé straně a je zarovnán pomocí tečky na povrchu a je referencí. Kolík 1 nebo kolík RESET je vedle tečky.

(v tomto případě jsem zvolil Pin2 a 3 - Ty jsou na stejné straně jako pin RESET, který je vedle tečky na povrchu ATTINY 85. Pin 2 je další pin podél kolíku RESET, zatímco Pin 3 je mezi Pinem 2 a ZEMĚ)

Dále musíte nakonfigurovat teplotní senzor -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Dále nastavte sériový port softwaru

mySerial.begin (115200);

zpoždění (60 000);

a poté zavolejte senzory pomocí _sensors.begin ();

Dále je tu smyčka, která hlasuje kolem v předem stanoveném čase, zaznamenává teplotu a odesílá zprávu / upozornění v závislosti na hodnotě. Používá funkci SMS_temp, kde také nastavujete časování smyčky

void loop () {sensor.requestTemperatures (); zpoždění (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");}

}

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

Dále nastavte Arduino IDE, aby se připravilo na nahrání do ATTINY85.

Několik věcí, které je třeba poznamenat

1- Pokud nemáte desku ATTINY, přidejte následující URL https://raw.githubusercontent.com/damellis/attiny/… do URL File/Preferences/Additional Boards Manager, Dále v Arduio IDE klikněte na Tools/Board/Board Manager a vyhledejte ATTINY a nainstalujte novou desku. Změňte procesor na Attiny85.

Krok 2: Nahrání programu do ATTINY85

Nahrání programu do ATTINY85
Nahrání programu do ATTINY85

Podívejte se také na můj předchozí návod k tomuto-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 má dva režimy, programovací a provozní režim. 1. PROGRAMOVACÍ REŽIM Nejprve identifikujte piny na ATTINY85. Chcete -li to provést, najděte malý zářez na povrchu čipu, který je vedle kolíku RST/RESET. Pomocí tohoto jako referenčního bodu můžete identifikovat zbytek kolíků. Všechny tyto informace jsou uvedeny v datovém listu A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp a ATTINY85 by měly být připojeny tak, jak je znázorněno na obrázku výše.

Dále na Arduino IDE nastavte programátor na USBasp a frekvenci na interní 8Mhz.

Připojte USBasp k USB portu na vašem notebooku (v systému Windows 10, pokud nemáte ovladač USBasp, použijte Zadig podle webové stránky

Poté, když je připojen USBasp, vyberte z Arduino IDE Sketch/upload a doufejme, že byste měli vidět průběh nahrávání zobrazený červenými písmeny Arduino IDE a končící hotovým. Děkuji.

Jakékoli chyby v této fázi jsou obvykle spojeny s uvolněnými kabely nebo špatným ovladačem.

Krok 3: Spuštění programu

Spuštění vašeho programu
Spuštění vašeho programu
Spuštění vašeho programu
Spuštění vašeho programu
Spuštění vašeho programu
Spuštění vašeho programu

Nejprve něco o čidle teploměru Dallas 18b20. Má 3 piny, Ground (G), data (D) a VCC, jak je znázorněno na obrázku výše. Pro provoz vyžaduje přemostění D a VCC odporem 4,7k. G a VCC jsou připojeny k příslušným pólům, zatímco D je připojeno k ATTINY 85, pin - [6] PB1, jak je nakonfigurováno v kódu.

Dále připojte ATTINY k A6 GSM následujícím způsobem (a zobrazeno výše)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

a na samotné A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (zatím nepřipojujte k zemi !!!!!)

Nyní zapněte obě zařízení a po několika sekundách se dočasně dotkněte zemnicího kolíku A6 kabelem připojeným ke kolíku A6 RST. A6 se bude vypínat a zapínat a doufejme, že byste brzy měli do telefonu obdržet údaje o teplotě.

Krok 4: Závěr

Tento návod se může zdát docela jednoduchý, ale myšlenkou je ukázat, čeho lze dosáhnout s nízkými náklady na komponenty. Je zřejmé, že pokud máte přístup k wi-fi nebo rozbočovači BLE, pak existují vhodnější řešení.

Nezahrnul jsem další funkce, jako je odeslání SMS TO telefonu na zahájení nahrávání / přenosu teploty atd.

Doporučuje: