Мазмуну:

Температура менен SMS жөнөтөт: 5 кадам (Сүрөттөр менен)
Температура менен SMS жөнөтөт: 5 кадам (Сүрөттөр менен)

Video: Температура менен SMS жөнөтөт: 5 кадам (Сүрөттөр менен)

Video: Температура менен SMS жөнөтөт: 5 кадам (Сүрөттөр менен)
Video: Бала качан кыймылдайт? Кош бойлуу учурундагы жыныстык катнаш... 2024, Ноябрь
Anonim
Температура менен SMSти өз убагында жөнөтөт
Температура менен SMSти өз убагында жөнөтөт

Идея - атамдын үйүнөн температуралуу смс алуу.

Эч нерсе кызыктырбайт, жөн гана бөлүктөрдү тез бириктирүү.

Бөлүктөрү:

  • Geekcreit® ATmega328P Nano V3 Controller Board Бири -бирине шайкеш Arduino
  • DIY NANO IO Shield V1. O кеңейтүү тактасы Arduino үчүн
  • DS1307 негизделген RTC IIC / I2C Real Time Clock Module жана DS18b20
  • SIM800L Төрт диапазондуу GSM / GPRS
  • LM2596 Mini DC-DC Converter Adjustable Step Down Power Supply Module
  • Thermistor NTC MF52AT температурасы

Биринчиден, окуудан жана изденүүдөн баш тартам.

Мен акыры Geekcreit® Nano колдонуп, бардык бөлүктөрүн Arduino Uno менен сынап көрөм.

1 -кадам: SIM800l'ды иштетиңиз

SIM800l'ды иштетиңиз
SIM800l'ды иштетиңиз

Бир негизги жагдай Sim800L үчүн күч болуп саналат.

Мен LM2596 Mini DC-DC конвертерин колдоном, 3.7 вольтко жана өзүнчө энергия менен камсыздалган.

AT+ буйруктары менен байланышты текшерүү үчүн бул жагы абдан пайдалуу:

SIM800 (SIM800L) Arduino менен Quickstart

Командада gsm модемин колдонуп пин кодду өчүрүү менен, мен сим пин кодун минип алдым.

Кийинки кароо кайсы китепкана. Интернет башка чечимдерди сунуштайт.

Менин чечимим Mattias Aabmetsтин китепканасы: AspenSIM800

Анын мисалы: Send_SMS.ino Мени негизги программа катары колдонгон жана башка бөлүктөрдү бир -бирден байланыштырат.

Tx пин жана Rx пин коду болуп саналат:

RX_PIN 10 Arduino. SIM800 модулунун TX пинине туташуу керек. TX_PIN 11 Arduino. SIM800 модулунун RX пинине туташтырылышы керек

Китепканалардан *.ccp жана *.h файлдарын окуу дайыма жакшы идея.

Алар көптөгөн кызыктуу кеңештерди жана билимдерди камтыйт.

2 -кадам: DS18B20 сенсорунун жардамы менен RTC DS1307ди алыңыз

DS18B20 сенсорунун жардамы менен RTC DS1307ди алыңыз
DS18B20 сенсорунун жардамы менен RTC DS1307ди алыңыз

Мен бул жагын колдондум: simtronyx - DS1307 жана DS18B20 блогу.

Сааттын I2C автобус байланышы бар жана бул Arduino Uno үчүн: A4 (SDA) - A5 (SCL)

DS18B20 I D3 менен туташты.

Мен SMS аркылуу Floats гана String жөнөтө албастыгыңызды окудум, ошондуктан мен калкыма сапка которууга туура келди.

Бул коддун үзүндүсү менен мен таптым:

п

MyString1 = String (currentTemp, 2); // Float'ты Stringге айландырыңыз

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

// сапты charке айландыруу ушул жерден башталат

// Узундугу (нөл терминатору үчүн бир кошумча белги менен)

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 форумунда бир жерден жөнөкөй чечим таптым:

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

{

SIM.smsSend (addr, char_array); // термистор

кечигүү (500); SIM.smsSend (addr, char_array1); // DS18B20}

Бирок эмне үчүн азыр.second = 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 келет.

Сунушталууда: