Оглавление:
- Шаг 1. Заставьте SIM800l работать
- Шаг 2. Заставьте RTC DS1307 с датчиком DS18B20 работать
- Шаг 3. Приведите в действие термистор NTC MF52AT
- Шаг 4. Заставьте всех работать вместе
- Шаг 5: это сработало
Видео: Отправляет SMS с Temperatur вовремя: 5 шагов (с картинками)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Идея состоит в том, чтобы получить смс 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.
Я использую преобразователь 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 работать
Я использовал эту боковую сторону: 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
Я работал до термистора, так что это была легкая часть.
Но и здесь вы можете найти другое решение.
В окончательном коде вы можете найти мой.
Здесь вы также можете найти перевод 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 я получаю смс с температурой.
Рекомендуемые:
Спасите моего ребенка: умное сиденье, которое отправляет текстовые сообщения, если вы забыли ребенка в машине: 8 шагов
Спасите моего ребенка: умное сиденье, которое отправляет текстовые сообщения, если вы забыли ребенка в машине: оно установлено в автомобилях и благодаря детектору, установленному на детском сиденье, предупреждает нас - с помощью SMS или телефонного звонка - если мы получаем прочь, не взяв с собой ребенка
Постройте самополивочный горшок с Wi-Fi - автоматически поливает растения и отправляет оповещения при низком уровне воды: 19 шагов
Постройте самополивочный горшок с помощью Wi-Fi - автоматически поливает растения и отправляет оповещения при низком уровне воды: в этом руководстве показано, как построить индивидуальную самополивающуюся сеялку с подключением к Wi-Fi, используя старую садовую сеялку, мусорное ведро, немного клея и самополив. Комплект для сборки лейки от Adosia
Nodemcu отправляет данные о температуре и влажности в Thingspeak: 7 шагов
Nodemcu отправляет данные о температуре и влажности в Thingspeak: В этом руководстве мы подключили nodemcu к датчику dht11 и отправили данные о температуре и влажности на сервер thingspeak. Здесь мы также построили график температуры и влажности для сервера thingspeak
Arduino отправляет данные Dht11 на сервер MySQL (PHPMYADMIN) с помощью Python: 5 шагов
Arduino отправляет данные Dht11 на сервер MySQL (PHPMYADMIN) с использованием Python: В этом проекте я связал DHT11 с arduino, а затем я отправляю данные dht11, которые являются влажностью и температурой, в базу данных phpmyadmin. В отличие от нашего предыдущего проекта, в этом случае мы не используем никакой сетевой защиты, здесь мы просто читаем t
Arduino отправляет данные о температуре и влажности на сервер MySQL (PHPMYADMIN): 5 шагов
Arduino отправляет данные о температуре и влажности на сервер MySQL (PHPMYADMIN): в этом проекте я связал DHT11 с arduino, а затем отправляю данные dht11, которые являются влажностью и температурой, в базу данных phpmyadmin. Здесь мы используем один скрипт PHP для отправки данных в базу данных phpmyadmin