Tartalomjegyzék:

SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről: 5 lépés
SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről: 5 lépés

Videó: SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről: 5 lépés

Videó: SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről: 5 lépés
Videó: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, November
Anonim
SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről
SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről

Ez az útmutató megmutatja, hogyan rögzítheti a hőmérsékletet egy egyszerű hőmérséklet -érzékelőről, és elküldheti SMS -ben a mobiltelefonjára. Az egyszerűség kedvéért a beállított időközönként elküldöm a hőmérsékletet, de azt is megmutatom, hogy ez csak kivétel / riasztások alapján lehetséges. A hardver nagyon alacsony költségű, kevesebb, mint 10 dollár, bár figyelembe kell venni az ismétlődő sms -költségeket.

A nehéz emelést az egyszerű, de erőteljes ATTINY 85 végzi, amely rögzíti a hőmérsékleti adatokat, majd elindít egy SMS-t az AI-Thinker A6 GSM modulon keresztül.

Röviden, írja be az ATTINY85 kódot az Arduino IDE környezetbe, és égesse el az ATTINY85 kódon egy USBASP soros/USB átalakító segítségével. Két korábbi oktatóanyagban foglalkoztam az AI-Thinker A6 GSM modul és az Arduino IDE beállításával. Ami itt más, az az ATTINY és az A6 GSM modul interfésze soros kommunikáció használatával.

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

A programozás után az ATTINY beolvassa a hőmérsékleti adatokat a Dallas 18B20 hőmérő érzékelőjéből, majd soros kapcsolaton keresztül elküldi az adatokat és parancsokat az A6 GSM modulhoz, amely ezt követően SMS -ben elküldi a mobil / okostelefonra.

Erre van szüksége:

1. USBASP soros/USB átalakító.

2. ATTINY 85.

3. AI-Thinker A6 GSM modul 6-os verziója (SMS-kreditekkel rendelkező sim-szel).

4. 3.3V kenyértáblás tápegység az ATTINY85 készülékhez.

5. 3.3.v USB tápegység az AI-Thinker A6 GSM modulhoz.

6. Dallas 18B20 hőmérséklet -érzékelő..

7. 4,7 k ellenállás a 18B20 érzékelőhöz.

8. Kenyértábla és kábelek.

9. Arduino IDE (ehhez az 1.8.5. Verziót használtam).

10. Windows X laptop (én a 10 -es verziót használtam) ingyenes usb porttal.

1. lépés: Az ATTINY 85 programozása

Itt található az Arduino IDE kód (módosítania kell azt a telefonszámot, amelyre az SMS -t el szeretné küldeni.)

#befoglalni #befoglalni #befoglalni

*** *** *** *** Határozza meg az RX és TX csapokat. Válasszon ki két nem használt // *** tűt. Próbálja meg elkerülni a D0 (5. tű) // *** és a D2 (7. tű) használatát, ha az I2C használatát tervezi. // *** #define RX 3 // *** D3, 2. tüske #define TX 4 // *** D4, 3. tű

// *** // *** Határozza meg a szoftver alapú soros portot. A // *** Serial név használata annak érdekében, hogy a kód más // *** platformokon is használható legyen, amelyek támogatják a hardveralapú sorosítást. A hardveres sorozatot támogató // *** chipeken csak // *** kommentálja ezt a sort. // ***

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 belső 8 MHz -en

// *** // *** Tű, amelyre a OneWire adat // *** vezeték csatlakozik. // *** #define ONE_WIRE_BUS 1

// *** // *** Állítson be egy OneWire példányt, hogy kommunikáljon bármely OneWire // *** eszközzel (nem csak a Maxim/Dallas hőmérséklet IC -kkel). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Adja át oneWire referenciánkat a dallasi hőmérséklethez. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicializálja a soros portot // *** mySerial.begin (115200); késleltetés (60000);

// *** Indítsa el a könyvtárat. _szenzorok.begin (); }

void loop () {

*** *** *** *** Az aktuális hőmérséklet megjelenítése és megjelenítése. // *** _sensors.requestTemperatures (); késleltetés (2000); dupla tempC = _szenzorok.getTempCByIndex (0); dupla tempF = _szenzorok.getTempFByIndex (0); // ellenőrizze a hibákat - néha indításkor, a hőmérséklet 85C

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Túl meleg");}}

void SMS_temp (dupla mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS mód késleltetésre állítva (1000); mySerial.println ("AT+CMGF = 1"); // SMS mód késleltetésre állítva (1000); //sajatSerial.println("ATAT+CMGS=\"+ÉV SZÁMA / ""); // állítsa be a telefonszámot (kettős idézőjelek közé csomagolva) késleltetés (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); késleltetés (1000); mySerial.write (0x1A); // elküldi a ctrl+z üzenet késését (1000); mySerial.write (0x0D); // Kocsivissza hexadecimális késleltetés (1000); mySerial.write (0x0A); késleltetés (1000000); // 17 perc - állítsa be a saját alkalmazásának megfelelően}

Nyissa meg az Arduino IDE környezetet - az előző utasításomban részletesen leírtam, hogyan lehet eligazodni ezen a területen.

A következő könyvtárakra lesz szüksége

SoftwareSerial.h

OneWire.h

DallasHőmérséklet.h

Ezután konfigurálja az RX és a TX csapokat az ATTINY85 készüléken, amelyeket csatlakoztatnia kell az A1 Thinker készülékhez. Az ATTINY 85 8 tűvel rendelkezik, négy -két oldalt mindkét oldalon, és a felületen lévő pont segítségével igazodik a hivatkozáshoz. Az 1 -es vagy a RESET -tű a pont mellett található.

(ebben az esetben a 2 -es és a 3 -as tűt választottam - Ezek ugyanazon az oldalon vannak, mint a RESET csap, amely az ATTINY 85 felületén található pont mellett található. A 2 -es csap a RESET -csap következő szegje, míg a 3 -as a Pin között 2 és GROUND)

Ezután konfigurálnia kell a hőmérséklet -érzékelőt -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Ezután állítsa be a szoftver soros portját

mySerial.begin (115200);

késleltetés (60000);

majd hívja az érzékelőket a _sensors.begin () paranccsal;

Ezután következik a hurok, amely egy előre meghatározott időpontban lekérdezi, rögzíti a hőmérsékletet, és üzenetet / riasztást küld az érték függvényében. Ez egy SMS_temp függvényt használ, ahol beállíthatja a ciklus időzítését

void loop () {sensors.requestTemperatures (); késleltetés (2000);

dupla tempC = _szenzorok.getTempCByIndex (0);

dupla tempF = _szenzorok.getTempFByIndex (0);

if (tempC <= 14) {SMS_temp (tempC, "VESZÉLYES hideg");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Elég hideg");}

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

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Túl meleg");}

}

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

Ezután állítsa be az Arduino IDE -t, hogy felkészüljön az ATTINY85 -re való feltöltésre.

Számos dolog, amit meg kell jegyezni

1- Ha nem rendelkezik ATTINY táblacsaláddal, adja hozzá a következő URL-t: https://raw.githubusercontent.com/damellis/attiny/… a Fájl/Beállítások/További táblák kezelő URL-ben, Ezután az Arduio IDE -n belül kattintson az Eszközök/Tábla/Fórumkezelő elemre, és keresse meg az ATTINY lehetőséget, és telepítse az új táblát. Állítsa a processzort Attiny85 -re.

2. lépés: A program feltöltése az ATTINY85 -re

A program feltöltése az ATTINY85 -re
A program feltöltése az ATTINY85 -re

Lásd még a korábbi utasításomat ezzel kapcsolatban-https://www.instructables.com/id/15-Dollar-Attiny8…

Az ATTINY85 két üzemmóddal rendelkezik, programozási és működési mód. PROGRAMOZÁSI ÜZEMMÓD Először határozza meg az ATTINY85 csapjait. Ehhez keresse meg azt a kis bevágást a chip felületén, amely az RST/RESET csap mellett található. Ezt referenciapontként használva azonosíthatja a többi csapot. Mindezeket az információkat az A85 adatlap tartalmazza -https://www.microchip.com/downloads/en/DeviceDoc/At…

Az USBasp -ot és az ATTINY85 -öt a fenti képen látható módon kell csatlakoztatni.

Ezután az Arduino IDE -n állítsa a programozót USBasp -ra, a frekvenciát pedig 8Mhz -re.

Csatlakoztassa az USBasp -t a laptop USB -portjához (Windows 10 rendszerben, ha nincs USBasp -illesztőprogramja, használja a Zadig szoftvert a https://www.fischl.de/usbasp/ webhely szerint)

Ezután, ha az USBasp csatlakoztatva van, válasszon az Arduino IDE Sketch/upload közül, és remélhetőleg látnia kell a feltöltési folyamatot az Arduino IDE piros betűivel, és az avrdude done befejezésével. Köszönöm.

Ebben a szakaszban a hibák általában laza kábelekhez vagy rossz illesztőprogramhoz kapcsolódnak.

3. lépés: A program futtatása

A program futtatása
A program futtatása
A program futtatása
A program futtatása
A program futtatása
A program futtatása

Először is, valami a Dallas 18b20 hőmérő érzékelőjéről. Három érintkezővel rendelkezik, földelt (G), adat (D) és VCC, amint a fenti képen látható. A működéshez szükség van a D és VCC áthidalására 4,7 k ellenállással. A G és a VCC a megfelelő pólusokhoz van csatlakoztatva, míg a D egy ATTINY 85, - - [6] PB1 érintkezőhöz, a kódban konfigurálva.

Ezután csatlakoztassa az ATTINY -t az A6 GSM -hez az alábbiak szerint (és fent látható)

ATTINY TX A6 UART_RXd ATTINY RX A6 UART_TXd

ATTINY GND A6 GND

és maga az A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (még ne csatlakozzon a földhöz !!!!!)

Most kapcsolja be mindkét eszközt, és néhány másodperc múlva érintse meg ideiglenesen az A6 -os földelőcsapot az A6 -os RST -tűhöz csatlakoztatott kábellel. Az A6 ki- és bekapcsol, és remélhetőleg hamarosan meg kell kapnia a hőmérsékleti adatokat a telefonján.

4. lépés: Következtetés

Ez az utasítás meglehetősen egyszerűnek tűnhet, de az ötlet az, hogy szemléltesse, mit lehet elérni az alacsony költségű komponensekkel. Nyilvánvaló, hogy ha van hozzáférése Wi-Fi-hez vagy BLE hubhoz, akkor vannak megfelelőbb megoldások.

Nem foglalkoztam más funkciókkal, például SMS -t küldve a telefonra hőmérséklet -rögzítés / átvitel kezdeményezéséhez stb.

Ajánlott: