Оглавление:
- Шаг 1: Программирование ATTINY 85
- Шаг 2: Загрузка программы в ATTINY85
- Шаг 3: Запуск вашей программы
- Шаг 4: Заключение
Видео: Текстовые SMS-оповещения о температуре от ATTINY85 и A1 GSM: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
В этом руководстве показано, как измерить температуру с помощью простого датчика температуры и отправить ее в виде sms-сообщения на свой мобильный телефон. Чтобы упростить задачу, я отправляю температуру с заданным интервалом, но я также показываю, как это можно сделать только с помощью исключений / предупреждений. Аппаратное обеспечение очень дешевое, менее 10 долларов, хотя необходимо учитывать периодические расходы на смс.
Тяжелую работу выполняет простой, но мощный ATTINY 85, который собирает данные о температуре, а затем отправляет SMS-сообщение через GSM-модуль AI-Thinker A6.
Короче говоря, вы пишете код ATTINY85 в среде Arduino IDE и записываете его на ATTINY85 с помощью преобразователя последовательного порта USBASP / USB. Я рассказывал о настройке GSM-модуля AI-Thinker A6 и Arduino IDE в двух предыдущих уроках. Отличие заключается в том, что между модулями ATTINY и A6 GSM используется последовательная связь.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
После программирования ATTINY считывает данные о температуре с датчика термометра - Dallas 18B20-, а затем отправляет данные и команды по последовательному соединению в модуль A6 GSM, который затем отправляет их в виде текста SMS на ваш мобильный / смартфон.
Вот что вам понадобится:
1. Преобразователь USBASP последовательный / USB.
2. КРАЙНЕ 85.
3. GSM-модуль AI-Thinker A6 версии 6 (с сим-картой, на которую есть SMS-кредиты).
4. Блок питания на макетной плате на 3,3 В для ATTINY85.
5. Блок питания 3.3.v USB для GSM-модуля AI-Thinker A6.
6. Датчик температуры Dallas 18B20..
7. Резистор 4,7к для датчика 18В20.
8. Макетная плата и кабели.
9. Arduino IDE (для этого я использовал версию 1.8.5).
10. Ноутбук Windows X (я использовал версию 10) со свободным портом usb.
Шаг 1: Программирование ATTINY 85
Вот код Arduino IDE (вам нужно будет изменить номер телефона, на который вы хотите отправить SMS.)
#include #include #include
// *** // *** Определим выводы RX и TX. Выберите любые два // *** контакта, которые не используются. Старайтесь избегать D0 (вывод 5) // *** и D2 (вывод 7), если вы планируете использовать I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Определить программный последовательный порт. Использование // *** имени Serial, чтобы код можно было использовать на других // *** платформах, поддерживающих аппаратный последовательный порт. На // *** микросхемах, поддерживающих аппаратный последовательный порт, просто // *** прокомментируйте эту строку. // ***
SoftwareSerial mySerial = SoftwareSerial (RX, TX);
// *** // *** Распиновка ATtiny25 / 45/85: // *** PDIP / SOIC / TSSOP // *** ================== ================================================== ========================= // *** // *** (PCINT5 / RESET / ADC0 / dW) PB5 [1] * [8] VCC // *** (PCINT3 / XTAL1 / CLKI / OC1B / ADC3) PB3 [2] [7] PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) // *** (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) PB4 [3] [6] PB1 (MISO / DO / AIN1 / OC0B / OC1A / PCINT1) // *** GND [4] [5] PB0 (MOSI / DI / SDA / AIN0 / OC0A / OC1A / AREF / PCINT0) // *** // Частота ATTINY 85 установлена на внутреннюю частоту 8 МГц
// *** // *** Контакт, к которому подключен провод данных OneWire // ***. // *** #define ONE_WIRE_BUS 1
// *** // *** Настройте экземпляр oneWire для связи с любыми // *** устройствами OneWire (а не только с температурными ИС Maxim / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Передаем нашу ссылку oneWire в Dallas Temperature. // *** Температура Далласа _sensors = Температура Далласа (& _ oneWire);
void setup () {// *** // *** Инициализировать последовательный порт // *** mySerial.begin (115200); задержка (60000);
// *** Запускаем библиотеку. _sensors.begin (); }
void loop () {
// *** // *** Получить текущую температуру и отобразить ее. // *** _sensors.requestTemperatures (); задержка (2000); двойной tempC = _sensors.getTempCByIndex (0); двойной tempF = _sensors.getTempFByIndex (0); // проверка на наличие ошибок - иногда при запуске, температура отображается как 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_tempera) {SMS_temp (tempC, "Слишком тепло");}}
void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT + CMGF = 1"); // установить в режим SMS задержка (1000); mySerial.println ("AT + CMGF = 1"); // установить в режим SMS задержка (1000); //mySerial.println("AT+CMGS=\"+ ВАШ НОМЕР / ""); // устанавливаем телефонный номер (заключен в двойные кавычки) delay (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); задержка (1000); mySerial.write (0x1A); // отправляет ctrl + z конец сообщения delay (1000); mySerial.write (0x0D); // Возврат каретки в шестнадцатеричном формате delay (1000); mySerial.write (0x0A); задержка (1000000); // 17 минут - настройте для вашего собственного приложения}
Откройте среду Arduino IDE - я подробно описал, как найти способ обойти это в моем предыдущем руководстве, о котором я упоминал ранее.
Вам понадобятся следующие библиотеки
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Затем настройте контакты RX и TX на ATTINY85, которые необходимо подключить к A1 Thinker. ATTINY 85 имеет 8 контактов, по четыре с каждой стороны, и выравнивается с помощью точки на поверхности в качестве ориентира. Контакт 1 или контакт RESET находится рядом с точкой.
(в данном случае я выбрал выводы 2 и 3 - они находятся на той же стороне, что и вывод RESET, который находится рядом с точкой на поверхности ATTINY 85. Вывод 2 является следующим выводом после вывода RESET, в то время как вывод 3 находится между выводом 2 и ЗЕМЛЯ)
Далее вам нужно настроить датчик температуры -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
Температура Далласа _sensors = Температура Далласа (& _ oneWire);
Затем настройте программный последовательный порт.
mySerial.begin (115200);
задержка (60000);
а затем вызовите датчики с помощью _sensors.begin ();
Затем идет цикл, который опрашивает в заранее определенное время, записывает температуру и отправляет сообщение / предупреждение в зависимости от значения. Он использует функцию SMS_temp, в которой вы также устанавливаете время цикла.
пустая петля () {сенсоры.requestTemperatures (); задержка (2000);
двойной tempC = _sensors.getTempCByIndex (0);
двойной tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "ОПАСНО холодно");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Довольно холодно");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_tempera) {SMS_temp (tempC, "Слишком тепло");}
}
==============
Затем настройте IDE Arduino для подготовки к загрузке в ATTINY85.
Несколько вещей, на которые следует обратить внимание
1- Если у вас нет платы семейства ATTINY, добавьте следующий URL-адрес https://raw.githubusercontent.com/damellis/attiny/… в URL-адрес File / Preferences / Additional Boards Manager, Затем в среде Arduio IDE щелкните Tools / Board / Board Manager, найдите ATTINY и установите новую плату. Меняем процессор на Attiny85.
Шаг 2: Загрузка программы в ATTINY85
Также см. Мои предыдущие инструкции по этому поводу -
ATTINY85 имеет два режима: режим программирования и режим работы соответственно. РЕЖИМ ПРОГРАММИРОВАНИЯ Во-первых, определите контакты на ATTINY85. Для этого найдите небольшую выемку на поверхности микросхемы, которая находится рядом с выводом RST / RESET. Используя это в качестве ориентира, вы можете определить остальные контакты. Вся эта информация представлена в листе данных A85 -
USBasp и ATTINY85 должны быть подключены, как показано на изображении выше.
Затем в среде Arduino IDE установите программатор на USBasp и частоту на внутреннюю 8 МГц.
Подключите USBasp к USB-порту на вашем ноутбуке (в Windows 10, если у вас нет драйвера USBasp, используйте Zadig в соответствии с веб-сайтом
Затем, подключив USBasp, выберите из эскиза / загрузки Arduino IDE, и, надеюсь, вы увидите, как процесс загрузки отображается красными буквами на Arduino IDE и заканчивается на avrdude done. Спасибо.
Любые ошибки на этом этапе обычно связаны с ослабленными кабелями или неправильным драйвером.
Шаг 3: Запуск вашей программы
Во-первых, кое-что о датчике термометра Dallas 18b20. Он имеет 3 контакта, заземление (G), данные (D) и VCC, как показано на изображении выше. Для работы требуется перемычка D и VCC с помощью резистора 4,7 кОм. G и VCC подключены к соответствующим полюсам, в то время как D подключен к ATTINY 85, контакт - [6] PB1, как настроено в коде.
Затем подключите ATTINY к A6 GSM следующим образом (как показано выше)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
а на самом А6
A6 PWR A6 VCC 5.0A6 RST A6 GND (пока не заземлять !!!!!)
Теперь включите оба устройства и через несколько секунд временно прикоснитесь к контакту заземления A6 кабелем, подключенным к контакту A6 RST. A6 выключится и включится, и, надеюсь, вы скоро получите данные о температуре на свой телефон.
Шаг 4: Заключение
Это руководство может показаться довольно простым, но идея состоит в том, чтобы проиллюстрировать, чего можно достичь с помощью недорогих компонентов. Очевидно, что если у вас есть доступ к Wi-Fi или концентратору BLE, то есть более подходящие решения.
Я не рассмотрел другие функции, такие как отправка SMS на телефон для начала записи / передачи температуры и т. Д.
Рекомендуемые:
Оголовье с предупреждением о температуре: 10 шагов
Повязка на голову с предупреждением о температуре: живя во Флориде, я интересовалась созданием одежды, которая могла бы предупреждать меня, когда на улице слишком жарко. Используя Arduino и несколько простых компонентов, я смог создать печатную плату, которую можно было бы встроить в оголовье, которое предупреждает меня, когда
Предупреждение о температуре и влажности с использованием AWS и ESP32: 11 шагов
Предупреждение о температуре и влажности с использованием AWS и ESP32: в этом руководстве мы будем измерять различные данные о температуре и влажности с помощью датчика температуры и влажности. Вы также узнаете, как отправить эти данные в AWS
Спасите моего ребенка: умное сиденье, которое отправляет текстовые сообщения, если вы забыли ребенка в машине: 8 шагов
Спасите моего ребенка: умное сиденье, которое отправляет текстовые сообщения, если вы забыли ребенка в машине: оно установлено в автомобилях и благодаря детектору, установленному на детском сиденье, предупреждает нас - с помощью SMS или телефонного звонка - если мы получаем прочь, не взяв с собой ребенка
Как отправлять текстовые SMS-сообщения из вашего проекта Arduino ESP: 6 шагов
Как отправлять текстовые SMS-сообщения из вашего проекта Arduino ESP: в этом руководстве показано, как отправлять текстовые SMS-сообщения из вашего проекта Arduino с помощью устройства ESP8266 и Wi-Fi. Зачем использовать SMS? * SMS-сообщения намного быстрее и надежнее, чем уведомления приложений Сообщения. * SMS-сообщения могут также
Пакетные текстовые фильмы: 6 шагов
Текстовые фильмы в пакетном режиме: Привет, я wazupwiop, и это моя первая инструкция. В этом руководстве я покажу вам, как создать пакетный текстовый фильм. Я рекомендую вам посмотреть текстовый фильм «Звездные войны» в другом руководстве для мотивации, кодировки и узнать, что