Talaan ng mga Nilalaman:

Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM: 5 Hakbang
Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM: 5 Hakbang

Video: Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM: 5 Hakbang

Video: Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM: 5 Hakbang
Video: LDmicro 3: PIC16F628A и Arduino Nano (программирование лестничной логики ПЛК микроконтроллера с помощью LDmicro) 2024, Hulyo
Anonim
Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM
Mga Alerto sa SMS Text Temp Mula sa isang ATTINY85 at A1 GSM

Ipinapakita sa iyo ng itinuturo na ito kung paano makukuha ang temperatura mula sa isang simpleng sensor ng temperatura at ipadala ito sa pamamagitan ng sms text sa iyong mobile phone. Upang gawing simple ang mga bagay, nagpapadala ako ng temperatura sa isang itinakdang agwat ngunit ipinapakita ko rin kung paano ito magagawa sa pamamagitan lamang ng mga pagbubukod / alerto. Ang hardware ay napakababang gastos, mas mababa sa 10 dolyar, kahit na may mga umuulit na gastos sa sms upang isaalang-alang.

Ang mabibigat na pag-aangat ay isinasagawa ng simple ngunit malakas na ATTINY 85 na kumukuha ng data ng temperatura at pagkatapos ay nagpapalitaw ng isang SMS upang maipadala sa pamamagitan ng isang module ng AI-Thinker A6 GSM.

Sa madaling sabi, isulat mo ang ATTINY85 code sa Arduino IDE na kapaligiran at sunugin ito sa ATTINY85 gamit ang isang USBASP serial / USB converter. Natakpan ko ang pag-set up ng Ai-Thinker A6 GSM module at Arduino IDE sa dalawang nakaraang mga tutorial. Ano ang kakaiba dito ay ang interfacing ng ATTINY at A6 GSM module gamit ang mga serial na komunikasyon.

www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…

Pagkatapos ng programa, binabasa ng ATTINY ang data ng temperatura mula sa isang thermometer sensor - Dallas 18B20- at pagkatapos ay nagpapadala ng data at mga utos sa pamamagitan ng serial na koneksyon sa module na A6 GSM na pagkatapos ay ipinapadala ito bilang isang teksto ng SMS sa iyong mobile / smart phone.

Narito ang kailangan mo:

1. USBASP serial / USB converter.

2. ATTINY 85.

3. Ai-Thinker A6 GSM module bersyon 6 (na may isang sim na mayroong mga kredito sa SMS).

4. 3.3v power supply ng breadboard para sa ATTINY85.

5. 3.3.v USB power supply para sa Ai-Thinker A6 GSM module.

6. sensor ng temperatura ng Dallas 18B20..

7. 4.7k risistor para sa sensor ng 18B20.

8. Breadboard at mga kable.

9. Arduino IDE (Gumamit ako ng bersyon 1.8.5. Para dito).

10. Windows X laptop (Gumamit ako ng bersyon 10) na may isang libreng usb port.

Hakbang 1: Pag-program ng ATTINY 85

Narito ang Arduino IDE code (Kailangan mong baguhin ang numero ng telepono kung saan mo nais ipadala ang SMS.)

# isama ang # isama ang # isama

// *** // *** Tukuyin ang mga pin ng RX at TX. Pumili ng anumang dalawang // *** mga pin na hindi nagamit. Subukang iwasan ang D0 (pin 5) // *** at D2 (pin 7) kung balak mong gamitin ang I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Tukuyin ang software based serial port. Gamit ang // *** pangalang Serial upang ang code ay maaaring magamit sa iba pang // *** platform na sumusuporta sa serial based hardware. Sa // *** chips na sumusuporta sa serial serial, sa // *** lang puna ang linya na ito. // ***

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 dalas na itinakda sa panloob na 8 MHz

// *** // *** I-pin kung saan nakakonekta ang data ng OneWire // *** wire. // *** # tukuyin ang ONE_WIRE_BUS 1

// *** // *** Mag-set up ng isang halimbawa ng oneWire upang makipag-usap sa anumang mga aparato ng OneWire // *** (hindi lamang mga Maxim / Dallas temperatura na IC). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Ipasa ang aming sangguniang oneWire sa Temperatura ng Dallas. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

walang bisa ang pag-setup () {// *** // *** Ipasimula ang Serial port // *** mySerial.begin (115200); pagkaantala (60000);

// *** Simulan ang library. _sensors.begin (); }

void loop () {

// *** // *** Kunin ang kasalukuyang temperatura at ipakita ito. // *** _sensors.requestTemperature (); pagkaantala (2000); dobleng tempC = _sensors.getTempCByIndex (0); dobleng tempF = _sensors.getTempFByIndex (0); // check for error - minsan sa simula, ipinapakita ang temp bilang 85C

kung (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Masyadong mainit");}}

walang bisa ang SMS_temp (dobleng mytemp, String myalert) {mySerial.println ("AT + CMGF = 1"); // nakatakda sa pagkaantala sa mode ng SMS (1000); mySerial.println ("AT + CMGF = 1"); // nakatakda sa pagkaantala sa mode ng SMS (1000); //mySerial.println("AT+CMGS=\"+Your NUMBER / ""); // itakda ang numero ng telepono (nakabalot sa dobleng mga quote) pagkaantala (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); pagkaantala (1000); mySerial.write (0x1A); // nagpapadala ng ctrl + z pagtatapos ng pagkaantala ng mensahe (1000); mySerial.write (0x0D); // Carriage Return in Hex pagkaantala (1000); mySerial.write (0x0A); pagkaantala (1000000); // 17 minuto - ayusin upang umangkop sa iyong sariling aplikasyon}

Buksan ang Arduino IDE na kapaligiran - Inilarawan ko kung paano hanapin ka sa detalyeng ito sa aking nakaraang itinuro na kanina ko pa binanggit.

Kakailanganin mo ang mga sumusunod na aklatan

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Susunod, i-configure ang mga pin ng RX at TX sa ATTINY85 na kailangan mong kumonekta sa A1 Thinker. Ang ATTINY 85 ay may 8 mga pin, apat sa bawat panig at nakahanay gamit ang tuldok sa ibabaw ng isang sanggunian. Ang pin 1 o RESET pin ay nasa tabi ng tuldok.

(sa kasong ito pinili ko ang Pin2 at 3 - Ang mga ito ay nasa parehong bahagi ng RESET pin na nasa tabi ng tuldok sa ibabaw ng ATTINY 85. Ang Pin 2 ay ang susunod na pin kasama mula sa RESET pin habang ang Pin 3 ay nasa pagitan ng Pin 2 at GROUND)

Susunod, kailangan mong i-configure ang temperatura sensor -

# tukuyin ang ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Susunod na i-set up ang software serial port

mySerial.begin (115200);

pagkaantala (60000);

at pagkatapos ay tawagan ang mga sensor gamit ang _sensors.begin ();

Susunod, mayroong loop, kung saan ang mga botohan sa paunang natukoy na oras, ay nagtatala ng temperatura at nagpapadala ng isang mensahe / alerto depende sa halaga. Gumagamit ito ng isang pagpapaandar na SMS_temp na kung saan ay kung saan mo rin itinakda ang tiyempo ng loop

void loop () {sensors.requestTemperature (); pagkaantala (2000);

dobleng tempC = _sensors.getTempCByIndex (0);

dobleng tempF = _sensors.getTempFByIndex (0);

kung (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}

kung (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Medyo Malamig");}

kung (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Sakto lang");}

kung (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Masyadong mainit");}

}

==============

Susunod, i-set up ang Arduino IDE upang maghanda para sa pag-upload sa ATTINY85.

Ang isang bilang ng mga bagay na dapat tandaan

1- Kung wala kang pamilya ng mga board ng ATTINY, idagdag ang sumusunod na url https://raw.githubusercontent.com/damellis/attiny/… sa File / Mga Kagustuhan / Karagdagang Mga Tagapamahala ng Boards URL, Susunod, sa loob ng Arduio IDE mag-click sa Tools / Board / Board Manager at hanapin ang ATTINY at i-install ang bagong board. Baguhin ang processor sa Attiny85.

Hakbang 2: Pag-upload ng Programa sa ATTINY85

Pag-upload ng Programa sa ATTINY85
Pag-upload ng Programa sa ATTINY85

Gayundin, sumangguni sa dati kong itinuro dito -

Ang ATTINY85 ay may dalawang mga mode, programa at pagpapatakbo mode, ayon sa pagkakabanggit.1. PROGRAMMING MODE Una, kilalanin ang mga pin sa ATTINY85. Upang magawa ito, hanapin ang maliit na bingaw sa ibabaw ng maliit na tilad na nasa tabi ng RST / RESET pin. Gamit ito bilang isang sanggunian, maaari mong makilala ang natitirang mga pin. Ang lahat ng impormasyong ito ay ibinibigay sa sheet ng data ng A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

Ang USBasp at ATTINY85 ay dapat na konektado tulad ng ipinakita sa imahe sa itaas.

Susunod, sa Arduino IDE, itakda ang programmer sa USBasp at ang dalas sa panloob na 8Mhz.

Ikonekta ang USBasp sa isang USB port sa iyong laptop (Sa Windows 10, kung wala kang USBasp driver na gamitin ang Zadig ayon sa website

Susunod, na konektado ang USBasp, pumili mula sa Arduino IDE Sketch / upload at inaasahan mong makita mo ang pag-usad ng pag-upload na ipinapakita sa mga pulang titik ng Arduino IDE at magtatapos sa avrdude tapos na. Salamat.

Anumang mga error sa yugtong ito ay usuall na nauugnay sa mga maluwag na cable o maling driver.

Hakbang 3: Pagpapatakbo ng Iyong Program

Pagpapatakbo ng Iyong Program
Pagpapatakbo ng Iyong Program
Pagpapatakbo ng Iyong Program
Pagpapatakbo ng Iyong Program
Pagpapatakbo ng Iyong Program
Pagpapatakbo ng Iyong Program

Una, isang bagay tungkol sa sensor ng thermometer ng Dallas 18b20. Mayroon itong 3 mga pin, Ground (G), data (D) at VCC tulad ng ipinakita sa imahe sa itaas. Para sa operasyon, kinakailangan nito ang bridging ng D at VCC na may 4.7k resistor. Ang G at VCC ay konektado sa kani-kanilang mga poste habang ang D ay konektado sa isang ATTINY 85, pin - [6] PB1, tulad ng naka-configure sa code.

Susunod, ikonekta ang ATTINY sa A6 GSM tulad ng sumusunod (at ipinakita sa itaas)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

at sa mismong A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Huwag kumonekta sa lupa !!!!!)

Patayin ngayon ang parehong mga aparato, at pagkatapos ng ilang segundo, pansamantalang pindutin ang A6 ground pin na may koneksyon sa A6 RST pin. Ang A6 ay papatayin at paandar at inaasahan ko, dapat kaagad makatanggap ng data ng temperatura sa iyong telepono.

Hakbang 4: Konklusyon

Ang itinuturo na ito ay maaaring mukhang medyo simple ngunit ang ideya ay upang ilarawan kung ano ang maaaring makamit sa mga bahagi ng mababang gastos. Malinaw na, kung mayroon kang pag-access sa wi-fi o isang BLE hub kung gayon mayroong higit na naaangkop na mga solusyon.

Hindi ko natakpan ang iba pang pagpapaandar tulad ng pagpapadala ng isang SMS SA telepono upang simulan ang pagrekord / paghahatid ng temperatura atbp.

Inirerekumendang: