Kazalo:

Pošlje SMS s časovno temperaturo: 5 korakov (s slikami)
Pošlje SMS s časovno temperaturo: 5 korakov (s slikami)

Video: Pošlje SMS s časovno temperaturo: 5 korakov (s slikami)

Video: Pošlje SMS s časovno temperaturo: 5 korakov (s slikami)
Video: Как припаять к алюминию? Легко. Нужен только паяльник! Без флюсов, без горелки! 2024, November
Anonim
Pošlje SMS s temperaturo ob času
Pošlje SMS s temperaturo ob času

Ideja je, da dobim temperaturni sms iz hiše mojih očetov.

Nič lepega, samo hitro sestavljanje delov.

Deli so:

  • Arduino, združljiv s krmilno ploščo Geekcreit® ATmega328P Nano V3
  • DIY NANO IO Shield V1. O razširitvena plošča za Arduino
  • DS1307 RTC IIC / I2C Cloud Modul za realni čas in DS18b20
  • SIM800L Štiripasovni GSM / GPRS
  • LM2596 Mini DC-DC pretvornik, nastavljiv napajalni modul za navzdol
  • Termistor NTC MF52AT temperatura

Sprva veliko o branju in iskanju.

Preden končno uporabim Geekcreit® Nano, vse dele preizkusim z Arduino Uno.

1. korak: Vklopite SIM800l

Prenesite SIM800l v službo
Prenesite SIM800l v službo

Ena glavna točka je moč za Sim800L.

Uporabljam LM2596 Mini DC-DC pretvornik, nastavljen na 3,7 voltov in ločen napajalnik.

Za testiranje povezave z ukazi AT+ je ta stran zelo uporabna:

Hitri zagon SIM800 (SIM800L) z Arduinom

Z možnostjo Onemogoči pin kodo z uporabo modema gsm pri ukazih sem dobil kodo pin pin.

Naslednji premislek, katera knjižnica. Internet ponuja različne rešitve.

Moja rešitev je knjižnica Mattiasa Aabmetsa: AspenSIM800

Njegov izpit: Send_SMS.ino je uporabil I kot osnovni program in enega za drugim poveže vse ostale dele skupaj.

Pin Tx in Rx sta koda za:

RX_PIN 10 iz Arduina. Mora biti priključen na TX pin modula SIM800. TX_PIN 11 Arduina. Mora biti priključen na RX pin modula SIM800

Vedno je dobro prebrati datoteke *.ccp in *.h v knjižnicah.

Vsebujejo veliko zanimivih namigov in znanja.

2. korak: Začnite delovati RTC DS1307 s senzorjem DS18B20

Naj deluje RTC DS1307 s senzorjem DS18B20
Naj deluje RTC DS1307 s senzorjem DS18B20

Uporabil sem to stransko stran: simtronyx - blog za DS1307 in DS18B20.

Ura ima povezavo z vodilom I2C in to je za Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 I sem priključil na D3.

Prebral sem, da v SMS -u ne morete poslati samo nizov, zato sem moral prevesti plavajoče v niz.

To, kar naredim s tem delčkom kode, sem našel:

n

MyString1 = Niz (currentTemp, 2); // Pretvori float v niz

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

// tukaj se pretvori niz v char

// Dolžina (z enim dodatnim znakom za ničelni terminator)

int str_len1 = MyString1.length () + 1; // Pripravimo niz znakov (medpomnilnik)

char char_array1 [str_len1]; // Kopirajte

MyString1.toCharArray (char_array1, str_len1); // pretvori niz v char

Iskreno povedano, ne vem, kako deluje, ampak deluje.

3. korak: Zaženite delovanje termistorja NTC MF52AT

Termistor NTC MF52AT naj deluje
Termistor NTC MF52AT naj deluje

Pred tem sem delal s termistorjem, zato je bil to lažji del.

Toda tudi tukaj lahko najdete drugačno rešitev.

V končni kodi lahko najdete mojo.

Lahko tudi najdete prevod Floats to String.

Spajamo nekaj žice in 10 k ohmski upor na termistor.

4. korak: Naj vsi sodelujejo

Zato sem skupaj napisal vse dele programa.

Zdaj sem moral ugotoviti, kako poslati vsak dan po en SMS, hkrati.

Prebral sem različne ideje, nekatere s TimerAlarm in drugim pristopom.

Toda na forumu arduino sem našel preprosto rešitev:

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

{

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

zamuda (500); SIM.smsSend (addr, char_array1); // DS18B20}

Zakaj pa zdaj.second = 59, ker pošlje celo minuto SMS -a. Meni gre, ampak preizkusi sam.

Po nekaj preizkusih sem program naložil v Geekcreit® Nano.

Morda to ni najboljše pisanje programov:), vendar naredi želeno.

Ker ima Geekcreit® ATmega328P Nano nekaj težav z Arduino IDE, naložim prek terminala (Linux Mint) in vržem USBtinyisp s tem: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

5. korak: Uspelo je

Da, uspelo je in je postavljeno v hišo.

Vsak dan ob 6:00 dobim SMS s temperaturo.

Priporočena: