Sisällysluettelo:

Lähettää tekstiviestin lämpötilan kanssa ajallaan: 5 vaihetta (kuvilla)
Lähettää tekstiviestin lämpötilan kanssa ajallaan: 5 vaihetta (kuvilla)

Video: Lähettää tekstiviestin lämpötilan kanssa ajallaan: 5 vaihetta (kuvilla)

Video: Lähettää tekstiviestin lämpötilan kanssa ajallaan: 5 vaihetta (kuvilla)
Video: Viisi Android vinkkiä - Näin käytät puhelintasi yksinkertaisemmin 2024, Heinäkuu
Anonim
Lähettää tekstiviestin Temperaturilla ajoissa
Lähettää tekstiviestin Temperaturilla ajoissa

Ideana on saada lämpötila -sms isäni talosta.

Ei mitään hienoa, vain osien nopea yhdistäminen.

Osat ovat:

  • Geekcreit® ATmega328P Nano V3 -ohjainkorttiyhteensopiva Arduino
  • DIY NANO IO Shield V1. O -laajennuskortti Arduinolle
  • DS1307 -pohjainen RTC IIC / I2C Real Time Clock Module ja DS18b20
  • SIM800L Nelikaistainen GSM / GPRS
  • LM2596 Mini DC-DC-muunnin Säädettävä tehonlähdemoduuli
  • Termistori NTC MF52AT lämpötila

Aluksi paljon lukemisesta ja etsimisestä.

Ennen kuin käytän vihdoin Geekcreit® Nanoa, testaan kaikki osat Arduino Unolla.

Vaihe 1: Hanki SIM800l toimimaan

Hanki SIM800l toimimaan
Hanki SIM800l toimimaan

Yksi tärkeimmistä asioista on Sim800L: n teho.

Käytän LM2596 Mini DC-DC -muunninta, joka on säädetty 3,7 volttiin ja erilliseen virtalähteeseen.

Yhteyden testaamiseksi AT+ -komennoilla tämä puoli on erittäin käyttökelpoinen:

Pika -aloitus SIM800 (SIM800L) Arduinolla

Kun poistat PIN -koodin käytöstä gsm -modeemilla komennoilla, sain sim -PIN -koodin.

Seuraava pohdinta mikä kirjasto. Internet tarjoaa erilaisia ratkaisuja.

Ratkaisuni on Mattias Aabmetsin kirjasto: AspenSIM800

Hänen esimerkkinsä: Send_SMS.ino käytti I: tä perusohjelmana ja yhdisti kaikki muut osat yhteen.

Tx -nasta ja Rx -nasta ovat koodi:

RX_PIN 10 Arduinosta. On liitettävä Arduinon SIM800 -moduulin TX -nastaan. TX_PIN 11. On liitettävä SIM800 -moduulin RX -nastaan

Kirjastojen *.ccp- ja *.h -tiedostojen lukeminen on aina hyvä idea.

Ne sisältävät paljon mielenkiintoisia vinkkejä ja tietoa.

Vaihe 2: Ota RTC DS1307 ja DS18B20 -anturi toimimaan

Ota RTC DS1307 ja DS18B20 -anturi toimimaan
Ota RTC DS1307 ja DS18B20 -anturi toimimaan

Käytin tätä sivupuolta: simtronyx - blogi DS1307: lle ja DS18B20: lle.

Kellossa on I2C -väyläyhteys ja se on Arduino Unolle: A4 (SDA) - A5 (SCL)

DS18B20 I kytkettiin D3: een.

Luin, että tekstiviestinä et voi lähettää Floats only Stringia, joten minun piti kääntää kellukkeet merkkijonoksi.

Mitä teen tällä löytämilläni koodinpätkällä:

n

OmaString1 = Jono (currentTemp, 2); // Muunna kelluva merkkijonoksi

Oma merkkijono1 = (Oma merkkijono1 + "C - HuoneTemperatur:)");

// muuntaa merkkijono chariksi alkaa tästä

// Pituus (yhdellä lisämerkillä nollaterminaattorille)

int str_len1 = Oma merkkijono1.pituus () + 1; // Valmista merkkijono (puskuri)

char char_array1 [str_len1]; // Kopioi se

OmaString1.toCharArray (char_array1, str_len1); // muuntaa merkkijonon char -päätteeksi

Rehellisesti sanottuna en tiedä miten se toimii, mutta se toimii.

Vaihe 3: Saa termistori NTC MF52AT toimimaan

Saa termistori NTC MF52AT toimimaan
Saa termistori NTC MF52AT toimimaan

Työskentelin termistorin kanssa, joten se oli helppo osa.

Mutta myös täältä voit löytää erilaisen ratkaisun.

Loppukoodista löydät omani.

Häneltä löydät myös käännöksen Floats to String.

Juotettu johtoa ja 10 k ohmin vastus termistorille.

Vaihe 4: Saa kaikki toimimaan yhdessä

Joten kirjoitin kaikki ohjelman osat yhdessä.

Nyt minun piti keksiä, kuinka lähettää yksi tekstiviesti joka päivä samaan aikaan.

Luin erilaisista ideoista, joillakin oli TimerAlarm ja muu lähestymistapa.

Mutta löysin yksinkertaisen ratkaisun jossain paikassa arduino -foorumilta:

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

{

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

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

Mutta miksi now.second = 59, koska se lähettää kokonaisen minuutin tekstiviestin. Se sopii minulle, mutta kokeile itse.

Jonkin testin jälkeen latasin ohjelman Geekcreit® Nano -laitteeseen.

Tämä ei ehkä ole paras ohjelmointi:) mutta se tekee halutun.

Koska Geekcreit® ATmega328P Nano -laitteessa on joitain Arduino IDE -ongelmia, lähetän päätelaitteella (Linux Mint) ja heitän USBtinyisp: n näin: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Vaihe 5: Se toimi

Kyllä se onnistui ja se on sijoitettu taloon.

Joka päivä kello 6.00 saan tekstiviestin, jossa on lämpötila.

Suositeltava: