Innholdsfortegnelse:
- Trinn 1: Programmering av ATTINY 85
- Trinn 2: Last opp programmet til ATTINY85
- Trinn 3: Kjøre programmet
- Trinn 4: Konklusjon
Video: SMS -tekst Temp -varsler fra en ATTINY85 og A1 GSM: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Denne instruksen viser deg hvordan du kan fange temperaturen fra en enkel temperatursensor og sende den med sms -tekst til mobiltelefonen. For å forenkle ting, sender jeg temperaturen med et angitt intervall, men jeg viser også hvordan dette bare kan gjøres ved unntak / varsler. Maskinvaren er veldig lav, mindre enn 10 dollar, selv om det er tilbakevendende sms -kostnader å vurdere.
Tunge løft utføres av den enkle, men kraftige ATTINY 85 som fanger temperaturdataene og deretter utløser en SMS som skal sendes gjennom en AI-Thinker A6 GSM-modul.
Kort sagt, du skriver ATTINY85 -koden i Arduino IDE -miljøet og brenner den på ATTINY85 ved hjelp av en USBASP seriell/USB -omformer. Jeg har dekket konfigurering av AI-Thinker A6 GSM-modulen og Arduino IDE i to tidligere opplæringsprogrammer. Det som er annerledes her er grensesnittet mellom ATTINY og A6 GSM -modulen ved bruk av seriell kommunikasjon.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
Etter programmering leser ATTINY temperaturdataene fra en termometersensor - Dallas 18B20- og sender deretter dataene og kommandoene ved seriell tilkobling til A6 GSM -modulen som deretter sender dem som en SMS -tekst til din mobiltelefon / smarttelefon.
Her er hva du trenger:
1. USBASP seriell/USB -omformer.
2. ATTINY 85.
3. AI-Thinker A6 GSM-modul versjon 6 (med en sim som har SMS-studiepoeng).
4. 3.3v brødbrett strømforsyning for ATTINY85.
5. 3.3.v USB-strømforsyning for AI-Thinker A6 GSM-modulen.
6. Dallas 18B20 temperatursensor..
7. 4,7k motstand for 18B20 sensoren.
8. Brødbrett og kabler.
9. Arduino IDE (jeg brukte versjon 1.8.5. For dette).
10. Windows X bærbar datamaskin (jeg brukte versjon 10) med en gratis usb -port.
Trinn 1: Programmering av ATTINY 85
Her er Arduino IDE -koden (Du må endre telefonnummeret du vil sende SMS -en til.)
#include #include #include
// *** // *** Definer RX- og TX -pinnene. Velg to // *** pinner som er ubrukte. Prøv å unngå D0 (pin 5) // *** og D2 (pin 7) hvis du planlegger å bruke I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** Definer den programvarebaserte serielle porten. Bruk // *** navnet Serial slik at koden kan brukes på andre // *** plattformer som støtter maskinvarebasert seriell. På // *** sjetonger som støtter maskinvareserien, bare // *** kommenter denne linjen. // ***
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 satt til intern 8 MHz
// *** // *** Pin som OneWire -data // *** ledningen er koblet til. // *** #definere ONE_WIRE_BUS 1
// *** // *** Sett opp en oneWire -forekomst for å kommunisere med alle OneWire // *** -enheter (ikke bare Maxim/Dallas temperatur -ICer). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** Send vår oneWire -referanse til Dallas Temperature. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
void setup () {// *** // *** Initialiser serieporten // *** mySerial.begin (115200); forsinkelse (60000);
// *** Start opp biblioteket. _sensors.begin (); }
void loop () {
// *** // *** Få gjeldende temperatur og vis den. // *** _sensors.requestTemperatures (); forsinkelse (2000); dobbel tempC = _sensors.getTempCByIndex (0); dobbel tempF = _sensors.getTempFByIndex (0); // sjekk for feil - noen ganger ved start, temp vist som 85C
if (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"); // satt til SMS -modus forsinkelse (1000); mySerial.println ("AT+CMGF = 1"); // satt til SMS -modus forsinkelse (1000); //mySerial.println("AT+CMGS=\"+ DITT NUMMER / ""); // angi telefonnummeret (innpakket i doble anførselstegn) forsinkelse (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); forsinkelse (1000); mySerial.write (0x1A); // sender ctrl+z slutten av meldingsforsinkelse (1000); mySerial.write (0x0D); // Transportretur i sekskantforsinkelse (1000); mySerial.write (0x0A); forsinkelse (1000000); // 17 minutter - juster etter din egen applikasjon}
Åpne Arduino IDE -miljøet - jeg har beskrevet hvordan du kan komme deg rundt dette i detalj i min tidligere instruerbare som jeg hentydet til tidligere.
Du trenger følgende biblioteker
SoftwareSerial.h
OneWire.h
DallasTemperature.h
Konfigurer deretter RX- og TX -pinnene på ATTINY85 som du trenger for å koble til A1 -tenkeren. ATTINY 85 har 8 pinner, fire på hver side og er justert ved hjelp av prikken på overflaten a s en referanse. Pin 1 eller RESET pin er ved siden av prikken.
(i dette tilfellet valgte jeg Pin2 og 3 - Disse er på samme side som RESET -pinnen som er ved siden av prikken på overflaten av ATTINY 85. Pin 2 er den neste pin -en fra RESET -pin mens Pin 3 er mellom Pin 2 og GRUNN)
Deretter må du konfigurere temperatursensoren -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
Konfigurer deretter programvarens serielle port
mySerial.begin (115200);
forsinkelse (60000);
og ring deretter sensorene med _sensors.begin ();
Deretter er det løkken, som avstemmer rundt på et forhåndsbestemt tidspunkt, registrerer temperaturen og sender en melding / varsel avhengig av verdien. Den bruker en funksjon SMS_temp som også er der du angir timingen for løkken
void loop () {sensors.requestTemperatures (); forsinkelse (2000);
dobbel tempC = _sensors.getTempCByIndex (0);
dobbel tempF = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Cold");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Ganske kaldt");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Too warm");}
}
==============
Sett deretter opp Arduino IDE for å forberede opplasting til ATTINY85.
En rekke ting å merke seg
1- Hvis du ikke har ATTINY-tavlefamilien, kan du legge til følgende url https://raw.githubusercontent.com/damellis/attiny/… i Fil/Preferanser/Ytterligere styrer-URL-adresse, Deretter klikker du på Arduio IDE på Tools/Board/Board Manager og søker etter ATTINY og installerer det nye kortet. Bytt prosessor til Attiny85.
Trinn 2: Last opp programmet til ATTINY85
Se også min tidligere instruks om dette-https://www.instructables.com/id/15-Dollar-Attiny8…
ATTINY85 har to moduser, henholdsvis programmerings- og driftsmodus. PROGRAMMERINGSMODUS Identifiser først pinnene på ATTINY85. For å gjøre dette, finn det lille hakk på overflaten av brikken som ligger ved siden av RST/RESET -pinnen. Ved å bruke dette som et referansepunkt, kan du identifisere resten av pinnene. All denne informasjonen er gitt i A85 -databladet -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
USBasp og ATTINY85 skal kobles til som vist på bildet ovenfor.
Sett deretter på Arduino IDE programmereren til USBasp og frekvensen til intern 8Mhz.
Koble USBasp til en USB -port på den bærbare datamaskinen (på Windows 10, hvis du ikke har USBasp -driveren, bruk Zadig i henhold til nettstedet
Deretter, med USBasp tilkoblet, velger du fra Arduino IDE Skisse/opplasting, og forhåpentligvis bør du se opplastingsfremgangen vist med røde bokstaver i Arduino IDE og slutter med avrdude ferdig. Takk skal du ha.
Eventuelle feil på dette stadiet er vanligvis forbundet med løse kabler eller feil driver.
Trinn 3: Kjøre programmet
For det første noe om Dallas 18b20 termometersensor. Den har 3 pins, Ground (G), data (D) og VCC som vist på bildet ovenfor. For drift krever det å bygge bro mellom D og VCC med en motstand på 4,7 k. G og VCC er koblet til de respektive polene mens D er koblet til en ATTINY 85, pin - [6] PB1, som konfigurert i koden.
Deretter kobler du 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 (Ikke koble til bakken ennå !!!!!)
Slå nå på begge enhetene, og berør midlertidig A6 -jordpinnen etter noen sekunder med kabelen koblet til A6 RST -pinnen. A6 slås av og på, og forhåpentligvis bør du snart motta temperaturdata på telefonen.
Trinn 4: Konklusjon
Dette instruerbare kan virke ganske enkelt, men ideen er å illustrere hva som kan oppnås med komponenter med lave kostnader. Selvfølgelig, hvis du har tilgang til wi-fi eller et BLE-hub, er det mer passende løsninger.
Jeg dekket ikke annen funksjonalitet, for eksempel å sende en SMS til telefonen for å starte temperaturregistrering / overføring etc.
Anbefalt:
Sender sms hvis det oppdages røyk (Arduino+GSM SIM900A: 5 trinn
Sender sms hvis det oppdages røyk (Arduino+GSM SIM900A: Hei alle sammen! I min første instruks skal jeg lage en gassalarm som sender melding til brukeren hvis forurensning oppdages. Dette vil være en enkel prototype ved bruk av Arduino, GSM -modul og elektrokjemisk røykføler. I fremtiden kan dette utvides til
Slik sender du SMS -tekstmeldinger fra ditt Arduino ESP -prosjekt: 6 trinn
Slik sender du SMS -tekstmeldinger fra ditt Arduino ESP -prosjekt: Denne instruksjonen viser hvordan du sender SMS -meldinger fra ditt arduino -prosjekt ved hjelp av en ESP8266 -enhet og en WiFi -tilkobling. Hvorfor bruke SMS?* SMS -meldinger er mye raskere og påliteligere enn appvarsling. meldinger. * SMS -meldinger kan også
Slik bruker du SIM800L til å sende SMS og kontrollere relé via SMS: 3 trinn
Slik bruker du SIM800L til å sende SMS og kontrollere relé via SMS: Beskrivelse: Denne opplæringen viser hvordan du bruker SIM800L til å sende sms og motta sms for å kontrollere relé. SIM800L -modulen er liten i størrelse og kan brukes til å koble til Arduino for å sende sms, motta sms, ringe, motta anrop og annet. I denne opplæringen
Robot fra tauklatring fra en ødelagt 3D-penn: 12 trinn (med bilder)
Robot fra tauklatring fra en ødelagt 3D-penn: 3D-penner er flotte verktøy for å utvikle kreativiteten til barna dine. Men hva kan du gjøre når 3D Doodler Start slutter å fungere og ikke kan repareres? Ikke kast 3D -pennen din til søpla! Fordi i denne instruksen vil jeg lære deg hvordan du skal forandre
Sett opp fra scratch en Raspberry Pi for å logge data fra Arduino: 5 trinn
Sett opp fra scratch en Raspberry Pi for å logge data fra Arduino: Denne opplæringen er for de som ikke har erfaring med å installere en ny maskinvare eller programvare, enn si Python eller Linux. La oss si at du har bestilt Raspberry Pi (RPi) med SD kort (minst 8 GB, jeg brukte 16 GB, type I) og strømforsyning (5V, minst 2