Obsah:

Pošle SMS s teplotou načas: 5 krokov (s obrázkami)
Pošle SMS s teplotou načas: 5 krokov (s obrázkami)

Video: Pošle SMS s teplotou načas: 5 krokov (s obrázkami)

Video: Pošle SMS s teplotou načas: 5 krokov (s obrázkami)
Video: Настя учится правильно шутить над папой 2024, November
Anonim
Včas pošle SMS s teplotou
Včas pošle SMS s teplotou

Ide o to, aby ste dostali temperamentnú sms z domu mojich otcov.

Nič fantastické, len rýchle zostavenie dielov.

Časti sú:

  • Arduino kompatibilná s doskou radiča Geekcreit® ATmega328P Nano V3
  • Rozširujúca doska DIY NANO IO Shield V1. O pre Arduino
  • Hodinový modul RTC IIC / I2C v reálnom čase založený na DS1307 a DS18b20
  • SIM800L Štvorpásmový GSM / GPRS
  • Mini menič DC-DC LM2596 nastaviteľný modul zdroja napájania
  • Teplota termistora NTC MF52AT

Najprv veľa od čítania a hľadania.

Predtým, ako konečne použijem Geekcreit® Nano, testujem všetky diely pomocou Arduino Uno.

Krok 1: Spustite SIM800l

Získajte SIM800l do práce
Získajte SIM800l do práce

Jedným z hlavných bodov je výkon Sim800L.

Používam menič DC-DC LM2596 Mini, upravený na 3,7 voltov a samostatné napájanie.

Na testovanie pripojenia pomocou príkazov AT+ je táto strana veľmi použiteľná:

Quickstart SIM800 (SIM800L) s Arduino

Pomocou príkazu Zakázať kód PIN pomocou modemu GSM v príkazoch som získal kód PIN sim.

Ďalšia úvaha, ktorá knižnica. Internet ponúka rôzne riešenia.

Moje riešenie je knižnica od Mattias Aabmets: AspenSIM800

Jeho skúška: Send_SMS.ino použil I ako základný program a jeden po druhom spájal všetky ostatné časti dohromady.

Pin Tx a Rx pin kódujú:

RX_PIN 10 pre Arduino. Musí byť pripojený k TX pinu modulu SIM800. TX_PIN 11 Arduina. Musí byť pripojený k kolíku RX modulu SIM800

Vždy je dobré prečítať si súbory *.ccp a *.h v knižniciach.

Obsahuje veľa zaujímavých rád a znalostí.

Krok 2: Začnite pracovať so snímačom RTC DS1307 so snímačom DS18B20

Získajte RTC DS1307 so snímačom DS18B20 do práce
Získajte RTC DS1307 so snímačom DS18B20 do práce

Použil som túto bočnú stránku: simtronyx - blog pre DS1307 a DS18B20.

Hodiny majú pripojenie na zbernicu I2C a to pre Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 som pripojil k D3.

Čítal som, že v SMS nemôžete odoslať iba plaváky ako reťazec, takže som musel preložiť plaváky na reťazec.

Našiel som tento útržok kódu, ktorý som našiel:

n

MyString1 = String (currentTemp, 2); // Previesť float na String

MyString1 = (MyString1 + "C - teplota miestnosti:)");

// tu začína konverzia reťazca na char

// Dĺžka (s jedným znakom navyše pre nulový terminátor)

int str_len1 = MyString1.length () + 1; // Pripravte pole znakov (vyrovnávacia pamäť)

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

MyString1.toCharArray (char_array1, str_len1); // konvertovanie reťazca na char ju končí

Budem úprimný, nechápem, ako to funguje, ale funguje to.

Krok 3: Začnite pracovať s termistorom NTC MF52AT

Začnite pracovať s termistorom NTC MF52AT
Začnite pracovať s termistorom NTC MF52AT

Predtým som pracoval s termistorom, takže to bola jednoduchá časť.

Ale aj tu môžete nájsť rôzne riešenia.

V záverečnom kóde môžete nájsť ten môj.

Nájdete v nej aj preklad Pláva na reťazec.

Na termistor pripojte nejaký drôt a odpor 10 kOhm.

Krok 4: Nechajte všetko spolupracovať

Napísal som teda všetky časti programu spoločne.

Teraz som musel zistiť, ako odosielať jednu SMS každý deň v rovnakom čase.

Čítal som o rôznych myšlienkach, niektoré s TimerAlarm a iným prístupom.

Na fóre arduino som však našiel jednoduché riešenie:

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

{

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

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

Ale prečo teraz.sekunda = 59, pretože odosiela celú minútu SMS. Mne to robí, ale vyskúšajte si to sami.

Po nejakom teste som nahral program do Geekcreit® Nano.

Možno to nie je najlepšie písanie programu:), ale robí to požadované.

Pretože Geekcreit® ATmega328P Nano má určité problémy s Arduino IDE, nahrávam pomocou terminálu (Linux Mint) USBtinyisp pomocou tohto: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Krok 5: Fungovalo to

Áno, vyšlo to a je to umiestnené v dome.

Každý deň o 6:00 mi príde SMS s teplotou.

Odporúča: