Përmbajtje:

Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1: 5 hapa
Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1: 5 hapa

Video: Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1: 5 hapa

Video: Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1: 5 hapa
Video: Autoshkolla dhe Kursi i Patentës, Sinjalet Urdhëruese Ndaluese, Mësimi 7 2024, Korrik
Anonim
Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1
Sinjalizimet e Tempit të Tekstit SMS Nga një GSM ATTINY85 dhe A1

Ky udhëzues ju tregon se si të kapni temperaturën nga një sensor i thjeshtë i temperaturës dhe ta dërgoni atë me SMS në telefonin tuaj celular. Për të thjeshtuar gjërat, unë dërgoj temperaturën në një interval të caktuar, por gjithashtu tregoj se si kjo mund të bëhet vetëm me përjashtime / paralajmërime. Pajisja është me kosto shumë të ulët, më pak se 10 dollarë, megjithëse ka kosto të përsëritura të sms që duhen marrë parasysh.

Ngarkesa e rëndë ndërmerret nga ATTINY 85 e thjeshtë por e fuqishme e cila kap të dhënat e temperaturës dhe më pas shkakton një SMS që të dërgohet përmes një moduli AI-Thinker A6 GSM.

Me pak fjalë, ju shkruani kodin ATTINY85 në mjedisin Arduino IDE dhe e digjni atë në ATTINY85 duke përdorur një serial USBASV/konvertues USB. Unë kam mbuluar ngritjen e modulit AI-Thinker A6 GSM dhe Arduino IDE në dy mësime të mëparshme. Ajo që është e ndryshme këtu është ndërlidhja e modulit ATTINY dhe A6 GSM duke përdorur komunikimet serike.

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

Pas programimit, ATTINY lexon të dhënat e temperaturës nga një sensor termometri - Dallas 18B20- dhe më pas i dërgon të dhënat dhe komandat me anë të lidhjes serike në modulin A6 GSM i cili më pas i dërgon ato si një tekst SMS në celularin / telefonin tuaj inteligjent.

Ja çfarë ju nevojitet:

1. Konvertuesi USB serik/USB.

2. ATTINIA 85.

3. Moduli i AI-Thinker A6 GSM 6 (me një sim që ka kredite SMS).

4. Furnizimi me energji 3.3v i bukës për ATTINY85.

5. 3.3.v Furnizimi me energji USB për modulin AI-Thinker A6 GSM.

6. Sensori i temperaturës Dallas 18B20..

7. Rezistencë 4.7k për sensorin 18B20.

8. Breadboard dhe kabllo.

9. Arduino IDE (Kam përdorur versionin 1.8.5. Për këtë).

10. Laptopi Windows X (kam përdorur versionin 10) me një port usb falas.

Hapi 1: Programimi i ATTINY 85

Këtu keni kodin Arduino IDE (Ju do të duhet të ndryshoni numrin e telefonit në të cilin dëshironi të dërgoni SMS.)

#përfshi #përfshi #përfshi

// *** // *** Përcaktoni kunjat RX dhe TX. Zgjidhni çdo dy kunja // *** që janë të papërdorura. Mundohuni të shmangni D0 (pin 5) // *** dhe D2 (pin 7) nëse planifikoni të përdorni I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Përcaktoni portën serike të bazuar në softuer. Përdorimi i emrit // *** Serial në mënyrë që kodi të mund të përdoret në platforma të tjera // *** që mbështesin serialin e bazuar në harduer. Në çipat // *** që mbështesin serinë e harduerit, thjesht // *** komentoni këtë linjë. // ***

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) // *** // Frekuenca ATTINY 85 e vendosur në 8 MHz të brendshme

// *** // *** Kunja në të cilën është lidhur tela OneWire // ***. // *** #përcakto ONE_WIRE_BUS 1

// *** // *** Vendosni një shembull oneWire për të komunikuar me çdo pajisje OneWire // *** (jo vetëm IC -të e temperaturës Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Kaloni referencën tonë në OneWire në Temperaturën e Dallasit. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Filloni portën Seriale // *** mySerial.begin (115200); vonesë (60000);

// *** Filloni bibliotekën. _sensors.begin (); }

lak void () {

// *** // *** Merrni temperaturën aktuale dhe shfaqeni atë. // *** _sensors.requestTemperatura (); vonesa (2000); temp e dyfishtëC = _sensors.getTempCByIndex (0); temp i dyfishtë = _sensors.getTempFByIndex (0); // kontrolloni për gabime - ndonjëherë në fillim, temperatura tregohet si 85C

nëse (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Shumë e ngrohtë");}}

SMS_temp i pavlefshëm (mytemp dyfishtë, String myalert) {mySerial.println ("AT+CMGF = 1"); // vendosur në vonesën e modalitetit SMS (1000); mySerial.println ("AT+CMGF = 1"); // vendosur në vonesën e modalitetit SMS (1000); //mySerial.println("AT+CMGS=\"+ NUMRI YT / ""); // vendosni numrin e telefonit (të mbështjellë me thonjëza të dyfishta) vonesë (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); vonesa (1000); mySerial.write (0x1A); // dërgon ctrl+z fundin e vonesës së mesazhit (1000); mySerial.write (0x0D); // Kthimi i Transportit në Vonesë Hex (1000); mySerial.write (0x0A); vonesë (1000000); // 17 minuta - përshtateni për t'iu përshtatur aplikacionit tuaj}

Hapni mjedisin Arduino IDE - Unë kam përshkruar se si t’ju gjej në këtë mënyrë në detaje në udhëzimet e mia të mëparshme, për të cilat kam aluduar më herët.

Ju do të keni nevojë për bibliotekat e mëposhtme

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Tjetra, konfiguroni kunjat RX dhe TX në ATTINY85 të cilat ju nevojiten për t'u lidhur me Mendimtarin A1. ATTINY 85 ka 8 kunja, katër në secilën anë dhe është rreshtuar duke përdorur pikën në sipërfaqe si një referencë. Pin 1 ose RESET pin është pranë kësaj pike.

(në këtë rast unë zgjodha Pin2 dhe 3 - Këto janë në të njëjtën anë me kunjin RESET i cili është pranë pikës në sipërfaqen e ATTINY 85. Pin 2 është kunja tjetër së bashku me kunjin RESET ndërsa Pin 3 është midis Pin 2 dhe GROUND)

Tjetra, duhet të konfiguroni sensorin e temperaturës -

#përcakto ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Pastaj vendosni portën serike të softuerit

mySerial.begin (115200);

vonesë (60000);

dhe pastaj telefononi sensorët me _sensors.begin ();

Tjetra, ekziston lak, i cili sondazhon në një kohë të paracaktuar, regjistron temperaturën dhe dërgon një mesazh / alarm në varësi të vlerës. Ai përdor një funksion SMS_temp i cili gjithashtu është vendi ku vendosni kohën e lakut

void loop () {sensorë.kërkoTemperaturat (); vonesa (2000);

temp e dyfishtëC = _sensors.getTempCByIndex (0);

temp i dyfishtë = _sensors.getTempFByIndex (0);

nëse (tempC <= 14) {SMS_temp (tempC, "FOTO RREZIKSHME");}

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

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

nëse (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Shumë e ngrohtë");}

}

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

Tjetra, vendosni Arduino IDE për t'u përgatitur për ngarkim në ATTINY85.

Një numër gjërash që duhen vënë re

1- Nëse nuk keni bordet e familjes ATTINY, shtoni url-në e mëposhtme https://raw.githubusercontent.com/damellis/attiny/… në File/Preferences/Additional Boards Manager URL, Tjetra, brenda Arduio IDE klikoni në Tools/Board/Board Manager dhe kërkoni ATTINY dhe instaloni bordin e ri. Ndryshoni procesorin në Attiny85.

Hapi 2: Ngarkimi i Programit në ATTINY85

Ngarkimi i Programit në ATTINY85
Ngarkimi i Programit në ATTINY85

Gjithashtu, referojuni udhëzimit tim të mëparshëm për këtë-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 ka dy mënyra, përkatësisht mënyrën e programimit dhe funksionimit. M MONYRA E PROGRAMIMIT Së pari, identifikoni kunjat në ATTINY85. Për ta bërë këtë, gjeni shkallën e vogël në sipërfaqen e çipit e cila është pranë kunjit RST/RESET. Duke përdorur këtë si një pikë referimi, ju mund të identifikoni pjesën tjetër të kunjave. I gjithë ky informacion jepet në fletën e të dhënave A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp dhe ATTINY85 duhet të lidhen siç tregohet në imazhin e mësipërm.

Tjetra, në Arduino IDE, vendosni programuesin në USBasp dhe frekuencën në 8Mhz të brendshme.

Lidhni USBasp me një port USB në laptopin tuaj (Në Windows 10, nëse nuk keni drejtuesin USBasp përdorni Zadig sipas uebfaqes

Tjetra, me USBasp të lidhur, zgjidhni nga Arduino IDE Sketch/upload dhe shpresojmë se do të shihni përparimin e ngarkimit të treguar me shkronja të kuqe të Arduino IDE dhe duke përfunduar me avrdude done. Faleminderit.

Çdo gabim në këtë fazë shoqërohet zakonisht me kabllo të lirshëm ose drejtues të gabuar.

Hapi 3: Drejtimi i programit tuaj

Drejtimi i Programit tuaj
Drejtimi i Programit tuaj
Drejtimi i Programit tuaj
Drejtimi i Programit tuaj
Drejtimi i Programit tuaj
Drejtimi i Programit tuaj

Së pari, diçka në lidhje me sensorin e termometrit Dallas 18b20. Ka 3 kunja, Ground (G), të dhëna (D) dhe VCC siç tregohet në imazhin e mësipërm. Për funksionim, ajo kërkon tejkalimin e D dhe VCC me një rezistencë 4.7k. G dhe VCC janë të lidhura me polet përkatëse ndërsa D është i lidhur me një ATTINY 85, pin - [6] PB1, siç është konfiguruar në kod.

Tjetra, lidhni ATTINY me A6 GSM si më poshtë (dhe treguar më lart)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

dhe në vetë A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Mos u lidhni ende me tokën !!!!!)

Tani ndizni të dyja pajisjet dhe pas disa sekondash, prekni përkohësisht pinin e tokëzimit A6 me kabllon të lidhur me kunjin A6 RST. A6 do të fiket dhe ndizet dhe me shpresë, së shpejti do të merrni të dhëna të temperaturës në telefonin tuaj.

Hapi 4: Përfundimi

Ky udhëzues mund të duket mjaft i thjeshtë, por ideja është të ilustroni atë që mund të arrihet me përbërës me kosto të ulët. Natyrisht, nëse keni qasje në wi-fi ose një shpërndarës BLE, atëherë ka zgjidhje më të përshtatshme.

Unë nuk mbulova funksione të tjera të tilla si dërgimi i një SMS në telefon për të filluar regjistrimin / transmetimin e temperaturës etj.

Recommended: