Съдържание:
- Стъпка 1: Програмиране на ATTINY 85
- Стъпка 2: Качване на програмата в ATTINY85
- Стъпка 3: Изпълнение на вашата програма
- Стъпка 4: Заключение
Видео: SMS текстови временни сигнали от GSM на ATTINY85 и A1: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Тази инструкция ви показва как да уловите температурата от обикновен температурен сензор и да я изпратите чрез sms текст до мобилния си телефон. За да опростя нещата, изпращам температурата на определен интервал, но също така показвам как това може да стане само чрез изключение / сигнали. Хардуерът е с много ниска цена, по -малко от 10 долара, въпреки че има повтарящи се разходи за sms, които трябва да се вземат предвид.
Вдигането на тежести се осъществява от простия, но мощен ATTINY 85, който улавя данните за температурата и след това задейства изпращане на SMS чрез модул AI-Thinker A6 GSM.
Накратко, пишете кода ATTINY85 в средата на Arduino IDE и го записвате на ATTINY85 с помощта на USBASP сериен/USB конвертор. Разгледах настройката на AI-Thinker A6 GSM модул и Arduino IDE в два предишни урока. Различното тук е свързването на GSM модула ATTINY и A6 с помощта на серийни комуникации.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
След програмиране, ATTINY чете данните за температурата от сензор за термометър - Dallas 18B20- и след това изпраща данните и командите чрез серийна връзка към GSM модула A6, който след това ги изпраща като SMS текст до вашия мобилен / смартфон.
Ето какво ви трябва:
1. USBASP сериен/USB конвертор.
2. АТТИНИ 85.
3. AI-Thinker A6 GSM модул версия 6 (със SIM, който има SMS кредити).
4. Захранване с 3.3v платка за ATTINY85.
5. 3.3.v USB захранване за AI-Thinker A6 GSM модул.
6. Температурен сензор Dallas 18B20..
7. 4.7k резистор за сензора 18B20.
8. Платка и кабели.
9. Arduino IDE (използвах версия 1.8.5. За това).
10. Лаптоп с Windows X (използвах версия 10) с безплатен usb порт.
Стъпка 1: Програмиране на ATTINY 85
Ето кода на Arduino IDE (Ще трябва да промените телефонния номер, на който искате да изпратите SMS.)
#включи #включи #включи
// *** // *** Определете RX и TX щифтовете. Изберете всеки // *** *** щифт, който не се използва. Опитайте се да избегнете D0 (щифт 5) // *** и D2 (щифт 7), ако планирате да използвате I2C. // *** #дефинирайте RX 3 // *** D3, Pin 2 #дефинирайте TX 4 // *** D4, Pin 3
// *** // *** Определете софтуерно базиран сериен порт. Използване на // *** име Serial, така че кодът да може да се използва на други // *** платформи, които поддържат хардуерно базиран сериал. На // *** чипове, които поддържат хардуерната серия, просто // *** коментирайте този ред. // ***
SoftwareSerial mySerial = SoftwareSerial (RX, TX);
// *** // *** Pinout 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 MHz
// *** // *** Пин, на който са свързани данните на OneWire // *** проводник. // *** #дефинирайте ONE_WIRE_BUS 1
// *** // *** Настройка на екземпляр от oneWire за комуникация с всякакви устройства на OneWire // *** (не само с температурни интегрални схеми на Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Предайте нашата OneWire препратка към температурата в Далас. // *** DallasTemperature _sensors = DallasTemperature (& _ 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_temperature) {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=\"+ ВАШИЯ НОМЕР / ""); // задаваме забавяне на телефонния номер (увит в двойни кавички) (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); забавяне (1000); mySerial.write (0x1A); // изпраща ctrl+z край на забавяне на съобщението (1000); mySerial.write (0x0D); // Carriage Return в шестнадесетично закъснение (1000); mySerial.write (0x0A); забавяне (1000000); // 17 минути - коригирайте според собственото си приложение}
Отворете средата на Arduino IDE - описал съм как да се ориентирате в това подробно в предишните си инструкции, за които споменах по -рано.
Ще ви трябват следните библиотеки
SoftwareSerial.h
OneWire.h
DallasTemperature.h
След това конфигурирайте RX и TX щифтовете на ATTINY85, които трябва да свържете с A1 Thinker. ATTINY 85 има 8 щифта, по четири от всяка страна и е подравнен с помощта на точката на повърхността като отправна точка. Пин 1 или ПИН RESET е до тази точка.
(в този случай избрах Pin2 и 3 - Те са от същата страна като щифта RESET, който е до точката на повърхността на ATTINY 85. Пин 2 е следващият щифт от щифта RESET, докато Pin 3 е между Pin 2 и заземяване)
След това трябва да конфигурирате температурния сензор -
#дефинирайте ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
След това настройте серийния порт на софтуера
mySerial.begin (115200);
забавяне (60000);
и след това извикайте сензорите с _sensors.begin ();
След това има цикъл, който се оглежда в предварително определено време, записва температурата и изпраща съобщение / предупреждение в зависимост от стойността. Той използва функция SMS_temp, която също е мястото, където задавате времето на цикъла
void loop () {sensors.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 точно както трябва");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Твърде топло");}
}
==============
След това настройте Arduino IDE, за да се подготвите за качване в ATTINY85.
Редица неща, които трябва да се отбележат
1- Ако нямате семейство дъски ATTINY, добавете следния URL адрес https://raw.githubusercontent.com/damellis/attiny/… във URL файл/Предпочитания/Допълнителни платки, След това в Arduio IDE щракнете върху Tools/Board/Board Manager и потърсете ATTINY и инсталирайте новата платка. Сменете процесора на Attiny85.
Стъпка 2: Качване на програмата в ATTINY85
Вижте и предишните ми инструкции по този въпрос-https://www.instructables.com/id/15-Dollar-Attiny8…
ATTINY85 има два режима, съответно режим на програмиране и работа. РЕЖИМ НА ПРОГРАМИРАНЕ Първо идентифицирайте щифтовете на ATTINY85. За да направите това, намерете малкия прорез на повърхността на чипа, който е до щифта RST/RESET. Използвайки това като отправна точка, можете да идентифицирате останалите щифтове. Цялата тази информация е предоставена в информационния лист A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
USBasp и ATTINY85 трябва да бъдат свързани, както е показано на изображението по -горе.
След това, в Arduino IDE, настройте програмиста на USBasp и честотата на вътрешни 8Mhz.
Свържете USBasp към USB порт на вашия лаптоп (В Windows 10, ако нямате USBasp драйвер, използвайте Zadig съгласно уебсайта
След това, когато USBasp е свързан, изберете от Arduino IDE Sketch/upload и се надявам да видите напредъка на качване, показан с червени букви на Arduino IDE и завършващ с avrdude направено. Благодаря ти.
Всички грешки на този етап обикновено са свързани с разхлабени кабели или грешен драйвер.
Стъпка 3: Изпълнение на вашата програма
Първо, нещо за сензора за термометър Dallas 18b20. Той има 3 пина, заземяване (G), данни (D) и VCC, както е показано на изображението по -горе. За работа тя изисква свързване на D и VCC с резистор 4.7k. G и VCC са свързани към съответните полюси, докато D е свързан към ATTINY 85, извод - [6] PB1, както е конфигурирано в кода.
След това свържете ATTINY към A6 GSM, както следва (и показано по -горе)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ВНИМАНИЕ GND A6 GND
и на самия А6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Все още не се свързвайте към земята !!!!!)
Сега включете и двете устройства и след няколко секунди докоснете временно заземяващия щифт A6 с кабела, свързан към A6 RST щифта. A6 ще се изключва и включва и се надяваме скоро да получите данни за температурата на телефона си.
Стъпка 4: Заключение
Тази инструкция може да изглежда доста проста, но идеята е да се илюстрира какво може да се постигне с евтини компоненти. Очевидно, ако имате достъп до wi-fi или BLE хъб, тогава има по-подходящи решения.
Не обхващам други функции, като изпращане на SMS до телефона за започване на запис / предаване на температура и т.н.
Препоръчано:
Save My Child: Интелигентната седалка, която изпраща текстови съобщения, ако забравите детето в колата: 8 стъпки
Save My Child: Интелигентната седалка, която изпраща текстови съобщения, ако забравите детето в колата: Инсталира се в автомобили и благодарение на детектор, поставен на детската седалка, ни предупреждава - чрез SMS или телефонно обаждане - ако получим далеч, без да доведе детето с нас
Как да изпращате SMS текстови съобщения от вашия Arduino ESP проект: 6 стъпки
Как да изпращате SMS текстови съобщения от вашия Arduino ESP проект: Тази инструкция демонстрира как да изпращате SMS текстови съобщения от вашия arduino проект, използвайки устройство ESP8266 и WiFi връзка. Защо да използвате SMS?* SMS съобщенията са много по -бързи и надеждни от известията за приложения съобщения. * SMS съобщенията също могат
Направи си сам аларма за врата с текстови сигнали: 5 стъпки
Направи си сам аларма за врата с текстови сигнали: Направете своя собствена аларма за врата/прозорец с някои прости електроника, магнити и Raspberry Pi. Raspberry Pi се използва за изпращане на текстови съобщения или имейл при отваряне на вратата! Необходими материали (включени връзки): Raspberry Pi (ето комплекта, който използвахме) Reed SwitchNeodymiu
Аларма за врата Arduino с текстови сигнали: 14 стъпки (със снимки)
Аларма за врата на Arduino с текстови сигнали: Това е аларма за врати, базирана на Arduino, която използва магнитен превключвател за определяне на състоянието на вратата и има звукова аларма и аларма, базирана на текстово съобщение
Временни стикери за Ipod лента: 7 стъпки
Временни наклейки за Ipod: Направете свои собствени стикери за ipods, лаптопи, практически всякакви плоски повърхности с малко опаковъчна лента и снимки от списания правят вашия ipod толкова уникален отвън, колкото и отвътре в този свят, пълен със сходство