Mundarija:

Haroratli smsni o'z vaqtida yuboradi: 5 qadam (rasmlar bilan)
Haroratli smsni o'z vaqtida yuboradi: 5 qadam (rasmlar bilan)

Video: Haroratli smsni o'z vaqtida yuboradi: 5 qadam (rasmlar bilan)

Video: Haroratli smsni o'z vaqtida yuboradi: 5 qadam (rasmlar bilan)
Video: Xotirani kuchaytiruvchi 10 ta SIR. Hamma uchun birdek to'gri keladi! 10 daqiqada 2024, Noyabr
Anonim
O'z vaqtida harorat bilan SMS yuboradi
O'z vaqtida harorat bilan SMS yuboradi

Mening fikrim - otalar uyidan harorat smsini olish.

Hech narsa shunchaki tezda qismlarni birlashtira olmaydi.

Bo'limlar:

  • Geekcreit® ATmega328P Nano V3 boshqaruv paneli Arduino bilan mos keladi
  • DIY NANO IO Shield V1. O Arduino uchun kengaytirish paneli
  • DS1307 asosidagi RTC IIC / I2C real vaqtda soat moduli va DS18b20
  • SIM800L to'rt tarmoqli GSM / GPRS
  • LM2596 Mini DC-DC konverteri sozlanishi pastga tushadigan quvvat manbai moduli
  • Termistor NTC MF52AT harorati

Birinchidan, o'qish va izlanishdan ko'p narsa.

Oxir -oqibat, men Geekcreit® Nano -dan foydalanaman, men uning barcha qismlarini Arduino Uno bilan sinab ko'raman.

1 -qadam: SIM800l -ni ishga tushiring

SIM800l -ni ishga tushiring
SIM800l -ni ishga tushiring

Bir muhim nuqta - Sim800L uchun quvvat.

Men LM2596 Mini DC-DC konvertoridan foydalanaman, 3,7 voltgacha sozlangan va alohida quvvat manbai.

AT+ buyruqlari bilan ulanishni sinab ko'rish uchun bu tomondan foydalanish juda qulay:

Tez ishga tushirish SIM800 (SIM800L) Arduino bilan

Gsm modem yordamida pin kodini o'chirish buyruqlarida men sim pin kodini oldim.

Keyingi ko'rib chiqish qaysi kutubxona. Internet turli xil echimlarni taklif qiladi.

Mening yechimim Mattias Aabmets kutubxonasi: AspenSIM800

Uning misoli: Send_SMS.ino I ni asosiy dastur sifatida ishlatgan va qolgan barcha qismlarni birma -bir ulagan.

Tx va Rx pinlari quyidagicha kodlangan:

Arduino uchun RX_PIN 10. SIM800 modulining TX piniga ulangan bo'lishi kerak. TX_PIN 11 Arduino. SIM800 modulining RX piniga ulangan bo'lishi kerak

Kutubxonalarda *.ccp va *.h fayllarini o'qish har doim yaxshi bo'ladi.

Ularda ko'plab qiziqarli maslahatlar va bilimlar mavjud.

2 -qadam: DS18B20 sensori bilan RTC DS1307 -ni ishga tushiring

Ishlash uchun DS18B20 sensori bilan DS1307 RTC -ni oling
Ishlash uchun DS18B20 sensori bilan DS1307 RTC -ni oling

Men bu tomonni ishlatardim: simtronyx - DS1307 va DS18B20 uchun blog.

Soat I2C avtobus aloqasiga ega va bu Arduino Uno uchun: A4 (SDA) - A5 (SCL)

DS18B20 I D3 ga ulandi.

Men SMS -da siz Floats -ni String -ga jo'natolmasligingizni o'qidim, shuning uchun men float -larni mag'lubiyatga tarjima qilishim kerak edi.

Men topgan ushbu kod parchasi bilan qilgan ishim:

n

MyString1 = String (currentTemp, 2); // floatni String -ga o'zgartiring

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

// satrni charga aylantirish shu erda boshlanadi

// Uzunlik (null terminator uchun bitta qo'shimcha belgi bilan)

int str_len1 = MyString1.length () + 1; // Belgilar qatorini tayyorlang (bufer)

char char_array1 [str_len1]; // Qayta nusxa ko'chiring

MyString1.toCharArray (char_array1, str_len1); // satrni charga aylantirish uni tugatadi

Rostini aytsam, u qanday ishlaydi, lekin u ishlaydi.

3 -qadam: Thermistor NTC MF52AT ni ishga tushiring

Thermistor NTC MF52AT ni ishga tushiring
Thermistor NTC MF52AT ni ishga tushiring

Men termistor bilan ishlaganman, shuning uchun bu oson ish edi.

Ammo bu erda siz turli xil echimlarni topishingiz mumkin.

Oxirgi kodda siz menikini topishingiz mumkin.

Shuningdek, siz Floating to String tarjimasini topishingiz mumkin.

Termistorga bir nechta sim va 10 k ohmli rezistor lehimlangan.

4 -qadam: Hammani birgalikda ishga joylashtiring

Shunday qilib, men dasturning barcha qismlarini birgalikda yozdim.

Endi men har kuni, bir vaqtning o'zida qanday qilib bitta SMS yuborish kerakligini aniqlashim kerak edi.

Men turli xil fikrlar haqida o'qidim, ba'zilari TimerAlarm va boshqa yondashuv bilan.

Lekin men arduino forumida biron bir joyda oddiy echim topdim:

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

{

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

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

Lekin nega endi.second = 59, chunki u butun daqiqali SMS yuboradi. Bu men uchun yaxshi, lekin o'zingizni sinab ko'ring.

Sinovdan so'ng men dasturni Geekcreit® Nano -ga yukladim.

Bu, ehtimol, eng yaxshi dastur yozish emas:) lekin u xohlaganini qiladi.

Geekcreit® ATmega328P Nano -da ba'zi Arduino IDE muammolari bo'lganligi sababli, men terminal orqali yuklayman (Linux Mint) USBtinyisp -ni shunday tashlaydi: avrdude -c usbtiny -p atmega328p -U flesh: w: SomeHexFile.hex

5 -qadam: Ishladi

Ha, u amalga oshdi va u uyga joylashtirildi.

Har kuni ertalab soat 6:00 da menga harorat yozilgan SMS keladi.

Tavsiya: