Բովանդակություն:

Peratամանակին SMS է ուղարկում ջերմաստիճանի հետ ՝ 5 քայլ (նկարներով)
Peratամանակին SMS է ուղարկում ջերմաստիճանի հետ ՝ 5 քայլ (նկարներով)

Video: Peratամանակին SMS է ուղարկում ջերմաստիճանի հետ ՝ 5 քայլ (նկարներով)

Video: Peratամանակին SMS է ուղարկում ջերմաստիճանի հետ ՝ 5 քայլ (նկարներով)
Video: Угрюм-река (1969) (1 серия) фильм 2024, Նոյեմբեր
Anonim
Peratամանակին SMS է ուղարկում Temperatur- ով
Peratամանակին SMS է ուղարկում Temperatur- ով

Գաղափարը իմ հայրական տնից ջերմաստիճանի sms ստանալն է:

Ոչ մի շքեղ բան չկա, պարզապես դետալների արագ հավաքում:

Մասերն են.

  • Geekcreit® ATmega328P Nano V3 Controller Board Համատեղելի Arduino
  • DIY NANO IO Shield V1. O ընդլայնման տախտակ Arduino- ի համար
  • DS1307 Հիմնված RTC IIC / I2C Իրական ժամանակի ժամացույցի մոդուլ և DS18b20
  • SIM800L Քառագոտի GSM / GPRS
  • LM2596 Mini DC-DC փոխարկիչ, կարգավորելի քայլ առ քայլ սնուցման մոդուլ
  • Թերմիստոր NTC MF52AT ջերմաստիճան

Ամենից առաջ շատ բան կարդալուց և որոնելուց:

Եթե վերջապես օգտագործեմ Geekcreit® Nano- ն, բոլոր մասերը փորձարկում եմ Arduino Uno- ով:

Քայլ 1: Աշխատանքի բերեք SIM800l- ը

Աշխատանքի բերեք SIM800l- ը
Աշխատանքի բերեք SIM800l- ը

Հիմնական կետը Sim800L- ի հզորությունն է:

Ես օգտագործում եմ LM2596 Mini DC-DC փոխարկիչ, ճշգրտված 3.7 վոլտ և առանձին սնուցման աղբյուր:

AT+ հրամանների հետ կապը ստուգելու համար այս կողմը շատ օգտագործելի է.

Quickstart SIM800 (SIM800L) Arduino- ի հետ

Անջատելով փին կոդը ՝ օգտագործելով gsm մոդեմը հրամաններին, ես վարեցի SIM փին կոդը:

Հաջորդ դիտարկումը, թե որ գրադարանից: Ինտերնետը տարբեր լուծումներ է առաջարկում:

Իմ լուծումը Mattias Aabmets- ի գրադարանն է ՝ AspenSIM800

Նրա փորձաքննությունը. Send_SMS.ino- ն օգտագործեց I- ը որպես հիմնական ծրագիր և մեկ առ մեկ միացրեց մյուս բոլոր մասերը միասին:

Tx և Rx քորոցները ծածկագիր են ՝

RX_PIN 10 Arduino- ից: Պետք է միացված լինի SIM800 մոդուլի TX կապին: Arduino- ի TX_PIN 11: Պետք է միացված լինի SIM800 մոդուլի RX կապին:

Միշտ լավ գաղափար է գրադարաններում կարդալ *.ccp և *.h ֆայլերը:

Դրանք պարունակում են բազմաթիվ հետաքրքիր հուշումներ և գիտելիքներ:

Քայլ 2. Աշխատեք RTC DS1307 DS18B20 տվիչով աշխատելու համար

Աշխատեք RTC DS1307 DS18B20 տվիչով աշխատելու համար
Աշխատեք RTC DS1307 DS18B20 տվիչով աշխատելու համար

Ես օգտագործել եմ այս կողային կողմը ՝ simtronyx - DS1307 և DS18B20 բլոգերը:

Theամացույցն ունի I2C ավտոբուսային կապ և դա Arduino Uno- ի համար է. A4 (SDA) - A5 (SCL)

DS18B20 I- ը միացված է D3- ին:

Կարդացի, որ SMS- ով չի կարելի ուղարկել Floats only String, ուստի ստիպված էի floats- ը թարգմանել լարային:

Այս կոդի հատվածի հետ ես գտա.

n

MyString1 = Լար (ընթացիկ Temp, 2); // Փոխարկել float- ը String- ի

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

// տողը char- ի վերածելը սկսվում է այստեղ

// Երկարություն (null terminator- ի համար մեկ լրացուցիչ նշանով)

int str_len1 = MyString1.length () + 1; // Պատրաստել նիշերի զանգվածը (բուֆերը)

char char_array1 [str_len1]; // Պատճենեք այն

MyString1.toCharArray (char_array1, str_len1); // տողը վերածել char- ի, ավարտում է նրան

Անկեղծ կլինեմ, չգիտեմ, թե ինչպես է այն աշխատում, բայց աշխատում է:

Քայլ 3. Գործարկեք Thermistor NTC MF52AT- ը

Աշխատեք Thermistor NTC MF52AT- ի հետ աշխատելու համար
Աշխատեք Thermistor NTC MF52AT- ի հետ աշխատելու համար

Ես աշխատել եմ նախապես տերմիստորով, այնպես որ դա հեշտ մասն էր:

Բայց նաև այստեղ կարող եք գտնել տարբեր լուծումներ:

Վերջնական ծածկագրում կարող եք գտնել իմը:

Նրա համար կարող եք գտնել նաև Floats to String թարգմանությունը:

Թելիստորին մի քանի մետաղալար և 10 կահմ դիմադրություն կպցրեց:

Քայլ 4: Բոլորին աշխատեք միասին

Այսպիսով, ես միասին գրեցի ծրագրի բոլոր մասերը:

Այժմ ես պետք է պարզեի, թե ինչպես ուղարկել մեկ SMS ամեն օր, միևնույն ժամանակ:

Ես կարդում եմ տարբեր գաղափարների մասին, ոմանք ՝ TimerAlarm և այլ մոտեցումներով:

Բայց ես գտա մի պարզ լուծում ինչ -որ տեղ arduino ֆորումում.

եթե (այժմ.ժամ () == 8 && now.minute () == 00 && now.second () == 59)

{

SIM.sms Ուղարկել (addr, char_array); // թերմիստոր

ուշացում (500); SIM.sms Ուղարկել (addr, char_array1); // DS18B20}

Բայց ինչու հիմա: երկրորդ = 59, քանի որ այն ուղարկում է մի ամբողջ րոպե SMS: Դա ինձ համար է, բայց ինքներդ փորձեք:

Որոշ փորձարկումներից հետո ծրագիրը վերբեռնեցի Geekcreit® Nano:

Սա թերևս ամենալավ ծրագրային գրառումը չէ:) բայց կատարում է ցանկալիը:

Քանի որ Geekcreit® ATmega328P Nano- ն ունի որոշ Arduino IDE խնդիրներ, ես տերմինալով (Linux Mint) ներբեռնում եմ USBtinyisp- ը ՝ avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Քայլ 5: Աշխատեց

Այո, դա ստացվել է և տեղադրված է տանը:

Ամեն օր առավոտյան ժամը 6: 00 -ին ջերմաստիճանի հետ SMS եմ ստանում:

Խորհուրդ ենք տալիս: