Съдържание:

Изпраща SMS с включена температура: 5 стъпки (със снимки)
Изпраща SMS с включена температура: 5 стъпки (със снимки)

Видео: Изпраща SMS с включена температура: 5 стъпки (със снимки)

Видео: Изпраща SMS с включена температура: 5 стъпки (със снимки)
Видео: Стоян колев се кара с яница 2024, Юли
Anonim
Изпраща SMS с температура навреме
Изпраща SMS с температура навреме

Идеята е да получа температурен смс от къщата на бащите ми.

Нищо фантастично, просто бързо сглобяване на части.

Частите са:

  • Geekcreit® ATmega328P Nano V3 Controller Board съвместима Arduino
  • DIY NANO IO Shield V1. O Разширителна платка за Arduino
  • DS1307 базиран RTC IIC / I2C часовник в реално време модул и DS18b20
  • SIM800L Четирилентов GSM / GPRS
  • LM2596 Мини DC-DC преобразувател Регулируем захранващ модул стъпка надолу
  • Термистор NTC MF52AT температура

Първо изобщо много за четене и търсене.

Преди най -накрая да използвам Geekcreit® Nano, тествам всички части с Arduino Uno.

Стъпка 1: Включете SIM800l

Вземете SIM800l да работи
Вземете SIM800l да работи

Един основен момент е мощността на Sim800L.

Използвам LM2596 Mini DC-DC преобразувател, настроен на 3,7 волта и отделно захранване.

За тестване на връзката с AT+ команди тази страна е много използваема:

Бърз старт SIM800 (SIM800L) с Arduino

С Disable pin code using gsm modem при команди получих разходка от sim pin кода.

Следващото съображение коя библиотека. Интернет предлага различно решение.

Моето решение е библиотеката от Mattias Aabmets: AspenSIM800

Неговият изпит: Send_SMS.ino използва I като основна програма и един по един свързва всички останали части заедно.

Tx пина и Rx пина са код за:

RX_PIN 10 на Arduino. Трябва да бъде свързан към TX пина на модула SIM800. TX_PIN 11 на Arduino. Трябва да бъде свързан към RX пина на модула SIM800

Винаги е добра идея да прочетете *.ccp и *.h файловете в библиотеките.

Те съдържат много интересни съвети и знания.

Стъпка 2: Включете RTC DS1307 със сензора DS18B20 в работа

Включете RTC DS1307 със сензор DS18B20 в работа
Включете RTC DS1307 със сензор DS18B20 в работа

Използвах тази странична страна: simtronyx - блогът за DS1307 и DS18B20.

Часовникът има I2C автобусна връзка и това е за Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 I, свързан към D3.

Прочетох, че в SMS не можете да изпращате Floats само String, така че трябваше да превеждам floats в низ.

Това, което правя с този кодов фрагмент, намерих:

н

MyString1 = Низ (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: Включете термистора NTC MF52AT

Накарайте термистора NTC MF52AT да работи
Накарайте термистора NTC MF52AT да работи

Работих преди с термистор, така че беше лесната част.

Но и тук можете да намерите различно решение.

В крайния код можете да намерите моя.

Можете също така да намерите превода Floats to String.

Запоява се малко жица и 10 k омовия резистор към термистора.

Стъпка 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}

Но защо now.second = 59, защото изпраща цяла минута SMS. За мен е така, но опитайте сами.

След известен тест качих програмата в Geekcreit® Nano.

Може би това не е най -доброто писане на програма:), но прави желаното.

Тъй като Geekcreit® ATmega328P Nano има някои проблеми с IDE на Arduino, качвам чрез терминал (Linux Mint) хвърлям USBtinyisp с това: avrdude -c usbtiny -p atmega328p -U флаш: w: SomeHexFile.hex

Стъпка 5: Работи

Да, това се получи и е поставено в къщата.

Всеки ден в 6:00 получавам SMS с температурата.

Препоръчано: