Obsah:

Odesílá sms s teplotou na čas: 5 kroků (s obrázky)
Odesílá sms s teplotou na čas: 5 kroků (s obrázky)

Video: Odesílá sms s teplotou na čas: 5 kroků (s obrázky)

Video: Odesílá sms s teplotou na čas: 5 kroků (s obrázky)
Video: 15 skvělých Samsung triků, které musíš znát. 2024, Listopad
Anonim
Včas odešle sms s teplotou
Včas odešle sms s teplotou

Cílem je získat SMS o teplotě z domu mých otců.

Nic efektního, jen rychlé skládání dílů dohromady.

Díly jsou:

  • Arduino kompatibilní s Geekcreit® ATmega328P Nano V3 Controller Board
  • Rozšiřující deska DIY NANO IO Shield V1. O pro Arduino
  • Hodinový modul RTC IIC / I2C v reálném čase založený na DS1307 a DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Converter nastavitelný krokový napájecí modul
  • Teplota termistoru NTC MF52AT

Nejprve hodně mimo čtení a hledání.

Než konečně použiji Geekcreit® Nano, testuji všechny díly pomocí Arduino Uno.

Krok 1: Získejte SIM800l do práce

Získejte SIM800l do práce
Získejte SIM800l do práce

Jedním z hlavních bodů je výkon Sim800L.

Používám převodník LM2596 Mini DC-DC, upravený na 3,7 voltů a samostatné napájení.

Pro testování připojení pomocí AT+ příkazů je tato strana velmi použitelná:

Quickstart SIM800 (SIM800L) s Arduino

S Disable pin code using gsm modem at commands I got ride of the sim pin code.

Další úvaha, která knihovna. Internet nabízí jiná řešení.

Moje řešení je knihovna od Mattias Aabmets: AspenSIM800

Jeho zkouška: Send_SMS.ino použil I jako základní program a jeden po druhém spojil všechny ostatní části dohromady.

Pin Tx a Rx pin kódují:

RX_PIN 10 Arduina. Musí být připojen k TX pinu modulu SIM800. TX_PIN 11 Arduina. Musí být připojen ke kolíku RX modulu SIM800

Vždy je dobré přečíst si *.ccp a *.h soubory v knihovnách.

Obsahují mnoho zajímavých rad a znalostí.

Krok 2: Získejte RTC DS1307 se snímačem DS18B20, aby fungoval

Získejte RTC DS1307 se snímačem DS18B20, aby fungoval
Získejte RTC DS1307 se snímačem DS18B20, aby fungoval

Použil jsem tuto stranu: simtronyx - blog pro DS1307 a DS18B20.

Hodiny mají připojení I2C sběrnice a to je pro Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 jsem připojil k D3.

Dočetl jsem se, že v SMS nemůžete posílat pouze plováky String, takže jsem musel překládat plováky na řetězec.

To, co dělám s tímto fragmentem kódu, který jsem našel:

n

MyString1 = String (currentTemp, 2); // Převést float na String

MyString1 = (MyString1 + "C - teplota místnosti:)");

// zde začíná převod řetězce na char

// Délka (s jedním znakem navíc pro null terminátor)

int str_len1 = MyString1.length () + 1; // Připravte pole znaků (vyrovnávací paměť)

char char_array1 [str_len1]; // Zkopírujte to

MyString1.toCharArray (char_array1, str_len1); // konvertovat řetězec na char ji ukončí

Budu upřímný, nevím, jak to funguje, ale funguje to.

Krok 3: Začněte pracovat s termistorem NTC MF52AT

Získejte termistor NTC MF52AT do práce
Získejte termistor NTC MF52AT do práce

Pracoval jsem předtím s termistorem, takže to byla snadná část.

Ale také zde můžete najít jiné řešení.

Ve finálním kódu můžete najít můj.

Můžete také najít překlad Plováky na řetězec.

K termistoru připájejte nějaký drát a odpor 10 kOhm.

Krok 4: Nechte všechny spolupracovat

Napsal jsem tedy všechny části programu dohromady.

Nyní jsem musel zjistit, jak posílat jednu SMS každý den ve stejnou dobu.

Četl jsem o různých nápadech, některé s TimerAlarm a jiným přístupem.

Ale našel jsem jednoduché řešení někde na fóru arduino:

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

{

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

zpoždění (500); SIM.smsSend (addr, char_array1); // DS18B20}

Ale proč právě teď. Sekunda = 59, protože odesílá celou minutovou SMS. Mně ano, ale zkuste to sami.

Po nějakém testu jsem nahrál program do Geekcreit® Nano.

Možná to není nejlepší psaní programu:), ale dělá to požadované.

Protože Geekcreit® ATmega328P Nano má nějaké problémy s Arduino IDE, nahrál jsem pomocí terminálu (Linux Mint) USBtinyisp pomocí tohoto: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Krok 5: Fungovalo to

Ano, to fungovalo a je umístěno v domě.

Každý den v 6:00 mi přijde SMS s teplotou.

Doporučuje: