Indholdsfortegnelse:

Sender SMS med temperatur til tiden: 5 trin (med billeder)
Sender SMS med temperatur til tiden: 5 trin (med billeder)

Video: Sender SMS med temperatur til tiden: 5 trin (med billeder)

Video: Sender SMS med temperatur til tiden: 5 trin (med billeder)
Video: Denne Video Kan Gætte Hvor Du Er! 2024, November
Anonim
Sender SMS med temperatur til tiden
Sender SMS med temperatur til tiden

Ideen er at få en temperatur sms fra mit faders hus.

Intet fancy bare hurtig at sætte dele sammen.

Dele er:

  • Geekcreit® ATmega328P Nano V3 Controller Board kompatibel Arduino
  • DIY NANO IO Shield V1. O udvidelseskort til Arduino
  • DS1307 Baseret RTC IIC / I2C Real Time Clock Module og DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Converter Justerbar trinvis strømforsyningsmodul
  • Termistor NTC MF52AT temperatur

Først og fremmest meget fra at læse og søge.

Inden jeg endelig bruger Geekcreit® Nano, tester jeg alle dele med en Arduino Uno.

Trin 1: Få SIM800l til at fungere

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

Et hovedpunkt er strømmen til Sim800L.

Jeg bruger en LM2596 Mini DC-DC converter, justeret til 3,7 volt og en separat strømforsyning.

For at teste forbindelsen med AT+ -kommandoer er denne side meget anvendelig:

Hurtigstart SIM800 (SIM800L) med Arduino

Med Deaktiver pinkode ved hjælp af gsm -modem ved kommandoer fik jeg kørt sim -pin -koden.

Den næste overvejelse, hvilket bibliotek. Internettet tilbyder forskellige løsninger.

Min løsning er biblioteket fra Mattias Aabmets: AspenSIM800

Hans eksampel: Send_SMS.ino brugte I som grundlæggende program og en efter en forbinder alle de andre dele sammen.

Tx pin og Rx pin er kode til:

RX_PIN 10 fra Arduino. Skal tilsluttes TX -pin på SIM800 -modulet. TX_PIN 11 i Arduino. Skal tilsluttes RX -pin på SIM800 -modulet

Det er altid en god idé at læse *.ccp og *.h filerne på bibliotekerne.

De indeholder mange interessante hints og viden.

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

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

Jeg brugte denne side: simtronyx - bloggen til DS1307 og DS18B20.

Uret har en I2C -busforbindelse, og det er til Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 jeg tilsluttede D3.

Jeg læste, at du i en SMS ikke kan sende Floats only String, så jeg var nødt til at oversætte floats til string.

Det gjorde jeg med dette kodestykke, jeg fandt:

n

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

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

// konverter streng til char starter her

// Længde (med et ekstra tegn til nul -terminatoren)

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

char char_array1 [str_len1]; // Kopier det over

MyString1.toCharArray (char_array1, str_len1); // konvertere streng til char slutter hende

Jeg vil være ærlig, jeg ved ikke, hvordan det fungerer, men det virker.

Trin 3: Få Thermistor NTC MF52AT til at fungere

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

Jeg arbejdede før med en termistor, så det var den lette del.

Men også her kan du finde en anden løsning.

I den sidste kode kan du finde min.

Her kan du også finde oversættelsen Floats to String.

Loddet noget ledning og 10 k ohm modstanden til termistoren.

Trin 4: Få alle til at arbejde sammen

Så jeg skrev alle programdele sammen.

Nu skulle jeg finde ud af at sende en sms hver dag på samme tid.

Jeg læste om forskellige ideer, nogle med en TimerAlarm og anden tilgang.

Men jeg fandt en simpel løsning et sted i arduino forum:

hvis (nu. time () == 8 && nu. minut () == 00 && nu. sekund () == 59)

{

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

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

Men hvorfor nu. Sekund = 59, fordi den sender en hel minut SMS. Det gør for mig, men prøv selv.

Efter nogle test uploadede jeg programmet til Geekcreit® Nano.

Dette er måske ikke den bedste programskrivning:) men det gør det ønskede.

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

Trin 5: Det virkede

Ja det lykkedes, og det er placeret i huset.

Hver dag kl. 6:00 får jeg en sms med temperaturen.

Anbefalede: