Satura rādītājs:
- 1. darbība: ATTINY 85 programmēšana
- 2. darbība. Programmas augšupielāde ATTINY85
- 3. darbība. Programmas palaišana
- 4. solis. Secinājums
Video: SMS īsziņu brīdinājumi no ATTINY85 un A1 GSM: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šī 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
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
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:
Īsziņu sūtīšana, ja tiek konstatēts dūms (Arduino+GSM SIM900A: 5 soļi
Īsziņu sūtīšana, ja tiek konstatēts dūms (Arduino+GSM SIM900A: Sveiki visi! Pirmajā pamācībā es izveidošu gāzes trauksmi, kas nosūta ziņojumu lietotājam, ja tiek konstatēts piesārņojums. Tas būs vienkāršs prototips, izmantojot Arduino, GSM moduli un elektroķīmiju dūmu sensors. Nākotnē to var paplašināt līdz
Īsziņu sūtīšana ar Arduino -- TC35 GSM modulis: 5 soļi
Īsziņu sūtīšana ar Arduino || TC35 GSM modulis: Šajā mazajā projektā es jums parādīšu, kā pareizi lietot TC35 GSM moduli un kā to izmantot kopā ar Arduino Uno, lai ar to nosūtītu SMS
E-pasta brīdinājumi par vibrāciju un temperatūru, izmantojot mezglu RED: 33 soļi
E-pasta brīdinājumi par vibrācijām un temperatūru, izmantojot mezglu RED: Iepazīstinām ar NCD liela attāluma IoT rūpniecisko bezvadu vibrācijas un temperatūras sensoru, kas var lepoties līdz 2 jūdžu attālumam, izmantojot bezvadu tīkla tīkla struktūru. Ietverot precīzu 16 bitu vibrācijas un temperatūras sensoru, šī ierīce ir
Augu uzraudzība un brīdinājumi ar ESP8266 un AskSensors IoT Cloud: 6 soļi
Augu uzraudzība un brīdinājumi ar ESP8266 un AskSensors IoT Cloud: Šī projekta mērķis ir izveidot viedu augu uzraudzības sistēmu, izmantojot ESP8266 un AskSensors IoT platformu. Šo sistēmu var izmantot, lai izsekotu augsnes mitruma līmenim, lai sniegtu objektīvus kritērijus apūdeņošanas lēmumiem. kas palīdz nodrošināt apūdeņošanu
Viļņu lampa - laika apstākļi un brīdinājumi: 7 soļi (ar attēliem)
Viļņu lampa - laika apstākļi un brīdinājumi: Pārlūkojot lietu universitāti, es redzēju šo absolūti pārsteidzošo viļņu lampu, un man tas bija jāveido. https://www.thingiverse.com/thing:774456 Lampa ir ļoti labi izstrādāta un izdrukā bez jebkādiem balstiem (jāizdrukā uz sāniem)