Indholdsfortegnelse:
- Trin 1: Programmering af ATTINY 85
- Trin 2: Upload af programmet til ATTINY85
- Trin 3: Kør dit program
- Trin 4: Konklusion
Video: SMS -tekst Temp -advarsler fra en ATTINY85 og A1 GSM: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne instruktør viser dig, hvordan du registrerer temperaturen fra en simpel temperatursensor og sender den med sms -tekst til din mobiltelefon. For at forenkle tingene sender jeg temperaturen med et bestemt interval, men jeg viser også, hvordan dette kun kan gøres ved undtagelse / advarsler. Hardwaren er meget lav, mindre end 10 dollars, selvom der er de tilbagevendende sms -omkostninger at overveje.
De tunge løft udføres af den enkle, men kraftfulde ATTINY 85, der registrerer temperaturdataene og derefter udløser en SMS, der skal sendes gennem et AI-Thinker A6 GSM-modul.
Kort sagt skriver du ATTINY85 -koden i Arduino IDE -miljøet og brænder den på ATTINY85 ved hjælp af en USBASP seriel/USB -konverter. Jeg har dækket opsætning af AI-Thinker A6 GSM-modulet og Arduino IDE i to tidligere selvstudier. Hvad der er anderledes her er grænsefladen mellem ATTINY og A6 GSM -modulet ved hjælp af seriel kommunikation.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Efter programmering læser ATTINY temperaturdataene fra en termometersensor - Dallas 18B20- og sender derefter data og kommandoer ved seriel forbindelse til A6 GSM -modulet, som derefter sender det som en SMS -tekst til din mobiltelefon / smartphone.
Her er hvad du har brug for:
1. USBASP seriel/USB -konverter.
2. ATTINY 85.
3. AI-Thinker A6 GSM-modul version 6 (med en sim, der har SMS-kreditter).
4. 3.3v brødbræt strømforsyning til ATTINY85.
5. 3.3.v USB-strømforsyning til AI-Thinker A6 GSM-modulet.
6. Dallas 18B20 temperatursensor..
7. 4,7k modstand til 18B20 sensoren.
8. Brødbræt og kabler.
9. Arduino IDE (jeg brugte version 1.8.5. Til dette).
10. Windows X bærbar computer (jeg brugte version 10) med en gratis usb -port.
Trin 1: Programmering af ATTINY 85
Her er Arduino IDE -koden (Du bliver nødt til at ændre det telefonnummer, du vil sende SMS'en til.)
#include #include #include
// *** // *** Definer RX- og TX -benene. Vælg to // *** pins, der ikke er brugt. Prøv at undgå D0 (pin 5) // *** og D2 (pin 7), hvis du planlægger at bruge I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Definer den softwarebaserede serielle port. Brug af // *** navnet Serial, så koden kan bruges på andre // *** platforme, der understøtter hardware baseret seriel. På // *** chips, der understøtter hardware -serien, skal du bare // *** kommentere denne linje. // ***
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 frekvens indstillet til intern 8 MHz
// *** // *** Pin, som OneWire -data // *** ledningen er tilsluttet. // *** #definer ONE_WIRE_BUS 1
// *** // *** Konfigurer en oneWire -forekomst til at kommunikere med alle OneWire // *** -enheder (ikke kun Maxim/Dallas temperatur -IC'er). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Videregiv vores oneWire -reference til Dallas Temperature. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Initialiser seriel port // *** mySerial.begin (115200); forsinkelse (60000);
// *** Start biblioteket. _sensors.begin (); }
void loop () {
// *** // *** Få den aktuelle temperatur, og vis den. // *** _sensors.requestTemperatures (); forsinkelse (2000); dobbelt tempC = _sensors.getTempCByIndex (0); dobbelt tempF = _sensors.getTempFByIndex (0); // tjek for fejl - nogle gange ved start, temp vist som 85C
hvis (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "For varm");}}}
void SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // indstillet til forsinkelse i SMS -tilstand (1000); mySerial.println ("AT+CMGF = 1"); // indstillet til forsinkelse i SMS -tilstand (1000); //mySerial.println("AT+CMGS=\"+DIT NUMMER / ""); // indstil telefonnummeret (pakket ind i dobbelte citater) forsinkelse (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); forsinkelse (1000); mySerial.write (0x1A); // sender ctrl+z slut på meddelelsesforsinkelse (1000); mySerial.write (0x0D); // Transportretur i sekskantforsinkelse (1000); mySerial.write (0x0A); forsinkelse (1000000); // 17 minutter - juster efter din egen applikation}
Åbn Arduino IDE -miljøet - jeg har beskrevet, hvordan du finder dig omkring dette i detaljer i min tidligere instruerbare, som jeg hentydede til tidligere.
Du skal bruge følgende biblioteker
SoftwareSerial.h
OneWire.h
DallasTemperatur. H
Konfigurer derefter RX- og TX -benene på ATTINY85, som du skal forbinde med A1 -tænkeren. ATTINY 85 har 8 ben, fire på hver side og er justeret ved hjælp af prikken på overfladen a s en reference. Pin 1 eller RESET pin er ved siden af prikken.
(i dette tilfælde valgte jeg Pin2 og 3 - Disse er på samme side som RESET -stiften, der er ved siden af prikken på overfladen af ATTINY 85. Pin 2 er den næste pin langs RESET -stiften, mens Pin 3 er mellem Pin 2 og GRUND)
Dernæst skal du konfigurere temperatursensoren -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Konfigurer derefter softwarens serielle port
mySerial.begin (115200);
forsinkelse (60000);
og derefter kalde sensorerne med _sensors.begin ();
Dernæst er der sløjfen, som poller rundt på et forudbestemt tidspunkt, registrerer temperaturen og sender en besked / advarsel afhængigt af værdien. Den bruger en funktion SMS_temp, som også er, hvor du indstiller timingen af sløjfen
void loop () {sensors.requestTemperatures (); forsinkelse (2000);
dobbelt tempC = _sensors.getTempCByIndex (0);
dobbelt tempF = _sensors.getTempFByIndex (0);
hvis (tempC <= 14) {SMS_temp (tempC, "FARLIGT kold");}
hvis (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Ret kold");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just Right");}
hvis (tempC> = 23 && error_temperature) {SMS_temp (tempC, "For varm");}
}
==============
Konfigurer derefter Arduino IDE til at forberede upload til ATTINY85.
En række ting at bemærke
1- Hvis du ikke har ATTINY-bestyrelsesfamilien, skal du tilføje følgende url https://raw.githubusercontent.com/damellis/attiny/… i File/Preferences/Additional Boards Manager URL, Dernæst skal du i Arduio IDE klikke på Værktøjer/Board/Board Manager og søge efter ATTINY og installere det nye board. Skift processoren til Attiny85.
Trin 2: Upload af programmet til ATTINY85
Se også min tidligere instruks om dette-https://www.instructables.com/id/15-Dollar-Attiny8…
ATTINY85 har to tilstande, henholdsvis programmering og driftstilstand. PROGRAMMERINGSMODUS Identificer først stifterne på ATTINY85. For at gøre dette skal du finde det lille hak på overfladen af chippen, der er ved siden af RST/RESET -stiften. Ved at bruge dette som referencepunkt kan du identificere resten af stifterne. Alle disse oplysninger findes i A85 -databladet -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
USBasp og ATTINY85 skal tilsluttes som vist på billedet ovenfor.
Indstil derefter på Arduino IDE programmereren til USBasp og frekvensen til intern 8Mhz.
Tilslut USBasp til en USB -port på din bærbare computer (i Windows 10, hvis du ikke har USBasp -driveren, skal du bruge Zadig i henhold til webstedet
Vælg derefter med USBasp tilsluttet fra Arduino IDE Skitse/upload, og forhåbentlig skal du se uploadforløbet vist med røde bogstaver i Arduino IDE og slutte med avrdude udført. Tak skal du have.
Eventuelle fejl på dette tidspunkt er normalt forbundet med løse kabler eller den forkerte driver.
Trin 3: Kør dit program
For det første noget om Dallas 18b20 termometersensoren. Den har 3 ben, jord (G), data (D) og VCC som vist på billedet ovenfor. For drift kræver det at bygge bro mellem D og VCC med en 4,7k modstand. G og VCC er forbundet til de respektive poler, mens D er forbundet til en ATTINY 85, pin - [6] PB1, som konfigureret i koden.
Tilslut derefter ATTINY til A6 GSM som følger (og vist ovenfor)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
og på selve A6, A6 PWR A6 VCC 5.0A6 RST A6 GND (Tilslut ikke til jorden endnu !!!!!)
Tænd nu for begge enheder, og efter et par sekunder skal du midlertidigt røre ved A6 -stiften med kablet forbundet til A6 RST -stiften. A6 slukker og tænder, og forhåbentlig skal du snart modtage temperaturdata på din telefon.
Trin 4: Konklusion
Dette instruerbare kan virke ret simpelt, men tanken er at illustrere, hvad der kan opnås med billige komponenter. Det er klart, at hvis du har adgang til wi-fi eller et BLE-hub, er der mere passende løsninger.
Jeg dækkede ikke anden funktionalitet såsom at sende en SMS TIL telefonen for at starte temperaturregistrering / transmission osv.
Anbefalede:
Sender sms, hvis der opdages røg (Arduino+GSM SIM900A: 5 trin
Sender sms, hvis der opdages røg (Arduino+GSM SIM900A: Hej alle! I min første instruks vil jeg lave en gasalarm, der sender besked til brugeren, hvis der opdages forurening. Dette vil være en simpel prototype ved hjælp af Arduino, GSM -modul og elektrokemisk røgsensor. Fremover kan dette udvides til
12x12 LEDX fra flugt fra Tarkov: 10 trin (med billeder)
12x12 LEDX From Escape From Tarkov: Engang efter russisk EFT -fællesskabspodcast, hvor en af gæsterne sagde, at dyre genstande, f.eks. LEDX, skulle indtage et større antal slots i sikre containere … Det skete ikke i 0,12,6 patch, men det skete på mit værksted
Sådan sender du sms -beskeder fra dit Arduino ESP -projekt: 6 trin
Sådan sender du sms -beskeder fra dit Arduino ESP -projekt: Denne instruktør viser, hvordan du sender sms -beskeder fra dit arduino -projekt ved hjælp af en ESP8266 -enhed og en WiFi -forbindelse. Hvorfor bruge SMS?* SMS -beskeder er meget hurtigere og mere pålidelige end appmeddelelser Beskeder. * SMS -beskeder kan også
Sådan bruges SIM800L til at sende SMS og styre relæ via SMS: 3 trin
Sådan bruges SIM800L til at sende SMS og styre relæ via SMS: Beskrivelse: Denne vejledning viser, hvordan du bruger SIM800L til at sende sms og modtage sms til at styre relæ. SIM800L -modulet er lille i størrelse og kan bruges til at kommunikere med Arduino til at sende sms, modtage sms, ringe, modtage opkald og andet. I denne vejledning
Opsætning fra bunden af en Raspberry Pi til logdata fra Arduino: 5 trin
Opsætning fra bunden af en Raspberry Pi til logdata fra Arduino: Denne vejledning er for dem, der ikke har erfaring med at installere en ny hardware eller software, endsige Python eller Linux. Lad os sige, at du har bestilt til Raspberry Pi (RPi) med SD kort (mindst 8 GB, jeg brugte 16 GB, type I) og strømforsyning (5V, mindst 2