Cuprins:

Trimite un SMS cu Temperatura la timp: 5 pași (cu imagini)
Trimite un SMS cu Temperatura la timp: 5 pași (cu imagini)

Video: Trimite un SMS cu Temperatura la timp: 5 pași (cu imagini)

Video: Trimite un SMS cu Temperatura la timp: 5 pași (cu imagini)
Video: 10 Setari si Trucuri importante pentru un telefon SAMSUNG ! 2024, Iulie
Anonim
Trimite un SMS cu Temperatura la timp
Trimite un SMS cu Temperatura la timp

Ideea este să primesc un sms de temperatură de la casa taților mei.

Nimic nu-ți place doar să pui rapid piesele împreună.

Părțile sunt:

  • Placă de control Geekcreit® ATmega328P Nano V3 compatibilă Arduino
  • Placă de expansiune DIY NANO IO Shield V1. O pentru Arduino
  • Modulul de ceas în timp real RTC IIC / I2C bazat pe DS1307 și DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Converter Modul reglabil de alimentare cu putere redusă
  • Temperatura termistorului NTC MF52AT

În primul rând, o mulțime de lectură și căutare.

Înainte de a folosi Geekcreit® Nano, testez toate piesele cu un Arduino Uno.

Pasul 1: Puneți SIM800l să funcționeze

Puneți SIM800l să funcționeze
Puneți SIM800l să funcționeze

Un punct principal este puterea pentru Sim800L.

Folosesc un convertor Mini DC-DC LM2596, reglat la 3,7 volți și o sursă de alimentare separată.

Pentru a testa conexiunea cu comenzile AT +, această latură este foarte utilizabilă:

Porniți rapid SIM800 (SIM800L) cu Arduino

Cu Dezactivați codul PIN folosind modemul gsm la comenzi, am obținut codul pin SIM.

Următoarea considerație care bibliotecă. Internetul oferă soluții diferite.

Soluția mea este biblioteca de la Mattias Aabmets: AspenSIM800

Exemplul său: Send_SMS.ino l-a folosit pe I ca program de bază și conectez una câte una toate celelalte părți împreună.

Pinul Tx și pinul Rx sunt codul pentru:

RX_PIN 10 din Arduino. Trebuie conectat la pinul TX al modulului SIM800. TX_PIN 11 din Arduino. Trebuie conectat la pinul RX al modulului SIM800

Este întotdeauna o idee bună să citiți fișierele *.ccp și *.h din biblioteci.

Acestea conțin multe indicii și cunoștințe interesante.

Pasul 2: Porniți RTC DS1307 cu senzorul DS18B20

Obțineți funcționalitatea RTC DS1307 cu senzorul DS18B20
Obțineți funcționalitatea RTC DS1307 cu senzorul DS18B20

Am folosit această latură: simtronyx - blogul pentru DS1307 și DS18B20.

Ceasul are o conexiune de autobuz I2C și este pentru Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 l-am conectat la D3.

Am citit că într-un SMS nu poți trimite float doar șir, așa că a trebuit să traduc floats în șir.

Asta fac cu acest fragment de cod pe care l-am găsit:

n

MyString1 = String (currentTemp, 2); // Convertiți float în șir

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

// converti șirul în caractere începe aici

// Lungime (cu un caracter suplimentar pentru terminatorul nul)

int str_len1 = MyString1.length () + 1; // Pregătiți matricea de caractere (tamponul)

char char_array1 [str_len1]; // Copiați-l

MyString1.toCharArray (char_array1, str_len1); // convertește șirul în caractere o termină

Voi fi sincer, nu fac cum funcționează, dar funcționează.

Pasul 3: Puneți Thermistor NTC MF52AT să funcționeze

Puneți Thermistor NTC MF52AT să funcționeze
Puneți Thermistor NTC MF52AT să funcționeze

Am lucrat înainte cu un termistor, așa că a fost partea ușoară.

Dar și aici puteți găsi o soluție diferită.

În codul final îl puteți găsi pe al meu.

Puteți găsi și traducerea Floats to String.

S-au lipit niște fire și rezistorul de 10 k ohm la termistor.

Pasul 4: Lucrați toți împreună

Așa că am scris împreună toate părțile programului.

Acum a trebuit să-mi dau seama cum să trimit un SMS în fiecare zi, în același timp.

Am citit despre idei diferite, unele cu o abordare TimerAlarm și altele.

Dar am găsit o soluție simplă în forumul arduino:

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

{

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

întârziere (500); SIM.smsSend (addr, char_array1); // DS18B20}

Dar de ce acum.second = 59 pentru că trimite un SMS întreg de minut. Pentru mine, dar încearcă-te singur.

După un test, am încărcat programul pe Geekcreit® Nano.

Poate că acesta nu este cel mai bun program de scriere:), dar face ceea ce doriți.

Deoarece Geekcreit® ATmega328P Nano are unele probleme Arduino IDE, încărc prin terminal (Linux Mint) arunc USBtinyisp cu acest: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Pasul 5: A funcționat

Da, a funcționat și este plasat în casă.

În fiecare zi la ora 6:00 primesc un SMS cu temperatura.

Recomandat: