Satura rādītājs:

Nosūta īsziņu ar temperatūru laikā: 5 soļi (ar attēliem)
Nosūta īsziņu ar temperatūru laikā: 5 soļi (ar attēliem)

Video: Nosūta īsziņu ar temperatūru laikā: 5 soļi (ar attēliem)

Video: Nosūta īsziņu ar temperatūru laikā: 5 soļi (ar attēliem)
Video: Kā lietot Bixby 2024, Novembris
Anonim
Savlaicīgi nosūta īsziņu ar Temperatur
Savlaicīgi nosūta īsziņu ar Temperatur

Ideja ir iegūt temperatūru sms no manu tēvu mājas.

Nav nekas smalks, tikai ātra detaļu salikšana.

Daļas ir:

  • Ar Geekcreit® ATmega328P Nano V3 kontrollera paneli saderīgs ar Arduino
  • DIY NANO IO Shield V1. O paplašināšanas dēlis Arduino
  • DS1307 balstīts RTC IIC / I2C reālā laika pulksteņa modulis un DS18b20
  • SIM800L četru joslu GSM / GPRS
  • LM2596 mini līdzstrāvas pārveidotājs ar regulējamu atkāpšanās barošanas bloku
  • Termistora NTC MF52AT temperatūra

Vispirms daudz no lasīšanas un meklēšanas.

Lai beidzot izmantotu Geekcreit® Nano, es testēju visas detaļas ar Arduino Uno.

1. darbība: ļaujiet SIM800l darbam

Saņemiet SIM800l uz darbu
Saņemiet SIM800l uz darbu

Viens no galvenajiem punktiem ir Sim800L jauda.

Es izmantoju LM2596 Mini DC-DC pārveidotāju, kas pielāgots 3,7 voltiem, un atsevišķu barošanas avotu.

Lai pārbaudītu savienojumu ar AT+ komandām, šī puse ir ļoti izmantojama:

Ātrā iedarbināšana SIM800 (SIM800L) ar Arduino

Izmantojot komandu Atspējot PIN kodu, izmantojot gsm modemu, es saņēmu sim pin kodu.

Nākamais apsvērums, kura bibliotēka. Internets piedāvā dažādus risinājumus.

Mans risinājums ir Mattias Aabmets bibliotēka: AspenSIM800

Viņa piemērs: Send_SMS.ino izmantoja I kā pamata programmu un pa vienam savieno visas pārējās daļas kopā.

Tx tapa un Rx tapa ir kods:

RX_PIN 10 no Arduino. Jābūt savienotam ar SIM800 moduļa TX tapu. TX_PIN 11 no Arduino. Jāpievieno SIM800 moduļa RX tapai

Bibliotēkās vienmēr ir ieteicams lasīt *.ccp un *.h failus.

Tie satur daudz interesantu padomu un zināšanu.

2. darbība. Lai darbotos RTC DS1307 ar sensoru DS18B20

Lai RTC DS1307 ar DS18B20 sensoru darbotos
Lai RTC DS1307 ar DS18B20 sensoru darbotos

Es izmantoju šo sānu pusi: simtronyx - DS1307 un DS18B20 emuārs.

Pulkstenim ir I2C kopnes savienojums, un tas ir paredzēts Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 es pievienojos D3.

Es izlasīju, ka īsziņā jūs nevarat nosūtīt Floats tikai String, tāpēc man bija jātulko pludiņi virknē.

Kā rīkoties ar šo atrasto koda fragmentu:

n

MyString1 = String (currentTemp, 2); // Pārvērst pludiņu par virkni

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

// konvertēt virkni uz char sākas šeit

// Garums (ar vienu papildu rakstzīmi nulles terminatoram)

int str_len1 = MyString1.length () + 1; // Sagatavojiet rakstzīmju masīvu (buferi)

char char_array1 [str_len1]; // Kopējiet to vēlreiz

MyString1.toCharArray (char_array1, str_len1); // pārvērst virkni uz char beidzas ar viņu

Teikšu godīgi, man nav skaidrs, kā tas darbojas, bet tas darbojas.

3. darbība: sāciet strādāt ar termistoru NTC MF52AT

Lai termistors NTC MF52AT sāk darboties
Lai termistors NTC MF52AT sāk darboties

Es strādāju ar termistoru, tāpēc tā bija vieglākā daļa.

Bet arī šeit jūs varat atrast atšķirīgu risinājumu.

Noslēguma kodā jūs varat atrast manu.

Viņas var atrast arī tulkojumu Floats to String.

Pie termistora pielodēts kāds vads un 10 k omu rezistors.

4. darbība. Lieciet visiem strādāt kopā

Tāpēc es uzrakstīju visas programmas daļas kopā.

Tagad man bija jāizdomā, kā nosūtīt vienu SMS katru dienu vienā un tajā pašā laikā.

Es lasīju par dažādām idejām, dažas ar TimerAlarm un citu pieeju.

Bet kādā vietā arduino forumā es atradu vienkāršu risinājumu:

ja (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

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

kavēšanās (500); SIM.smsSend (addr, char_array1); // DS18B20}

Bet kāpēc tagad.second = 59, jo tas nosūta veselu minūšu SMS. Tas der man, bet pamēģini pats.

Pēc dažām pārbaudēm es augšupielādēju programmu Geekcreit® Nano.

Šī nav labākā programmu rakstīšana:), bet tā dara vēlamo.

Tā kā Geekcreit® ATmega328P Nano ir dažas Arduino IDE problēmas, es augšupielādēju, izmantojot termināli (Linux Mint), izmetu USBtinyisp ar šo: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

5. solis: tas strādāja

Jā, tas izdevās, un tas ir ievietots mājā.

Katru dienu 6:00 es saņemu SMS ar temperatūru.

Ieteicams: