Оглавление:

Отправляет SMS с Temperatur вовремя: 5 шагов (с картинками)
Отправляет SMS с Temperatur вовремя: 5 шагов (с картинками)

Видео: Отправляет SMS с Temperatur вовремя: 5 шагов (с картинками)

Видео: Отправляет SMS с Temperatur вовремя: 5 шагов (с картинками)
Видео: 5 правил в переписке с любым мужчиной 2024, Июль
Anonim
Вовремя отправляет смс с Temperatur
Вовремя отправляет смс с Temperatur

Идея состоит в том, чтобы получить смс temperatur из отцовского дома.

Ничего особенного, просто быстрое соединение частей.

Части:

  • Плата контроллера Geekcreit® ATmega328P Nano V3, совместимая с Arduino
  • Плата расширения DIY NANO IO Shield V1. O для Arduino
  • Модуль часов реального времени на базе DS1307 RTC IIC / I2C и DS18b20
  • SIM800L четырехдиапазонный GSM / GPRS
  • LM2596 Миниатюрный преобразователь постоянного тока с регулируемым понижающим блоком питания
  • Термистор NTC MF52AT температуры

Во-первых, много от чтения и поиска.

Прежде чем я наконец использую Geekcreit® Nano, я тестирую все части с помощью Arduino Uno.

Шаг 1. Заставьте SIM800l работать

Заставьте SIM800l работать
Заставьте SIM800l работать

Один из основных моментов - это мощность Sim800L.

Я использую преобразователь DC-DC LM2596 Mini, настроенный на 3,7 В и отдельный источник питания.

Эта сторона очень удобна для проверки соединения с помощью команд AT +:

Быстрый запуск SIM800 (SIM800L) с Arduino

С отключением пин-кода с помощью GSM-модема по командам я получил пин-код SIM-карты.

Следующее соображение, какая библиотека. Интернет предлагает другое решение.

Мое решение - библиотека от Маттиаса Абметса: 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 я подключил к D3.

Я читал, что в SMS нельзя отправлять только числа с плавающей запятой, поэтому мне пришлось преобразовать числа с плавающей запятой в строку.

Что я делаю с этим фрагментом кода, который я нашел:

п

MyString1 = String (currentTemp, 2); // Преобразуем число с плавающей точкой в строку

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

// преобразование строки в символ начинается здесь

// Длина (с одним дополнительным символом для нулевого терминатора)

int str_len1 = MyString1.length () + 1; // Подготавливаем символьный массив (буфер)

char char_array1 [str_len1]; // Копируем

MyString1.toCharArray (char_array1, str_len1); // преобразование строки в символ заканчивается ее

Скажу честно, я не знаю, как это работает, но это работает.

Шаг 3. Приведите в действие термистор NTC MF52AT

Заставьте термистор NTC MF52AT работать
Заставьте термистор NTC MF52AT работать

Я работал до термистора, так что это была легкая часть.

Но и здесь вы можете найти другое решение.

В окончательном коде вы можете найти мой.

Здесь вы также можете найти перевод Floats to String.

Припаял к термистору какой-то провод и резистор 10 кОм.

Шаг 4. Заставьте всех работать вместе

Итак, я написал все программные части вместе.

Теперь мне нужно было понять, как отправлять по одному СМС каждый день в одно и то же время.

Я читал о разных идеях, некоторые с подходом TimerAlarm и другим.

Но я нашел простое решение где-то на форуме arduino:

если (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

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

задержка (500); SIM.smsSend (адрес, char_array1); // DS18B20}

Но почему now.second = 59, потому что он отправляет целую минуту SMS. Мне подходит, но попробуйте сами.

После некоторого теста я загрузил программу в Geekcreit® Nano.

Возможно, это не лучшая программа для написания программ:), но она делает желаемое.

Поскольку у Geekcreit® ATmega328P Nano есть некоторые проблемы с IDE Arduino, я загружаю через терминал (Linux Mint) и бросаю USBtinyisp с помощью этого: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

Шаг 5: это сработало

Да, получилось, и его поставили в дом.

Каждый день в 6:00 я получаю смс с температурой.

Рекомендуемые: