INHOUDSOPGAWE:

Stuur 'n sms met tyd: 5 stappe (met foto's)
Stuur 'n sms met tyd: 5 stappe (met foto's)

Video: Stuur 'n sms met tyd: 5 stappe (met foto's)

Video: Stuur 'n sms met tyd: 5 stappe (met foto's)
Video: PEDOFIEL SPREEKT AF MET 13-JARIG MEISJE | BONDGENOTEN 2024, Desember
Anonim
Stuur 'n sms met temperatuur betyds
Stuur 'n sms met temperatuur betyds

Die idee is om 'n temperatuur sms van my vaders huis te kry.

Daar is niks anders as om die onderdele vinnig saam te voeg nie.

Die onderdele is:

  • Geekcreit® ATmega328P Nano V3 Controller Board Compatible Arduino
  • DIY NANO IO Shield V1. O Uitbreidingskaart vir Arduino
  • DS1307 Gebaseerde RTC IIC / I2C Real Time Clock Module en DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC-omskakelaar verstelbare kragonderbrekingsmodule
  • Thermistor NTC MF52AT temperatuur

Eerstens baie om af te lees en te soek.

Voordat ek uiteindelik die Geekcreit® Nano gebruik, toets ek alle dele met 'n Arduino Uno.

Stap 1: Kry die SIM800l aan die werk

Kry die SIM800l aan die werk
Kry die SIM800l aan die werk

Een hoofpunt is die krag van die Sim800L.

Ek gebruik 'n LM2596 Mini DC-DC-omskakelaar, aangepas op 3,7 volt en 'n aparte kragtoevoer.

Om die verbinding met AT+ -opdragte te toets, is hierdie kant baie bruikbaar:

Quickstart SIM800 (SIM800L) met Arduino

Met die deaktivering van pin -kode met behulp van gsm -modem by opdragte, het ek die sim -pin -kode gekry.

Die volgende oorweging watter biblioteek. Die internet bied verskillende oplossings.

My oplossing is die biblioteek van Mattias Aabmets: AspenSIM800

Sy voorbeeld: Send_SMS.ino gebruik I as basiese program en verbind een vir een al die ander dele met mekaar.

Die Tx -pen en Rx -pen is kode na:

RX_PIN 10 van Arduino. Moet gekoppel wees aan die TX -pen van die SIM800 -module. TX_PIN 11 van Arduino. Moet gekoppel wees aan die RX -pen van die SIM800 -module

Dit is altyd 'n goeie idee om die *.ccp- en *.h -lêers in die biblioteke te lees.

Dit bevat baie interessante wenke en kennis.

Stap 2: Laat die RTC DS1307 met DS18B20 -sensor werk

Laat die RTC DS1307 met DS18B20 -sensor werk
Laat die RTC DS1307 met DS18B20 -sensor werk

Ek het hierdie sykant gebruik: simtronyx - die blog vir die DS1307 en DS18B20.

Die klok het 'n I2C -busverbinding en dit is vir die Arduino Uno: A4 (SDA) - A5 (SCL)

Die DS18B20 het ek aan D3 gekoppel.

Ek lees dat u nie net Floats String in 'n SMS kan stuur nie, dus moes ek floats na string vertaal.

Dit het ek met hierdie kodefragment gedoen:

n

MyString1 = String (currentTemp, 2); // Skakel float om na string

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

// omskakel string na char begin hier

// Lengte (met een ekstra karakter vir die nul terminator)

int str_len1 = MyString1.length () + 1; // Berei die karakterreeks (die buffer) voor

char char_array1 [str_len1]; // Kopieer dit oor

MyString1.toCharArray (char_array1, str_len1); // verander string in char eindig haar

Ek sal eerlik wees, ek weet nie hoe dit werk nie, maar dit werk.

Stap 3: Kry die Thermistor NTC MF52AT aan die werk

Laat die Thermistor NTC MF52AT werk
Laat die Thermistor NTC MF52AT werk

Ek het voor met 'n termistor gewerk, so dit was die maklike deel.

Maar ook hier kan u verskillende oplossings vind.

In die finale kode kan u myne vind.

U kan ook die vertaling Floats to String vind.

'N Paar draad en die 10 k ohm weerstand aan die termistor gesoldeer.

Stap 4: Laat almal saamwerk

Ek het dus alle programdele saam geskryf.

Nou moes ek agterkom hoe om elke dag op dieselfde tyd een SMS te stuur.

Ek lees oor verskillende idees, sommige met 'n TimerAlarm en ander benadering.

Maar ek het 'n eenvoudige oplossing op die arduino -forum gevind:

as (nou.uur () == 8 && nou.minute () == 00 && nou.sekonde () == 59)

{

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

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

Maar hoekom nou.sekonde = 59 omdat dit 'n hele minuut SMS stuur. Dit doen vir my, maar probeer self.

Na 'n toets het ek die program na die Geekcreit® Nano gelaai.

Dit is miskien nie die beste programskrywing nie:), maar dit doen die gewenste.

Omdat die Geekcreit® ATmega328P Nano 'n paar Arduino IDE -probleme het, laai ek per terminal op (Linux Mint) die USBtinyisp hiermee: avrdude -c usbtiny -p atmega328p -U flits: w: SomeHexFile.hex

Stap 5: Dit het gewerk

Ja, dit het uitgewerk en dit word in die huis geplaas.

Elke dag om 06:00 kry ek 'n SMS met die temperatuur.

Aanbeveel: