Innehållsförteckning:

Skickar ett SMS med temperatur i tid: 5 steg (med bilder)
Skickar ett SMS med temperatur i tid: 5 steg (med bilder)

Video: Skickar ett SMS med temperatur i tid: 5 steg (med bilder)

Video: Skickar ett SMS med temperatur i tid: 5 steg (med bilder)
Video: 10 saker du inte ska göra på en dejt 2024, November
Anonim
Skickar ett SMS med temperatur i tid
Skickar ett SMS med temperatur i tid

Tanken är att få ett temperatur -sms från mina fars hus.

Inget konstigt bara att snabbt sätta ihop delar.

Delarna är:

  • Geekcreit® ATmega328P Nano V3 Controller Board Compatible Arduino
  • DIY NANO IO Shield V1. O Expansionskort för Arduino
  • DS1307 Baserad RTC IIC / I2C Real Time Clock Module och DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC-omvandlare Justerbar steglös strömförsörjningsmodul
  • Termistor NTC MF52AT temperatur

Först alls mycket av att läsa och söka.

Innan jag äntligen använder Geekcreit® Nano testar jag alla delar med en Arduino Uno.

Steg 1: Få SIM800l att fungera

Få SIM800l till jobbet
Få SIM800l till jobbet

En huvudpunkt är kraften för Sim800L.

Jag använder en LM2596 Mini DC-DC-omvandlare, justerad till 3,7 volt och en separat strömförsörjning.

För att testa anslutningen med AT+ -kommandon är denna sida mycket användbar:

Snabbstart SIM800 (SIM800L) med Arduino

Med Inaktivera pinkod med gsm -modem vid kommandon fick jag sim -kod.

Nästa övervägande vilket bibliotek. Internet erbjuder olika lösningar.

Min lösning är biblioteket från Mattias Aabmets: AspenSIM800

Hans exampel: Send_SMS.ino använde I som grundprogram och en efter en kopplar alla andra delar ihop.

Tx -stiftet och Rx -stiftet är kod till:

RX_PIN 10 från Arduino. Måste vara ansluten till TX -stiftet på SIM800 -modulen. TX_PIN 11 av Arduino. Måste vara ansluten till RX -stiftet på SIM800 -modulen

Det är alltid bra att läsa filerna *.ccp och *.h i biblioteken.

De innehåller många intressanta tips och kunskaper.

Steg 2: Få RTC DS1307 med DS18B20 -sensor att fungera

Få RTC DS1307 med DS18B20 -sensor till jobbet
Få RTC DS1307 med DS18B20 -sensor till jobbet

Jag använde denna sida: simtronyx - bloggen för DS1307 och DS18B20.

Klockan har en I2C -bussanslutning och den är för Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 I ansluten till D3.

Jag läste att i ett SMS kan du inte skicka Floats only String, så jag var tvungen att översätta floats till string.

Det jag gör med det här kodavsnittet hittade jag:

n

MyString1 = String (currentTemp, 2); // Konvertera float till String

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

// konvertera sträng till char börjar här

// Längd (med ett extra tecken för nollterminatorn)

int str_len1 = MyString1.length () + 1; // Förbered teckenmatrisen (bufferten)

char char_array1 [str_len1]; // Kopiera den

MyString1.toCharArray (char_array1, str_len1); // konvertera sträng till char slutar henne

Jag ska vara ärlig, jag vet inte hur det fungerar, men det fungerar.

Steg 3: Få Thermistor NTC MF52AT att fungera

Få Thermistor NTC MF52AT att fungera
Få Thermistor NTC MF52AT att fungera

Jag arbetade med en termistor så det var den enkla delen.

Men också här kan du hitta olika lösningar.

I den sista koden kan du hitta min.

Hennes kan du också hitta översättningen Floats to String.

Lödde lite tråd och 10 k ohm motståndet till termistorn.

Steg 4: Få alla att arbeta tillsammans

Så jag skrev alla programdelar tillsammans.

Nu var jag tvungen att ta reda på hur man skickar ett SMS varje dag, samtidigt.

Jag läste om olika idéer, några med en TimerAlarm och ett annat tillvägagångssätt.

Men jag hittade en enkel lösning någonstans i arduino -forumet:

om (nu. timme () == 8 && nu. minut () == 00 && nu. sekund () == 59)

{

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

fördröjning (500); SIM.smsSend (addr, char_array1); // DS18B20}

Men varför nu. Sekund = 59 eftersom det skickar ett helt minut -SMS. Det gör för mig men prova själv.

Efter lite test laddade jag upp programmet till Geekcreit® Nano.

Detta är kanske inte det bästa programskrivandet:) men det gör önskat.

Eftersom Geekcreit® ATmega328P Nano har några Arduino IDE -problem, laddar jag upp via terminal (Linux Mint) kasta USBtinyisp med detta: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Steg 5: Det fungerade

Ja det löste sig och det är placerat i huset.

Varje dag klockan 6:00 får jag ett SMS med temperaturen.

Rekommenderad: