Sisukord:

Temperaturiga sõnumi saatmine õigel ajal: 5 sammu (piltidega)
Temperaturiga sõnumi saatmine õigel ajal: 5 sammu (piltidega)

Video: Temperaturiga sõnumi saatmine õigel ajal: 5 sammu (piltidega)

Video: Temperaturiga sõnumi saatmine õigel ajal: 5 sammu (piltidega)
Video: TITANICU UPPUMINE. MIS TEGELIKULT JUHTUS? 2024, November
Anonim
Temperaturiga saadetakse õigeaegselt SMS
Temperaturiga saadetakse õigeaegselt SMS

Idee on saada minu isade majast temperatuurilmsms.

Pole midagi väljamõeldud, vaid osade kiire kokkupanek.

Osad on:

  • Geekcreit® ATmega328P Nano V3 kontrolleri ühilduv Arduino
  • DIY NANO IO Shield V1. O laiendusplaat Arduino jaoks
  • DS1307 põhinev RTC IIC / I2C reaalajas kella moodul ja DS18b20
  • SIM800L neljaribaline GSM / GPRS
  • LM2596 Mini DC-DC muundur Reguleeritav astmelise toiteallika moodul
  • Termistori NTC MF52AT temperatuur

Kõigepealt palju lugemisest ja otsimisest.

Kuna ma lõpuks kasutan Geekcreit® Nano, katsetan kõiki osi Arduino Unoga.

Samm: pange SIM800l tööle

Pange SIM800l tööle
Pange SIM800l tööle

Üks peamine asi on Sim800L võimsus.

Kasutan LM2596 Mini DC-DC muundurit, reguleeritud 3,7 voldile ja eraldi toiteallikat.

Ühenduse testimiseks AT+ käskudega on see külg väga kasutatav:

SIM -800 (SIM800L) kiire käivitamine Arduino abil

Kui keelate PIN -koodi, kasutades gsm -modemit käskluste ajal, sain sim -pin -koodi kasutada.

Järgmine kaalutlus, milline raamatukogu. Internet pakub erinevaid lahendusi.

Minu lahendus on Mattias Aabmetsa raamatukogu: AspenSIM800

Tema näide: Send_SMS.ino kasutas I põhiprogrammina ja ühendas ükshaaval kõik ülejäänud osad kokku.

Tx pin ja Rx pin on kood:

RX_PIN 10 Arduino'st. Peab olema ühendatud SIM800 mooduli TX -tihvtiga. Arduino TX_PIN 11. Peab olema ühendatud SIM800 mooduli RX kontaktiga

Alati on hea mõte lugeda raamatukogudes *.ccp ja *.h faile.

Need sisaldavad palju huvitavaid näpunäiteid ja teadmisi.

2. samm: pange RTC DS1307 koos DS18B20 anduriga tööle

Laske RTC DS1307 koos DS18B20 anduriga tööle
Laske RTC DS1307 koos DS18B20 anduriga tööle

Ma kasutasin seda külge: simtronyx - ajaveeb DS1307 ja DS18B20 jaoks.

Kellal on I2C siiniühendus ja see on mõeldud Arduino Uno jaoks: A4 (SDA) - A5 (SCL)

DS18B20 I ühendati D3 -ga.

Lugesin, et SMS -iga ei saa Floats ainult Stringi saata, seega pidin ujukid stringiks tõlkima.

Mida ma teen selle leitud koodilõigu abil:

n

MinuString1 = String (praeguneTemp, 2); // Teisenda ujuk stringiks

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

// stringide teisendamine chariks algab siit

// Pikkus (koos ühe lisamärgiga null -terminaatori jaoks)

int str_len1 = MinuString1.pikkus () + 1; // Märgimassiivi (puhver) ettevalmistamine

char char_array1 [str_len1]; // Kopeerige see üle

MyString1.toCharArray (char_array1, str_len1); // teisenda string tähemärgiks

Ütlen ausalt, et ma ei tea, kuidas see töötab, aga see töötab.

Samm: laske termistor NTC MF52AT tööle

Pange termistor NTC MF52AT tööle
Pange termistor NTC MF52AT tööle

Töötasin termistoriga, nii et see oli lihtne osa.

Kuid ka siit leiate teistsuguse lahenduse.

Lõplikust koodist leiate minu oma.

Temalt leiate ka tõlke Floats to String.

Termistori külge joodeti mõni traat ja 10 k oomi takisti.

Samm: pange kõik koos tööle

Nii et ma kirjutasin kõik programmi osad kokku.

Nüüd pidin välja mõtlema, kuidas saata üks SMS iga päev samal ajal.

Lugesin erinevatest ideedest, mõnedel oli TimerAlarm ja muu lähenemisviis.

Kuid leidsin arduino foorumist kuskil lihtsa lahenduse:

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

{

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

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

Aga miks nüüd.second = 59, sest see saadab terve minuti SMS -i. See sobib mulle, aga proovige ise.

Pärast mõningast katset laadisin programmi üles Geekcreit® Nano seadmesse.

See pole võib -olla parim programmikirjutamine:) aga soovitud.

Kuna Geekcreit® ATmega328P Nano -l on mõningaid Arduino IDE probleeme, laadin terminali (Linux Mint) kaudu üles USBtinyispi selle abil: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Samm 5: see töötas

Jah, see õnnestus ja see on majja paigutatud.

Iga päev kell 6:00 saan SMS -i temperatuuriga.

Soovitan: