Kazalo:
- 1. korak: Programiranje ATTINY 85
- 2. korak: Nalaganje programa v ATTINY85
- 3. korak: Zaženite program
- 4. korak: Zaključek
Video: Opozorila SMS o tempni besedi iz GSM ATTINY85 in A1: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta navodila vam pokažejo, kako zajeti temperaturo s preprostim temperaturnim senzorjem in jo poslati po SMS -u na svoj mobilni telefon. Za poenostavitev pošiljam temperaturo v določenem intervalu, pokažem pa tudi, kako je to mogoče narediti le z izjemo / opozorili. Strojna oprema je zelo nizka, manj kot 10 dolarjev, čeprav je treba upoštevati ponavljajoče se stroške sms -a.
Težko dviganje opravi preprost, a zmogljiv ATTINY 85, ki zajame podatke o temperaturi in nato sproži pošiljanje SMS-a prek GSM modula AI-Thinker A6.
Skratka, kodo ATTINY85 napišete v okolje Arduino IDE in jo zapisujete na ATTINY85 s serijskim/USB pretvornikom USBASP. V dveh prejšnjih vadnicah sem obravnaval nastavitev modula AI-Thinker A6 GSM in Arduino IDE. Tu je drugačen vmesnik modulov GSM ATTINY in A6 z uporabo serijske komunikacije.
www.instructables.com/id/How-to-Send-an-SM…
Po programiranju naprava ATTINY prebere temperaturne podatke s termometrskega senzorja - Dallas 18B20-, nato pa podatke in ukaze po serijski povezavi pošlje v modul A6 GSM, ki jih nato pošlje kot besedilo SMS na vaš mobilni / pametni telefon.
Tukaj potrebujete:
1. Serijski/USB pretvornik USBASP.
2. ATTINY 85.
3. AI-Thinker A6 GSM modul različice 6 (s sim, ki ima kredite SMS).
4. Napajanje 3.3V za matično ploščo za ATTINY85.
5. 3.3.v Napajanje USB za modul AI-Thinker A6 GSM.
6. Senzor temperature Dallas 18B20..
7. 4,7 k upor za senzor 18B20.
8. Ohišje in kabli.
9. Arduino IDE (za to sem uporabil različico 1.8.5.).
10. Prenosni računalnik Windows X (uporabil sem različico 10) z brezplačnimi vrati USB.
1. korak: Programiranje ATTINY 85
Tukaj je koda Arduino IDE (spremeniti boste morali telefonsko številko, na katero želite poslati SMS.)
#include #include #include
// *** // *** Določite zatiče RX in TX. Izberite dva neuporabljena zatiča // ***. Poskusite se izogniti D0 (pin 5) // *** in D2 (pin 7), če nameravate uporabljati I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Določite programska serijska vrata. Z uporabo // *** imena Serial, tako da se lahko koda uporablja na drugih // *** platformah, ki podpirajo serijsko serijsko opremo. Na // *** čipih, ki podpirajo serijsko opremo strojne opreme, samo // *** komentirajte to vrstico. // ***
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 frekvenca nastavljena na notranjih 8 MHz
// *** // *** Pin, na katerega je priključena podatkovna žica OneWire // ***. // *** #define ONE_WIRE_BUS 1
// *** // *** Nastavite primerek oneWire za komunikacijo s poljubnimi napravami OneWire // *** (ne samo z IC -ji temperature Maxim/Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Prenesite našo referenco oneWire na temperaturo v Dallasu. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inicializirajte serijska vrata // *** mySerial.begin (115200); zamuda (60000);
// *** Zaženite knjižnico. _sensors.begin (); }
void loop () {
// *** // *** Pridobite trenutno temperaturo in jo prikažite. // *** _sensors.requestTemperatures (); zamuda (2000); dvojni tempC = _sensors.getTempCByIndex (0); dvojni tempF = _sensors.getTempFByIndex (0); // preverjanje napak - včasih pri zagonu je temperatura prikazana kot 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Preveč toplo");}}
void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // nastavljeno na zakasnitev načina SMS (1000); mySerial.println ("AT+CMGF = 1"); // nastavljeno na zakasnitev načina SMS (1000); //mySerial.println("AT+CMGS=\"+ VAŠA ŠTEVILKA / ""); // nastavimo zakasnitev telefonske številke (zavite v dvojne narekovaje) (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); zamuda (1000); mySerial.write (0x1A); // pošlje ctrl+z konec zamude sporočila (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); zamuda (1000000); // 17 minut - prilagodite se svoji aplikaciji}
Odprite okolje IDE Arduino - podrobno sem opisal, kako se tega izogniti, v prejšnjih navodilih, na katera sem že prej omenil.
Potrebovali boste naslednje knjižnice
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Nato konfigurirajte zatiče RX in TX na ATTINY85, ki jih potrebujete za povezavo z A1 Thinkerjem. ATTINY 85 ima 8 zatičev, po štiri na vsaki strani in je poravnan s piko na površini kot referenco. Pin 1 ali RESET pin je poleg pike.
(v tem primeru sem izbral Pin2 in 3 - Ti sta na isti strani kot zatič RESET, ki je poleg pike na površini ATTINY 85. Pin 2 je naslednji zatič vzdolž zatiča RESET, medtem ko je Pin 3 med zatičem 2 in OZEMLJE)
Nato morate nastaviti temperaturni senzor -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Nato nastavite serijska vrata programske opreme
mySerial.begin (115200);
zamuda (60000);
in nato pokličite senzorje z _sensors.begin ();
Nato sledi zanka, ki po vnaprej določenem času poizveduje, zabeleži temperaturo in pošlje sporočilo / opozorilo, odvisno od vrednosti. Uporablja funkcijo SMS_temp, kjer prav tako nastavite čas zanke
void loop () {sensors.requestTemperatures (); zamuda (2000);
dvojni tempC = _sensors.getTempCByIndex (0);
dvojni tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "NEVARNO Hladno");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Precej hladno");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp ravno prav");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Preveč toplo");}
}
==============
Nato nastavite Arduino IDE, da se pripravi na nalaganje v ATTINY85.
Opozoriti je treba na številne stvari
1- Če nimate družine plošč ATTINY, dodajte naslednji URL https://raw.githubusercontent.com/damellis/attiny/… v URL Datoteka/Nastavitve/Dodatni upravitelji plošč, Nato v Arduio IDE kliknite Tools/Board/Board Manager in poiščite ATTINY ter namestite novo ploščo. Procesor spremenite v Attiny85.
2. korak: Nalaganje programa v ATTINY85
Glej tudi moja prejšnja navodila o tem-https://www.instructables.com/id/15-Dollar-Attiny8…
ATTINY85 ima dva načina, način programiranja in delovanja. NAČIN PROGRAMIRANJA Najprej identificirajte zatiče na ATTINY85. Če želite to narediti, poiščite majhno zarezo na površini čipa, ki je poleg zatiča RST/RESET. Če to uporabite kot referenčno točko, lahko prepoznate ostale zatiče. Vse te informacije so na voljo v podatkovnem listu A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
USBasp in ATTINY85 morata biti priključena, kot je prikazano na zgornji sliki.
Nato v Arduino IDE nastavite programer na USBasp in frekvenco na internih 8 Mhz.
Priključite USBasp v vrata USB na prenosnem računalniku (v sistemu Windows 10, če nimate gonilnika USBasp, uporabite Zadig na spletnem mestu
Nato, ko je priključen USBasp, izberite skico/nalaganje Arduino IDE in upajmo, da bi morali videti napredek nalaganja, ki je prikazan z rdečimi črkami Arduino IDE in se konča z avrdude. Hvala vam.
Vse napake na tej stopnji so običajno povezane z ohlapnimi kabli ali napačnim gonilnikom.
3. korak: Zaženite program
Najprej nekaj o senzorju termometra Dallas 18b20. Ima 3 zatiče, ozemljitev (G), podatke (D) in VCC, kot je prikazano na zgornji sliki. Za delovanje potrebuje premostitev D in VCC z uporom 4,7 k. G in VCC sta povezana na ustrezna pola, D pa na ATTINY 85, pin - [6] PB1, kot je nastavljeno v kodi.
Nato priključite ATTINY na A6 GSM na naslednji način (in prikazano zgoraj)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
in na samem A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (še ne priključite na zemljo !!!!!)
Zdaj vklopite obe napravi in se po nekaj sekundah začasno dotaknite ozemljitvenega zatiča A6 s kablom, priključenim na zatič A6 RST. A6 se bo izklopil in vklopil, upam, da boste kmalu prejeli podatke o temperaturi v telefon.
4. korak: Zaključek
To navodilo se morda zdi precej preprosto, vendar je ideja ponazoriti, kaj je mogoče doseči z nizkimi stroški. Očitno je, če imate dostop do wi-fi ali vozlišča BLE, obstajajo ustreznejše rešitve.
Nisem zajel drugih funkcij, kot je pošiljanje SMS -a na telefon za začetek snemanja / prenosa temperature itd.
Priporočena:
Zgradite lonec za samostojno zalivanje z WiFi -jem - samodejno zaliva rastline in pošilja opozorila, ko je vode malo: 19 korakov
Zgradite lonec za samostojno zalivanje z WiFi -jem - samodejno zalivajte rastline in pošiljajte opozorila, ko je vode malo: ta vadnica vam pokaže, kako zgraditi prilagojen sadilnik za samo zalivanje, povezan s WiFi -jem, z uporabo starega sadilnika za vrt, koša za smeti, nekaj lepila in samoportreta Komplet za sestavljanje lončkov za zalivanje iz Adosia
Arduino push opozorila za zvonec na vratih, alarm za vlom, alarm za dim itd.: 8 korakov
Arduino potisna opozorila za zvonec na vratih, alarm za vlom, alarm za dim itd.: Obvestila o IoT z zvonca na vratih, alarm za vlom, alarme za dim itd. Z uporabo Arduino Uno in Ethernet ščita. Vse podrobnosti o moji spletni strani tukaj O Arduino Push Alert Box uporablja Arduino Uno in Ethernet Shield na osnovi čipa Wiznet W5100 za
E-poštna opozorila o vibracijah in temperaturi z uporabo Node-RED: 33 korakov
Opozorila o vibracijah in temperaturi po e-pošti z uporabo Node-RED: Predstavljamo NCD-jev brezžični industrijski brezžični senzor za vibracije in temperaturo IoT, ki se ponaša z uporabo brezžične mrežne strukture do 2 milj. Ta naprava vključuje natančen 16-bitni senzor vibracij in temperature, ki
Nočna lučka opozorila o polnjenju Arduino: 11 korakov
Nočna lučka za opozarjanje na polnjenje Arduino: razred in ime: 9A Vivian Ting Uvod: Opozorilna lučka za polnjenje je kombinacija dveh različnih naprav, ki skupaj povezujeta opozorilno napravo za polnjenje in nočno luč. Ker mnoge ljudi, ki jih poznam v svoji okolici, motijo p
Nadzor rastlin in opozorila z oblakom stvari ESP8266 in AskSensors IoT: 6 korakov
Spremljanje rastlin in opozorila z ESP8266 in oblakom AskSensors IoT: Ta projekt je namenjen izgradnji pametnega sistema za spremljanje rastlin z uporabo ESP8266 in platforme IoT AskSensors. Ta sistem se lahko uporablja za sledenje ravni vlažnosti tal za zagotavljanje objektivnih meril za namakalne odločitve. ki pomagajo zagotoviti namakanje