Përmbajtje:

Dërgon një SMS me Temperatur në kohë: 5 hapa (me fotografi)
Dërgon një SMS me Temperatur në kohë: 5 hapa (me fotografi)

Video: Dërgon një SMS me Temperatur në kohë: 5 hapa (me fotografi)

Video: Dërgon një SMS me Temperatur në kohë: 5 hapa (me fotografi)
Video: Nusja harron dhendrin para Butrintit, çfarë po ndodh? 😮#shorts #viral #butrintimeri #butrint #trend 2024, Nëntor
Anonim
Dërgon një SMS me Temperatur në kohë
Dërgon një SMS me Temperatur në kohë

Ideja është të marr një sms të temperaturës nga shtëpia e baballarëve të mi.

Asgjë e lezetshme, thjesht bashkimi i shpejtë i pjesëve.

Pjesët janë:

  • Bordi i kontrolluesit Geekcreit® ATmega328P Nano V3 Arduino i pajtueshëm
  • DIY NANO IO Shield V1. O Bordi i Zgjerimit Për Arduino
  • Moduli i orës në kohë reale i bazuar në RTC IIC / I2C i bazuar në DS1307 dhe DS18b20
  • SIM800L GSM / GPRS me katër banda
  • LM2596 Mini DC-DC Converter i rregullueshëm Hapi poshtë Moduli i Furnizimit me Energji
  • Temperatura e termistorit NTC MF52AT

Së pari, shumë nga leximi dhe kërkimi.

Përpara se më në fund përdor Geekcreit® Nano, i testoj të gjitha pjesët me një Arduino Uno.

Hapi 1: Merrni SIM800l në punë

Merrni SIM800l për të punuar
Merrni SIM800l për të punuar

Një pikë kryesore është fuqia për Sim800L.

Unë përdor një konvertues LM2596 Mini DC-DC, të rregulluar në 3.7 volt dhe një furnizim me energji të veçantë.

Për të testuar lidhjen me komandat AT+ kjo anë është shumë e përdorshme:

Fillo shpejt SIM800 (SIM800L) me Arduino

Me Çaktivizo kodin pin duke përdorur modemin gsm në komandat kam hipur në kodin pin sim.

Konsiderata tjetër cila bibliotekë. Interneti ofron zgjidhje të ndryshme.

Zgjidhja ime është biblioteka nga Mattias Aabmets: AspenSIM800

Provimi i tij: Send_SMS.ino përdori I si program bazë dhe një nga një lidh të gjitha pjesët e tjera së bashku.

Pin Tx dhe pin Rx janë kod për:

RX_PIN 10 e Arduino. Duhet të jetë i lidhur me pinin TX të modulit SIM800. TX_PIN 11 të Arduino. Duhet të jetë i lidhur me pinin RX të modulit SIM800

Alwaysshtë gjithmonë ide e mirë të lexoni skedarët *.ccp dhe *.h në biblioteka.

Ato përmbajnë shumë sugjerime dhe njohuri interesante.

Hapi 2: Merrni në punë RTC DS1307 Me Sensorin DS18B20

Merrni RTC DS1307 Me Sensorin DS18B20 në punë
Merrni RTC DS1307 Me Sensorin DS18B20 në punë

Kam përdorur këtë anë: simtronyx - blog për DS1307 dhe DS18B20.

Ora ka një lidhje autobusi I2C dhe kjo është për Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 I lidhur me D3.

Kam lexuar se në një SMS nuk mund të dërgoni Floats only String, kështu që më është dashur të përkthej floats në string.

Që bëj me këtë fragment kodi gjeta:

n

MyString1 = String (aktualeTemp, 2); // Shndërroni float në String

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

// konvertimi i vargut në char fillon këtu

// Gjatësia (me një karakter shtesë për terminatorin null)

int str_len1 = MyString1.length () + 1; // Përgatitni grupin e karaktereve (tampon)

char char_array1 [str_len1]; // Kopjoni atë

MyString1.toCharArray (char_array1, str_len1); // konvertimi i vargut në char përfundon atë

Unë do të jem i sinqertë nuk e di se si funksionon, por funksionon.

Hapi 3: Merrni Thermistor NTC MF52AT në punë

Merrni Thermistor NTC MF52AT për të punuar
Merrni Thermistor NTC MF52AT për të punuar

Kam punuar më parë me një termistor kështu që ishte pjesa e lehtë.

Por gjithashtu këtu mund të gjeni zgjidhje të ndryshme.

Në kodin përfundimtar mund të gjeni timen.

Ajo gjithashtu mund të gjeni përkthimin Floats to String.

Salduan një tel dhe një rezistencë 10 ohm në termistor.

Hapi 4: Punoni të gjithë së bashku

Kështu që unë shkrova të gjitha pjesët e programit së bashku.

Tani më duhej të kuptoja se si të dërgoja një SMS çdo ditë, në të njëjtën kohë.

Kam lexuar për ide të ndryshme, disa me një TimerAlarm dhe qasje të tjera.

Por gjeta një zgjidhje të thjeshtë diku në forumin arduino:

nëse (tani.or () == 8 && tani.minute () == 00 && tani.sekondë () == 59)

{

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

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

Por pse tani.sekonda = 59 sepse dërgon një SMS të tërë minutë. Për mua, por provojeni vetë.

Pas disa testeve unë e ngarkova programin në Geekcreit® Nano.

Ky ndoshta nuk është shkrimi më i mirë i programit:) por bën atë që dëshironi.

Për shkak se Geekcreit® ATmega328P Nano ka disa probleme Arduino IDE, unë ngarkoj me terminal (Linux Mint) hedh USBtinyisp me këtë: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Hapi 5: Punoi

Po ka funksionuar dhe është vendosur në shtëpi.

Çdo ditë në orën 6:00 të mëngjesit marr një SMS me temperaturën.

Recommended: