Inhaltsverzeichnis:
- Schritt 1: Programmierung des ATTINY 85
- Schritt 2: Hochladen des Programms auf den ATTINY85
- Schritt 3: Ausführen Ihres Programms
- Schritt 4: Fazit
Video: SMS-Text-Temp-Warnungen von einem ATTINY85 und A1 GSM - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Diese Anleitung zeigt Ihnen, wie Sie die Temperatur von einem einfachen Temperatursensor erfassen und per SMS an Ihr Mobiltelefon senden. Zur Vereinfachung sende ich die Temperatur in einem festgelegten Intervall, aber ich zeige auch, wie dies nur durch Ausnahme / Warnungen erfolgen kann. Die Hardware ist sehr günstig, weniger als 10 Dollar, obwohl die wiederkehrenden SMS-Kosten zu berücksichtigen sind.
Das schwere Heben übernimmt der einfache, aber leistungsstarke ATTINY 85, der die Temperaturdaten erfasst und dann eine SMS auslöst, die über ein AI-Thinker A6 GSM-Modul gesendet wird.
Kurz gesagt, Sie schreiben den ATTINY85-Code in der Arduino-IDE-Umgebung und brennen ihn mit einem USBASP-Seriell/USB-Konverter auf dem ATTINY85. Ich habe das Einrichten des AI-Thinker A6 GSM-Moduls und der Arduino IDE in zwei vorherigen Tutorials behandelt. Der Unterschied besteht darin, das ATTINY- und das A6-GSM-Modul über serielle Kommunikation zu verbinden.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Nach der Programmierung liest der ATTINY die Temperaturdaten von einem Thermometersensor - Dallas 18B20 - und sendet die Daten und Befehle dann per serieller Verbindung an das A6 GSM-Modul, das sie dann als SMS-Text an Ihr Handy / Smartphone sendet.
Hier ist, was Sie brauchen:
1. USBASP Seriell/USB-Konverter.
2. ATTINY 85.
3. AI-Thinker A6 GSM-Modul Version 6 (mit einer Sim mit SMS-Guthaben).
4. 3,3-V-Breadboard-Netzteil für den ATTINY85.
5. 3.3.v USB-Netzteil für das AI-Thinker A6 GSM-Modul.
6. Dallas 18B20 Temperatursensor..
7. 4,7k Widerstand für den 18B20 Sensor.
8. Steckbrett und Kabel.
9. Arduino IDE (ich habe dafür Version 1.8.5. verwendet).
10. Windows X-Laptop (ich habe Version 10 verwendet) mit einem freien USB-Anschluss.
Schritt 1: Programmierung des ATTINY 85
Hier ist der Arduino IDE-Code (Sie müssen die Telefonnummer ändern, an die Sie die SMS senden möchten.)
#einschließen #einschließen #einschließen
// *** // *** Definieren Sie die RX- und TX-Pins. Wählen Sie zwei beliebige // *** Pins, die nicht verwendet werden. Versuchen Sie, D0 (Pin 5) // *** und D2 (Pin 7) zu vermeiden, wenn Sie I2C verwenden möchten. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Definieren Sie die softwarebasierte serielle Schnittstelle. Verwenden des // *** Namens Serial, damit Code auf anderen // *** Plattformen verwendet werden kann, die hardwarebasierte Serials unterstützen. Bei // *** Chips, die die Hardware-Seriell unterstützen, // *** diese Zeile einfach kommentieren. // ***
SoftwareSerial mySerial = SoftwareSerial(RX, TX);
// *** // *** Pinbelegung 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 Frequenz eingestellt auf interne 8 MHz
// *** // *** Pin, an dem das OneWire-Datenkabel // *** angeschlossen ist. // *** #define ONE_WIRE_BUS 1
// *** // *** Richten Sie eine oneWire-Instanz ein, um mit beliebigen OneWire- // ***-Geräten zu kommunizieren (nicht nur Maxim/Dallas-Temperatur-ICs). // *** OneWire _oneWire = OneWire(ONE_WIRE_BUS);
// *** // *** Übergeben Sie unsere oneWire-Referenz zur Dallas-Temperatur. // *** DallasTemperature _sensors = DallasTemperature (&_oneWire);
Void setup () { // *** // *** Initialisieren Sie den seriellen Port // *** mySerial.begin (115200); Verzögerung(60000);
// *** Starten Sie die Bibliothek. _sensors.begin(); }
Leere Schleife () {
// *** // *** Holen Sie sich die aktuelle Temperatur und zeigen Sie sie an. // *** _sensors.requestTemperatures(); Verzögerung (2000); double tempC = _sensors.getTempCByIndex(0); double tempF = _sensors.getTempFByIndex(0); // auf Fehler prüfen - manchmal beim Start, die Temperatur wird als 85 ° C angezeigt
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature){SMS_temp(tempC, "Zu warm");} }
void SMS_temp(double mytemp, String myalert) { mySerial.println("AT+CMGF=1"); // auf SMS-Modusverzögerung einstellen (1000); mySerial.println("AT+CMGF=1"); // auf SMS-Modusverzögerung einstellen (1000); //mySerial.println("AT+CMGS=\"+IHRE NUMMER\""); // setze die Telefonnummer (in doppelte Anführungszeichen eingeschlossen) Verzögerung (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); Verzögerung (1000); mySerial.write (0x1A); // sendet Strg+z Ende der Nachricht Verzögerung (1000); mySerial.write(0x0D); // Wagenrücklauf in Hex delay(1000); mySerial.write(0x0A); Verzögerung(1000000); // 17 Minuten - Anpassung an Ihre eigene Anwendung }
Öffnen Sie die Arduino IDE-Umgebung - ich habe beschrieben, wie Sie sich in meinem vorherigen anweisbaren, auf das ich zuvor angespielt habe, im Detail zurechtfinden.
Sie benötigen die folgenden Bibliotheken
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Als nächstes konfigurieren Sie die RX- und TX-Pins des ATTINY85, die Sie mit dem A1 Thinker verbinden müssen. Der ATTINY 85 hat 8 Pins, vier auf jeder Seite und wird mit dem Punkt auf der Oberfläche als Referenz ausgerichtet. Pin 1 oder RESET-Pin ist neben dem Punkt.
(In diesem Fall habe ich Pin2 und 3 gewählt - Diese befinden sich auf der gleichen Seite wie der RESET-Pin, der sich neben dem Punkt auf der Oberfläche des ATTINY 85 befindet. Pin 2 ist der nächste Pin nach dem RESET-Pin, während Pin 3 zwischen Pin. liegt 2 und ERDE)
Als nächstes müssen Sie den Temperatursensor konfigurieren -
#define ONE_WIRE_BUS 1
OneWire_oneWire = OneWire(ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature(&_oneWire);
Als nächstes richten Sie den seriellen Software-Port ein
mySerial.begin(115200);
Verzögerung(60000);
und dann die Sensoren mit _sensors.begin() aufrufen;
Als nächstes gibt es die Schleife, die zu einer vorgegebenen Zeit abfragt, die Temperatur aufzeichnet und je nach Wert eine Nachricht / einen Alarm sendet. Es verwendet eine Funktion SMS_temp, in der Sie auch das Timing der Schleife festlegen
Void Schleife () {sensoren.requestTemperatures (); Verzögerung (2000);
double tempC = _sensors.getTempCByIndex(0);
double tempF = _sensors.getTempFByIndex(0);
if (tempC <= 14){SMS_temp(tempC, " GEFÄHRLICH kalt");}
if (tempC > 14 && tempC <= 18) {SMS_temp(tempC, " Ziemlich kalt");}
if (tempC > 18 && tempC < 23) {SMS_temp(tempC, "Temp Genau richtig");}
if (tempC >= 23 && error_temperature){SMS_temp(tempC, "Zu warm");}
}
==============
Als nächstes richten Sie die Arduino IDE ein, um das Hochladen auf den ATTINY85 vorzubereiten.
Einiges zu beachten
1- Wenn Sie nicht über die ATTINY-Board-Familie verfügen, fügen Sie die folgende URL https://raw.githubusercontent.com/damellis/attiny/… in File/Preferences/Additional Boards Manager URL hinzu.
Klicken Sie anschließend in der Arduio IDE auf Tools/Board/Board Manager und suchen Sie nach ATTINY und installieren Sie das neue Board. Ändern Sie den Prozessor auf Attiny85.
Schritt 2: Hochladen des Programms auf den ATTINY85
Beziehen Sie sich auch auf meine vorherige Anleitung dazu -
Der ATTINY85 verfügt über zwei Modi, den Programmier- und den Betriebsmodus.1. PROGRAMMIERMODUS Identifizieren Sie zunächst die Pins des ATTINY85. Suchen Sie dazu die kleine Kerbe auf der Oberfläche des Chips, die sich neben dem RST / RESET-Pin befindet. Wenn Sie dies als Referenzpunkt verwenden, können Sie den Rest der Pins identifizieren. Alle diese Informationen finden Sie im A85-Datenblatt -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
Der USBasp und ATTINY85 sollten wie in der Abbildung oben gezeigt angeschlossen werden.
Als nächstes stellen Sie in der Arduino IDE den Programmierer auf USBasp und die Frequenz auf interne 8Mhz.
Verbinden Sie den USBasp mit einem USB-Port Ihres Laptops (unter Windows 10, wenn Sie den USBasp-Treiber nicht haben, verwenden Sie Zadig gemäß der Website
Als nächstes wählen Sie bei angeschlossenem USBasp aus der Arduino IDE Sketch/Upload und hoffentlich sollten Sie den Upload-Fortschritt in roten Buchstaben der Arduino IDE sehen und mit avrdude done enden. Dankeschön.
Alle Fehler in dieser Phase sind normalerweise auf lose Kabel oder den falschen Treiber zurückzuführen.
Schritt 3: Ausführen Ihres Programms
Zunächst etwas zum Dallas 18b20-Thermometersensor. Es hat 3 Pins, Masse (G), Daten (D) und VCC, wie im Bild oben gezeigt. Für den Betrieb ist eine Überbrückung von D und VCC mit einem 4,7k-Widerstand erforderlich. G und VCC sind mit entsprechenden Polen verbunden, während D mit einem ATTINY 85, Pin - [6] PB1 verbunden ist, wie im Code konfiguriert.
Als nächstes verbinden Sie das ATTINY wie folgt mit dem A6 GSM (und oben gezeigt)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
und auf der A6 selbst, A6 PWR A6 VCC 5.0A6 RST A6 GND (Noch nicht mit Masse verbinden!!!!!)
Schalten Sie nun beide Geräte ein und berühren Sie nach einigen Sekunden kurzzeitig den A6-Erdungsstift mit dem Kabel, das mit dem A6-RST-Stift verbunden ist. Der A6 schaltet sich aus und wieder ein und hoffentlich erhalten Sie bald Temperaturdaten auf Ihrem Telefon.
Schritt 4: Fazit
Dieses anweisbare mag ziemlich einfach erscheinen, aber die Idee ist, zu veranschaulichen, was mit kostengünstigen Komponenten erreicht werden kann. Wenn Sie Zugang zu Wi-Fi oder einem BLE-Hub haben, gibt es natürlich geeignetere Lösungen.
Andere Funktionen wie das Senden einer SMS an das Telefon zum Initiieren der Temperaturaufzeichnung / -übertragung usw. habe ich nicht behandelt.
Empfohlen:
Windows 10 auf einem Raspberry Pi zum Laufen bringen – wikiHow
So funktioniert Windows 10 auf einem Raspberry Pi
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
So nehmen Sie einen Podcast von einem Telefon auf – wikiHow
So nehmen Sie einen Podcast von einem Telefon auf: Wir nehmen eine Reihe von Podcasts auf, um die Wirkung der Konferenz Learning 2005 zu erhöhen. Diese Podcasts sind Aufzeichnungen von Interviews, die Mark Oehlert mit zahlreichen Moderatoren der Konferenz geführt hat. Die folgenden s
So installieren Sie Fedora auf einem SheevaPlug und booten von einer SD-Karte.: 13 Schritte
So installieren Sie Fedora auf einem SheevaPlug und booten von einer SD-Karte.: Ich habe einen Beitrag zum SheevaPlug bei Slashdot und dann in Popular Mechanics gesehen. Es schien ein interessantes Gerät zu sein es läuft @ 2,5w, keine Lüfter, Solid State und kein Monitor erforderlich. Seit Jahren trage ich einen alten CRT-Monitor mit mir herum