Időben küld egy SMS -t Temperaturral: 5 lépés (képekkel)
Időben küld egy SMS -t Temperaturral: 5 lépés (képekkel)
Anonim
Időben küld egy SMS -t a Temperaturral
Időben küld egy SMS -t a Temperaturral

Az ötlet az, hogy egy hőmérsékleti sms -t kapok az apám házától.

Semmi különös, csak az alkatrészek gyors összerakása.

Az alkatrészek a következők:

  • Geekcreit® ATmega328P Nano V3 vezérlőkártya kompatibilis Arduino
  • DIY NANO IO Shield V1. O bővítőlap Arduino számára
  • DS1307 alapú RTC IIC / I2C valós idejű óra modul és DS18b20
  • SIM800L négysávos GSM / GPRS
  • LM2596 Mini DC-DC átalakító Állítható lefelé tápellátó modul
  • Termisztor NTC MF52AT hőmérséklet

Először is sokat olvasni és keresni.

Mielőtt végre a Geekcreit® Nano -t használnám, minden alkatrészt egy Arduino Uno -val tesztelek.

1. lépés: Indítsa el a SIM800l készüléket

Indítsa el a SIM800l készüléket
Indítsa el a SIM800l készüléket

Az egyik fő pont a Sim800L teljesítménye.

LM2596 Mini DC-DC átalakítót használok, 3,7 voltra állítva és külön tápegységgel.

Az AT+ parancsokkal való kapcsolat teszteléséhez ez az oldal nagyon használható:

Gyorsindítás SIM800 (SIM800L) az Arduino segítségével

A PIN kód letiltása gsm modem használatával parancsoknál megkaptam a sim pin kódot.

A következő szempont, melyik könyvtár. Az internet különböző megoldásokat kínál.

A megoldásom Mattias Aabmets könyvtára: AspenSIM800

Példája: A Send_SMS.ino alapprogramként az I -t használta, és egyesével összekapcsolta a többi részt.

A Tx és Rx pin kódok:

RX_PIN 10 Arduino. Csatlakoztatni kell a SIM800 modul TX tűjéhez. Csatlakoztatni kell a SIM800 modul RX tűjéhez

Mindig jó ötlet elolvasni a *.ccp és *.h fájlokat a könyvtárakban.

Sok érdekes tippet és tudást tartalmaznak.

2. lépés: Működtesse az RTC DS1307 -et DS18B20 érzékelővel

Működtesse az RTC DS1307 készüléket DS18B20 érzékelővel
Működtesse az RTC DS1307 készüléket DS18B20 érzékelővel

Ezt az oldalsó oldalt használtam: simtronyx - a DS1307 és DS18B20 blogja.

Az óra I2C busz csatlakozással rendelkezik, és ez az Arduino Uno számára: A4 (SDA) - A5 (SCL)

A DS18B20 I csatlakozott a D3 -hoz.

Olvastam, hogy SMS -ben nem küldhet Floats csak karakterláncot, ezért le kellett fordítanom az úszókat karakterláncra.

Ezzel a kódrészlettel, amit találtam:

n

MyString1 = Karakterlánc (aktuálisTemp, 2); // Az úszó átalakítása karakterlánccá

MyString1 = (MyString1 + "C - RoomTemperatur:)");

// a karakterlánc konvertálása char -ra itt kezdődik

// Hossz (egy extra karakterrel a null terminátorhoz)

int str_len1 = MyString1.length () + 1; // Készítse elő a karakter tömböt (a puffert)

char char_array1 [str_len1]; // Másolja át

MyString1.toCharArray (char_array1, str_len1); // karakterlánc konvertálása char -ra végződik

Őszinte leszek, nem tudom, hogyan működik, de működik.

3. lépés: Indítsa el az NTC MF52AT termisztor működését

Működtesse az NTC MF52AT termisztorot
Működtesse az NTC MF52AT termisztorot

Termisztorral dolgoztam, így ez volt a könnyű rész.

De itt is találhat más megoldást.

A végső kódban megtalálhatja az enyémet.

Megtalálhatja a Floats to String fordítást is.

Forrasztott néhány vezetéket és a 10 k ohmos ellenállást a termisztorhoz.

4. lépés: Mindenki működjön együtt

Tehát az összes programrészt együtt írtam.

Most rá kellett jönnöm, hogyan küldjek egy SMS -t minden nap, ugyanabban az időben.

Olvastam különböző ötletekről, némelyikről TimerAlarm és más megközelítéssel.

De találtam egy egyszerű megoldást valahol az arduino fórumon:

if (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

SIM.smsSend (addr, char_array); // termisztor

késleltetés (500); SIM.smsSend (addr, char_array1); // DS18B20}

De miért most.second = 59, mert egy egész perces SMS -t küld. Nekem bevált, de próbáld ki magad.

Némi teszt után feltöltöttem a programot a Geekcreit® Nano -ra.

Ez talán nem a legjobb programírás:) de a kívántat teljesíti.

Mivel a Geekcreit® ATmega328P Nano rendelkezik néhány Arduino IDE problémával, a terminálon keresztül (Linux Mint) töltöm fel az USBtinyisp -et ezzel: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

5. lépés: Sikerült

Igen, sikerült, és be van helyezve a házba.

Minden nap 6: 00 -kor kapok egy SMS -t a hőmérsékletről.

Ajánlott: