Satura rādītājs:

SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM: 5 soļi
SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM: 5 soļi

Video: SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM: 5 soļi

Video: SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM: 5 soļi
Video: Прошу прочитать важное смс от девушки! ч. 3 🤪 #vasalamov #short 2024, Jūlijs
Anonim
SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM
SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM

Šī pamācība parāda, kā uzņemt temperatūru no vienkārša temperatūras sensora un nosūtīt to īsziņā uz mobilo tālruni. Lai vienkāršotu lietas, es nosūtu temperatūru ar noteiktu intervālu, bet es arī parādīju, kā to var izdarīt tikai ar izņēmumu / brīdinājumiem. Aparatūras izmaksas ir ļoti zemas, mazāk par 10 dolāriem, lai gan ir jāņem vērā atkārtotas īsziņu izmaksas.

Smago celšanu veic vienkāršais, bet jaudīgais ATTINY 85, kas uztver temperatūras datus un pēc tam aktivizē SMS, kas jānosūta caur AI-Thinker A6 GSM moduli.

Īsāk sakot, jūs rakstāt ATTINY85 kodu Arduino IDE vidē un ierakstāt to ATTINY85, izmantojot USBASP sērijas/USB pārveidotāju. Divās iepriekšējās apmācībās esmu apskatījis AI-Thinker A6 GSM moduļa un Arduino IDE iestatīšanu. Šeit atšķirība ir ATTINY un A6 GSM moduļa saskarne, izmantojot seriālos sakarus.

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

Pēc programmēšanas ATTINY nolasa temperatūras datus no termometra sensora - Dallas 18B20- un pēc tam nosūta datus un komandas ar sērijveida savienojumu uz A6 GSM moduli, kas pēc tam nosūta tos kā SMS tekstu uz jūsu mobilo / viedtālruni.

Lūk, kas jums nepieciešams:

1. USBASP sērijas/USB pārveidotājs.

2. ATTIJS 85.

3. AI-Thinker A6 GSM moduļa 6. versija (ar sim, kam ir SMS kredīti).

4. 3.3V maizes dēļa barošanas avots ATTINY85.

5. 3.3.v USB barošanas avots AI-Thinker A6 GSM modulim.

6. Dallas 18B20 temperatūras sensors..

7. 4.7k rezistors sensoram 18B20.

8. Maizes dēlis un kabeļi.

9. Arduino IDE (šim es izmantoju versiju 1.8.5.).

10. Windows X klēpjdators (es izmantoju 10. versiju) ar bezmaksas USB portu.

1. darbība: ATTINY 85 programmēšana

Šeit ir Arduino IDE kods (jums būs jāmaina tālruņa numurs, uz kuru vēlaties nosūtīt SMS.)

#iekļaut #iekļaut #iekļaut

// *** // *** Definējiet RX un TX tapas. Izvēlieties divas neizmantotas // *** tapas. Mēģiniet izvairīties no D0 (5. tapa) // *** un D2 (7. tapa), ja plānojat izmantot I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Definējiet programmatūras seriālo portu. Izmantojot // *** nosaukumu Serial, lai kodu varētu izmantot citās // *** platformās, kas atbalsta uz aparatūru balstītu sēriju. Par // *** mikroshēmām, kas atbalsta aparatūras sēriju, vienkārši // *** komentējiet šo rindu. // ***

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 frekvence iestatīta iekšējā 8 MHz

// *** // *** Piespraude, kurai ir pievienots OneWire datu // *** vads. // *** #define ONE_WIRE_BUS 1

// *** // *** Iestatiet oneWire instanci, lai sazinātos ar visām OneWire // *** ierīcēm (ne tikai Maxim/Dallas temperatūras IC). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Norādiet mūsu OneWire atsauci uz Dalasas temperatūru. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Inicializējiet seriālo portu // *** mySerial.begin (115200); kavēšanās (60000);

// *** Palaidiet bibliotēku. _sensors.begin (); }

void loop () {

// *** // *** Iegūstiet pašreizējo temperatūru un parādiet to. // *** _sensors.requestTemperatures (); kavēšanās (2000); dubultā tempC = _sensors.getTempCByIndex (0); dubultā tempF = _sensors.getTempFByIndex (0); // pārbaudiet, vai nav kļūdu - dažreiz sākumā, temperatūra tiek parādīta kā 85C

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Pārāk silts");}}

void SMS_temp (dubults mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // iestatīts uz SMS režīma aizkavi (1000); mySerial.println ("AT+CMGF = 1"); // iestatīts uz SMS režīma aizkavi (1000); //mySerial.println("AT+CMGS=\"+JŪSU NUMURS / ""); // iestatiet tālruņa numura (iesaiņots pēdiņās) aizkavi (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); kavēšanās (1000); mySerial.write (0x1A); // nosūta ctrl+z ziņojuma aizkaves beigas (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); kavēšanās (1000000); // 17 minūtes - pielāgojieties savai lietojumprogrammai}

Atveriet Arduino IDE vidi - iepriekšējā pamācībā, uz kuru es minēju, esmu detalizēti aprakstījis, kā jūs šajā jautājumā atrast.

Jums būs nepieciešamas šādas bibliotēkas

SoftwareSerial.h

OneWire.h

Dalasas temperatūra.h

Pēc tam konfigurējiet RX un TX tapas ATTINY85, kas nepieciešams, lai izveidotu savienojumu ar A1 Thinker. ATTINY 85 ir 8 tapas, četras katrā pusē, un tas ir izlīdzināts, izmantojot punktu uz virsmas, kas ir atsauce. Blakus šim punktam ir 1. tapa vai RESET tapa.

(šajā gadījumā es izvēlējos Pin2 un 3 - tie atrodas vienā pusē ar RESET tapu, kas atrodas blakus punktam uz ATTINY 85 virsmas. 2. tapa ir nākamā tapa no RESET tapas, bet 3. tapa ir starp PIN 2 un ZEME)

Tālāk jums jākonfigurē temperatūras sensors -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Tālāk iestatiet programmatūras seriālo portu

mySerial.begin (115200);

kavēšanās (60000);

un pēc tam izsauciet sensorus ar _sensors.begin ();

Tālāk ir cilpa, kas veic aptauju iepriekš noteiktā laikā, reģistrē temperatūru un nosūta ziņojumu / brīdinājumu atkarībā no vērtības. Tas izmanto funkciju SMS_temp, kurā arī tiek iestatīts cikla laiks

void loop () {sensors.requestTemperatures (); kavēšanās (2000);

dubultā tempC = _sensors.getTempCByIndex (0);

dubultā tempF = _sensors.getTempFByIndex (0);

ja (tempC <= 14) {SMS_temp (tempC, "BĪSTAMI auksts");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Diezgan auksts");}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Pārāk silts");}

}

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

Pēc tam iestatiet Arduino IDE, lai sagatavotos augšupielādei ATTINY85.

Jāatzīmē vairākas lietas

1- Ja jums nav ATTINY dēļu saimes, pievienojiet šo URL https://raw.githubusercontent.com/damellis/attiny/… sadaļā Fails/Preferences/Papildu dēļu pārvaldnieka URL, Pēc tam Arduio IDE ietvaros noklikšķiniet uz Tools/Board/Board Manager un atrodiet ATTINY un instalējiet jauno dēli. Nomainiet procesoru uz Attiny85.

2. darbība. Programmas augšupielāde ATTINY85

Programmas augšupielāde ATTINY85
Programmas augšupielāde ATTINY85

Skatiet arī manu iepriekšējo pamācību par šo-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 ir attiecīgi divi režīmi, programmēšanas un darbības režīms.1. PROGRAMMĒŠANAS REŽĪMS Vispirms nosakiet ATTINY85 tapas. Lai to izdarītu, atrodiet mazo iecirtumu uz mikroshēmas virsmas, kas atrodas blakus RST/RESET tapai. Izmantojot to kā atskaites punktu, jūs varat noteikt pārējās tapas. Visa šī informācija ir sniegta A85 datu lapā -https://www.microchip.com/downloads/en/DeviceDoc/At…

USBasp un ATTINY85 ir jāpievieno, kā parādīts attēlā iepriekš.

Pēc tam Arduino IDE iestatiet programmētāju uz USBasp un frekvenci uz iekšējo 8Mhz.

Pievienojiet USBasp klēpjdatora USB portam (operētājsistēmā Windows 10, ja jums nav USBasp draivera, izmantojiet Zadig, kā norādīts vietnē

Pēc tam, pievienojot USBasp, izvēlieties no Arduino IDE skices/augšupielādes, un, cerams, jums vajadzētu redzēt augšupielādes gaitu, kas parādīta ar Arduino IDE sarkanajiem burtiem un beidzas ar paveikto. Paldies.

Visas kļūdas šajā posmā parasti ir saistītas ar vaļīgiem kabeļiem vai nepareizu draiveri.

3. darbība. Programmas palaišana

Programmas palaišana
Programmas palaišana
Programmas palaišana
Programmas palaišana
Programmas palaišana
Programmas palaišana

Pirmkārt, kaut kas par Dallas 18b20 termometra sensoru. Tam ir 3 tapas, zemējums (G), dati (D) un VCC, kā parādīts attēlā iepriekš. Darbībai nepieciešams savienot D un VCC ar 4,7 k rezistoru. G un VCC ir savienoti ar attiecīgajiem poliem, bet D ir pievienots ATTINY 85, pin - [6] PB1, kā konfigurēts kodā.

Pēc tam pievienojiet ATTINY A6 GSM šādi (un parādīts iepriekš)

ATTINY TX A6 UART_RXd ATTINY RX A6 UART_TXd

ATTINY GND A6 GND

un pašā A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (vēl nepievienojiet zemei !!!!!)

Tagad ieslēdziet abas ierīces un pēc dažām sekundēm īslaicīgi pieskarieties A6 zemējuma tapai ar kabeli, kas pievienots A6 RST tapai. A6 izslēgsies un ieslēgsies, un cerams, ka drīzumā tālrunī jāsaņem temperatūras dati.

4. solis. Secinājums

Šī pamācība var šķist diezgan vienkārša, taču ideja ir ilustrēt to, ko var sasniegt ar lētām sastāvdaļām. Acīmredzot, ja jums ir piekļuve Wi-Fi vai BLE centrmezglam, ir piemērotāki risinājumi.

Es neattiecos uz citām funkcijām, piemēram, SMS nosūtīšanu uz tālruni, lai sāktu temperatūras ierakstīšanu / pārraidi utt.

Ieteicams: