Innholdsfortegnelse:

Sender en SMS med temperatur i tide: 5 trinn (med bilder)
Sender en SMS med temperatur i tide: 5 trinn (med bilder)

Video: Sender en SMS med temperatur i tide: 5 trinn (med bilder)

Video: Sender en SMS med temperatur i tide: 5 trinn (med bilder)
Video: 🎶 ДИМАШ SOS. История выступления и анализ успеха | Dimash SOS 2024, Juli
Anonim
Sender SMS med temperatur til tiden
Sender SMS med temperatur til tiden

Tanken er å få en temperatur -sms fra fedrehuset mitt.

Ikke noe fancy bare å sette sammen deler raskt.

Delene er:

  • Geekcreit® ATmega328P Nano V3 Controller Board Compatible Arduino
  • DIY NANO IO Shield V1. O utvidelseskort for Arduino
  • DS1307 Basert RTC IIC / I2C sanntidsklokke modul og DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC-omformer Justerbar trinnvis strømforsyningsmodul
  • Termistor NTC MF52AT temperatur

Først og fremst mye av å lese og søke.

Før jeg endelig bruker Geekcreit® Nano, tester jeg alle delene med en Arduino Uno.

Trinn 1: Få SIM800l til å fungere

Få SIM800l til å fungere
Få SIM800l til å fungere

Et hovedpoeng er kraften til Sim800L.

Jeg bruker en LM2596 Mini DC-DC-omformer, justert til 3,7 volt og en separat strømforsyning.

For å teste tilkobling med AT+ -kommandoer er denne siden veldig brukbar:

Hurtigstart SIM800 (SIM800L) med Arduino

Med Deaktiver pin -kode ved bruk av gsm -modem på kommandoer fikk jeg kjøre med sim -pin -koden.

Den neste vurderingen hvilket bibliotek. Internett tilbyr forskjellige løsninger.

Min løsning er biblioteket fra Mattias Aabmets: AspenSIM800

Eksemplet hans: Send_SMS.ino brukte I som grunnprogram og en etter en kobler alle de andre delene sammen.

Tx -pinnen og Rx -pinnen er kode til:

RX_PIN 10 av Arduino. Må være koblet til TX -pinnen til SIM800 -modulen. TX_PIN 11 av Arduino. Må være koblet til RX -pinnen på SIM800 -modulen

Det er alltid en god idé å lese *.ccp og *.h filene i bibliotekene.

De inneholder mange interessante hint og kunnskap.

Trinn 2: Få RTC DS1307 med DS18B20 -sensor til å fungere

Få RTC DS1307 med DS18B20 -sensor til å fungere
Få RTC DS1307 med DS18B20 -sensor til å fungere

Jeg brukte denne siden: simtronyx - bloggen for DS1307 og DS18B20.

Klokken har en I2C -bussforbindelse, og den er for Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 koblet jeg til D3.

Jeg leste at i en SMS kan du ikke sende Floats only String, så jeg måtte oversette floats til string.

Det jeg gjør med denne kodebiten fant jeg:

n

MyString1 = String (currentTemp, 2); // Konverter float til streng

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

// konverter streng til char starter her

// Lengde (med ett ekstra tegn for null -terminatoren)

int str_len1 = MyString1.length () + 1; // Forbered tegnmatrisen (bufferen)

char char_array1 [str_len1]; // Kopier den over

MyString1.toCharArray (char_array1, str_len1); // konvertere streng til char ender henne

Jeg skal være ærlig, jeg vet ikke hvordan det fungerer, men det fungerer.

Trinn 3: Få Thermistor NTC MF52AT til å fungere

Få Thermistor NTC MF52AT til å fungere
Få Thermistor NTC MF52AT til å fungere

Jeg jobbet før med en termistor, så det var den enkle delen.

Men også her kan du finne en annen løsning.

I den endelige koden kan du finne min.

Her kan du også finne oversettelsen Floats to String.

Loddet litt ledning og 10 k ohm motstanden til termistoren.

Trinn 4: Få alle til å jobbe sammen

Så jeg skrev alle programdelene sammen.

Nå måtte jeg finne ut hvordan sende en SMS hver dag, samtidig.

Jeg leste om forskjellige ideer, noen med TimerAlarm og annen tilnærming.

Men jeg fant en enkel løsning et sted i arduino -forumet:

hvis (nå. time () == 8 && nå. minutt () == 00 && nå. sekund () == 59)

{

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

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

Men hvorfor nå. Sekund = 59 fordi den sender en hel minutt SMS. Det gjør det for meg, men prøv selv.

Etter noen tester lastet jeg opp programmet til Geekcreit® Nano.

Dette er kanskje ikke den beste programskriving:) men det gjør det ønsket.

Fordi Geekcreit® ATmega328P Nano har noen Arduino IDE -problemer, laster jeg opp via terminal (Linux Mint) kaster USBtinyisp med dette: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Trinn 5: Det fungerte

Ja det ordnet seg og det er plassert i huset.

Hver dag kl. 06.00 får jeg en SMS med temperaturen.

Anbefalt: