Tartalomjegyzék:
- 1. lépés: Az ATTINY 85 programozása
- 2. lépés: A program feltöltése az ATTINY85 -re
- 3. lépés: A program futtatása
- 4. lépés: Következtetés
Videó: SMS szöveges figyelmeztetések ATTINY85 és A1 GSM -ről: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az útmutató megmutatja, hogyan rögzítheti a hőmérsékletet egy egyszerű hőmérséklet -érzékelőről, és elküldheti SMS -ben a mobiltelefonjára. Az egyszerűség kedvéért a beállított időközönként elküldöm a hőmérsékletet, de azt is megmutatom, hogy ez csak kivétel / riasztások alapján lehetséges. A hardver nagyon alacsony költségű, kevesebb, mint 10 dollár, bár figyelembe kell venni az ismétlődő sms -költségeket.
A nehéz emelést az egyszerű, de erőteljes ATTINY 85 végzi, amely rögzíti a hőmérsékleti adatokat, majd elindít egy SMS-t az AI-Thinker A6 GSM modulon keresztül.
Röviden, írja be az ATTINY85 kódot az Arduino IDE környezetbe, és égesse el az ATTINY85 kódon egy USBASP soros/USB átalakító segítségével. Két korábbi oktatóanyagban foglalkoztam az AI-Thinker A6 GSM modul és az Arduino IDE beállításával. Ami itt más, az az ATTINY és az A6 GSM modul interfésze soros kommunikáció használatával.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
A programozás után az ATTINY beolvassa a hőmérsékleti adatokat a Dallas 18B20 hőmérő érzékelőjéből, majd soros kapcsolaton keresztül elküldi az adatokat és parancsokat az A6 GSM modulhoz, amely ezt követően SMS -ben elküldi a mobil / okostelefonra.
Erre van szüksége:
1. USBASP soros/USB átalakító.
2. ATTINY 85.
3. AI-Thinker A6 GSM modul 6-os verziója (SMS-kreditekkel rendelkező sim-szel).
4. 3.3V kenyértáblás tápegység az ATTINY85 készülékhez.
5. 3.3.v USB tápegység az AI-Thinker A6 GSM modulhoz.
6. Dallas 18B20 hőmérséklet -érzékelő..
7. 4,7 k ellenállás a 18B20 érzékelőhöz.
8. Kenyértábla és kábelek.
9. Arduino IDE (ehhez az 1.8.5. Verziót használtam).
10. Windows X laptop (én a 10 -es verziót használtam) ingyenes usb porttal.
1. lépés: Az ATTINY 85 programozása
Itt található az Arduino IDE kód (módosítania kell azt a telefonszámot, amelyre az SMS -t el szeretné küldeni.)
#befoglalni #befoglalni #befoglalni
*** *** *** *** Határozza meg az RX és TX csapokat. Válasszon ki két nem használt // *** tűt. Próbálja meg elkerülni a D0 (5. tű) // *** és a D2 (7. tű) használatát, ha az I2C használatát tervezi. // *** #define RX 3 // *** D3, 2. tüske #define TX 4 // *** D4, 3. tű
// *** // *** Határozza meg a szoftver alapú soros portot. A // *** Serial név használata annak érdekében, hogy a kód más // *** platformokon is használható legyen, amelyek támogatják a hardveralapú sorosítást. A hardveres sorozatot támogató // *** chipeken csak // *** kommentálja ezt a sort. // ***
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 frekvencia belső 8 MHz -en
// *** // *** Tű, amelyre a OneWire adat // *** vezeték csatlakozik. // *** #define ONE_WIRE_BUS 1
// *** // *** Állítson be egy OneWire példányt, hogy kommunikáljon bármely OneWire // *** eszközzel (nem csak a Maxim/Dallas hőmérséklet IC -kkel). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Adja át oneWire referenciánkat a dallasi hőmérséklethez. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Inicializálja a soros portot // *** mySerial.begin (115200); késleltetés (60000);
// *** Indítsa el a könyvtárat. _szenzorok.begin (); }
void loop () {
*** *** *** *** Az aktuális hőmérséklet megjelenítése és megjelenítése. // *** _sensors.requestTemperatures (); késleltetés (2000); dupla tempC = _szenzorok.getTempCByIndex (0); dupla tempF = _szenzorok.getTempFByIndex (0); // ellenőrizze a hibákat - néha indításkor, a hőmérséklet 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Túl meleg");}}
void SMS_temp (dupla mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS mód késleltetésre állítva (1000); mySerial.println ("AT+CMGF = 1"); // SMS mód késleltetésre állítva (1000); //sajatSerial.println("ATAT+CMGS=\"+ÉV SZÁMA / ""); // állítsa be a telefonszámot (kettős idézőjelek közé csomagolva) késleltetés (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); késleltetés (1000); mySerial.write (0x1A); // elküldi a ctrl+z üzenet késését (1000); mySerial.write (0x0D); // Kocsivissza hexadecimális késleltetés (1000); mySerial.write (0x0A); késleltetés (1000000); // 17 perc - állítsa be a saját alkalmazásának megfelelően}
Nyissa meg az Arduino IDE környezetet - az előző utasításomban részletesen leírtam, hogyan lehet eligazodni ezen a területen.
A következő könyvtárakra lesz szüksége
SoftwareSerial.h
OneWire.h
DallasHőmérséklet.h
Ezután konfigurálja az RX és a TX csapokat az ATTINY85 készüléken, amelyeket csatlakoztatnia kell az A1 Thinker készülékhez. Az ATTINY 85 8 tűvel rendelkezik, négy -két oldalt mindkét oldalon, és a felületen lévő pont segítségével igazodik a hivatkozáshoz. Az 1 -es vagy a RESET -tű a pont mellett található.
(ebben az esetben a 2 -es és a 3 -as tűt választottam - Ezek ugyanazon az oldalon vannak, mint a RESET csap, amely az ATTINY 85 felületén található pont mellett található. A 2 -es csap a RESET -csap következő szegje, míg a 3 -as a Pin között 2 és GROUND)
Ezután konfigurálnia kell a hőmérséklet -érzékelőt -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Ezután állítsa be a szoftver soros portját
mySerial.begin (115200);
késleltetés (60000);
majd hívja az érzékelőket a _sensors.begin () paranccsal;
Ezután következik a hurok, amely egy előre meghatározott időpontban lekérdezi, rögzíti a hőmérsékletet, és üzenetet / riasztást küld az érték függvényében. Ez egy SMS_temp függvényt használ, ahol beállíthatja a ciklus időzítését
void loop () {sensors.requestTemperatures (); késleltetés (2000);
dupla tempC = _szenzorok.getTempCByIndex (0);
dupla tempF = _szenzorok.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "VESZÉLYES hideg");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Elég hideg");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Túl meleg");}
}
==============
Ezután állítsa be az Arduino IDE -t, hogy felkészüljön az ATTINY85 -re való feltöltésre.
Számos dolog, amit meg kell jegyezni
1- Ha nem rendelkezik ATTINY táblacsaláddal, adja hozzá a következő URL-t: https://raw.githubusercontent.com/damellis/attiny/… a Fájl/Beállítások/További táblák kezelő URL-ben, Ezután az Arduio IDE -n belül kattintson az Eszközök/Tábla/Fórumkezelő elemre, és keresse meg az ATTINY lehetőséget, és telepítse az új táblát. Állítsa a processzort Attiny85 -re.
2. lépés: A program feltöltése az ATTINY85 -re
Lásd még a korábbi utasításomat ezzel kapcsolatban-https://www.instructables.com/id/15-Dollar-Attiny8…
Az ATTINY85 két üzemmóddal rendelkezik, programozási és működési mód. PROGRAMOZÁSI ÜZEMMÓD Először határozza meg az ATTINY85 csapjait. Ehhez keresse meg azt a kis bevágást a chip felületén, amely az RST/RESET csap mellett található. Ezt referenciapontként használva azonosíthatja a többi csapot. Mindezeket az információkat az A85 adatlap tartalmazza -https://www.microchip.com/downloads/en/DeviceDoc/At…
Az USBasp -ot és az ATTINY85 -öt a fenti képen látható módon kell csatlakoztatni.
Ezután az Arduino IDE -n állítsa a programozót USBasp -ra, a frekvenciát pedig 8Mhz -re.
Csatlakoztassa az USBasp -t a laptop USB -portjához (Windows 10 rendszerben, ha nincs USBasp -illesztőprogramja, használja a Zadig szoftvert a https://www.fischl.de/usbasp/ webhely szerint)
Ezután, ha az USBasp csatlakoztatva van, válasszon az Arduino IDE Sketch/upload közül, és remélhetőleg látnia kell a feltöltési folyamatot az Arduino IDE piros betűivel, és az avrdude done befejezésével. Köszönöm.
Ebben a szakaszban a hibák általában laza kábelekhez vagy rossz illesztőprogramhoz kapcsolódnak.
3. lépés: A program futtatása
Először is, valami a Dallas 18b20 hőmérő érzékelőjéről. Három érintkezővel rendelkezik, földelt (G), adat (D) és VCC, amint a fenti képen látható. A működéshez szükség van a D és VCC áthidalására 4,7 k ellenállással. A G és a VCC a megfelelő pólusokhoz van csatlakoztatva, míg a D egy ATTINY 85, - - [6] PB1 érintkezőhöz, a kódban konfigurálva.
Ezután csatlakoztassa az ATTINY -t az A6 GSM -hez az alábbiak szerint (és fent látható)
ATTINY TX A6 UART_RXd ATTINY RX A6 UART_TXd
ATTINY GND A6 GND
és maga az A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (még ne csatlakozzon a földhöz !!!!!)
Most kapcsolja be mindkét eszközt, és néhány másodperc múlva érintse meg ideiglenesen az A6 -os földelőcsapot az A6 -os RST -tűhöz csatlakoztatott kábellel. Az A6 ki- és bekapcsol, és remélhetőleg hamarosan meg kell kapnia a hőmérsékleti adatokat a telefonján.
4. lépés: Következtetés
Ez az utasítás meglehetősen egyszerűnek tűnhet, de az ötlet az, hogy szemléltesse, mit lehet elérni az alacsony költségű komponensekkel. Nyilvánvaló, hogy ha van hozzáférése Wi-Fi-hez vagy BLE hubhoz, akkor vannak megfelelőbb megoldások.
Nem foglalkoztam más funkciókkal, például SMS -t küldve a telefonra hőmérséklet -rögzítés / átvitel kezdeményezéséhez stb.
Ajánlott:
Szivárgásérzékelő szöveges üzenet értesítéssel: 7 lépés
Szivárgásérzékelő szöveges üzenet értesítéssel: Ez az útmutató bemutatja, hogyan lehet szivárgásérzékelőt létrehozni, amely szöveges üzeneteket küld. Riasztást küld, ha a csőtörésből vagy a tartalék lefolyóból származó vizet érzékel. Az útmutató azoknak szól, akik érdeklődnek a Python 3, a Raspberry Pi és a Secure Shell iránt
Mentse meg gyermekemet: az intelligens ülés, amely szöveges üzeneteket küld, ha elfelejti a gyermeket az autóban: 8 lépés
Mentse meg gyermekemet: az intelligens ülés, amely szöveges üzeneteket küld, ha elfelejti a gyermeket az autóban: Be van szerelve az autókba, és a gyermekülésre helyezett érzékelőnek köszönhetően figyelmeztet bennünket - SMS -ben vagy telefonon -, ha el a gyermek nélkül
Arduino görgető szöveges óra: 3 lépés
Arduino Scroll Text Clock: Ennek a projektnek az a célja, hogy görgetős szöveges órát készítsen, amely megjeleníti az időt beszéd közben (például: „éjfél van”). Ez egy gyors projekt - elegendő lehetőséget adunk a hardver és vázlat, aztán bátran veheted
E-mail figyelmeztetések létrehozása az NCD vezeték nélküli hőmérséklet- és páratartalom-érzékelőről a piros csomópont használatával: 22 lépés
E-mail figyelmeztetések létrehozása az NCD vezeték nélküli hőmérséklet- és páratartalom-érzékelőről csomópont-vörös használatával: Itt az NCD hőmérséklet- és páratartalom-érzékelőjét használjuk, de a lépések mindegyike megegyezik az ncd termékek bármelyikével, így ha más ncd vezeték nélküli érzékelővel rendelkezik, használja mellette figyelni. Ennek a szövegnek a leállításával meg kell
Hullámlámpa - Időjárás és figyelmeztetések: 7 lépés (képekkel)
Hullámlámpa - Időjárás és figyelmeztetések: A thingiverse böngészése közben láttam ezt az elképesztő hullámlámpát, és meg kellett építenem. https://www.thingiverse.com/thing:774456 A lámpa nagyon jól megtervezett, és támaszok nélkül nyomtat (az oldalára kell nyomtatni)