Innholdsfortegnelse:

Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig: 4 trinn
Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig: 4 trinn

Video: Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig: 4 trinn

Video: Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig: 4 trinn
Video: MEXC GLOBAL - ОБЗОР БИРЖИ И КАК ЗДЕСЬ ЗАРАБОТАТЬ? 2024, November
Anonim
Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig
Pålitelig, sikker, tilpassbar SMS -fjernkontroll (Arduino/pfodApp) - Ingen koding nødvendig

Oppdatering 6. juli 2018: En 3G/2G -versjon av dette prosjektet, som bruker SIM5320, er tilgjengelig her

Oppdatering: 19. mai 2015: Bruk pfodParser -biblioteket versjon 2.5 eller nyere. Det løser et rapportert problem med å ikke gi nok tid til at skjoldet kan koble seg til nettverket etter at det er slått på

Introduksjon

Hvordan er pfodSMS fjernkontroll forskjellig fra andre implementeringer:-

  • Det er pålitelig-kommandoer blir alltid besvart og tapte meldinger blir forespurt på nytt
  • Det er sikkert - bruker 128 biters passordbeskyttelse
  • Det krever ingen tredjeparts webtjenestekontoer - trenger bare aktivt SIM -kort (uten pinne)
  • Den kan tilpasses - du kan bruke pfodDesigner til å lage din egen tilpassede meny
  • Det er enkelt - pfodDesigner genererer all koden. Du trenger ikke å gjøre noen koding.
  • Det er fleksibelt-alle pfod-skjermene er tilgjengelige via SMS, som undermenyer, fler- og enkeltvalgsliste, tekstinndata, datalogging og plotting.

Se pfodSMS meldingsdesign for hvordan SMS -tilkoblingen gjøres pålitelig. Se Challenge and Response Security for Internett -tilkoblede pfodDevices for detaljer om 128 -biters sikkerhet. Se menyene pfodDesigner, Android / Arduino Simple for detaljer om hvordan du designer din egen tilpassede meny. Se pfodSpecification.pdf for detaljer om alle pfod -meldingene og skjermbildene du kan legge til selv.

Eksempelprosjekt - SMS varmtvannskontroll

Som et eksempelprosjekt beskriver denne instruksjonsboken hvordan du slår varmtvannsberederen på og av via SMS og sjekker om den er på eller av. Du trenger en elektriker for å installere den.

Trinn 1: Hurtigstart - SMS -fjernkontroll

Hurtigstart - SMS fjernkontroll
Hurtigstart - SMS fjernkontroll
Hurtigstart - SMS fjernkontroll
Hurtigstart - SMS fjernkontroll

Her er en hurtigstartguide for å bygge din egen SMS -varmtvannskontroll.

  1. Kjøp delene på denne listen..
  2. Installer Arduino IDE versjon 1.5.8 og last ned og installer pfodParser -biblioteket.
  3. Last ned gratis pfodDesigner.
  4. Design din egendefinerte meny for å slå en digital inngang på og av fra en menyglider på Android -mobilen din.
  5. Generer koden, velg SeeedStudio SIM900 GPRS -skjerm som tilkobling. (Det er også et alternativ for IteadStudio SIM900 -skjoldet).
  6. Overfør den genererte koden fra mobilen din til IDE (se pfodAppForAndroidGettingStarted.pdf for detaljer), legg til ditt hemmelige passord, kompiler og last ned til Arduino Mega 2560.
  7. Installer SIM -kortet i GPRS -skjoldet, og koble skjermen til Mega 2560. Sørg for at Serial -koblingene er satt til Hardware Serial som vist ovenfor.
  8. Koble den digitale utgangen til solid state, eller normalt, relé mellom D3 og GND (eller hvilken pinne du valgte i pfodDesigner). Se Hvordan legge til reléer til Arduino for mer informasjon om reléer.
  9. Koble USB -strøm til Mega. Bibliotekskoden driver GPRS -skjoldet for deg..
  10. Installer pfodApp på din Android -mobil og sett opp en SMS -tilkobling til skjoldets sim -telefonnr. (se pfodAppForAndroidGettingStarted.pdf for detaljer). Angi passordet for tilkoblingen hvis du la til et..
  11. Koble til og se din egendefinerte meny vises via SMS. Klikk på knappen for å slå reléet på eller av..
  12. Få elektriker til å installere reléet i varmtvannskretsen og koble til USB -strømforsyningen for å drive Mega og skjoldet

Trinn 2: Flere detaljer

pfodDesigner

PfodDesigner vil generere all koden du trenger for å slå solid state eller et annet relé av og på, men SMS-tilkoblingen i pfodParser-biblioteket støtter alle pfod-skjermene, så når du kommer i gang kan du legge til undermenyer, numeriske glidebrytere, glidebrytere med flere tekster, tekstinndataskjermer, datalogging og plotting alt via SMS. Se pfodSpecification.pdf for alle skjermbilder og meldinger som støttes.

Den genererte koden er her. Den har ingen melding og bare en enkelt bryter for å holde meldingen kort. Lange menyer sendes via flere SMS -meldinger som tar lengre tid å ankomme. Hvis du har en lang meny, håndterer sms -tilkoblingskoden i pfodParser -biblioteket alt dette for deg.

For å legge til et passord i SMS -tilkoblingen, endre linjen

parser.connect (& pfodSMS); // koble parser til SMS -strøm til noe som parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

men bruk ditt eget passord på opptil 32 sekssifre, 0..9 A.. F. Passord kortere enn 32 sekskantede sifre er polstret med 0 -tall. Se A Simple Wifi/Internet pfodDevice with 128bit security (Arduino) for hvordan du genererer et tilfeldig passord og sender det ut til en QR -kode for enkel inngang til Android. Se også pfodAppForAndroidGettingStarted.pdf

PfodDesigner vil også generere kode for bluetooth- og wifi -tilkoblinger via Serial og Ethernet via SPI alle med valgfri 128 -bits sikkerhet

pfodApp

Det første du må innse er at SMS er sloooow og kanskje ikke kommer dit i det hele tatt eller kommer ut av drift. Så når du kobler deg til pfodApp, vil det være en viss forsinkelse før det kommer et SMS -svar. Hvis meldingen gikk tapt eller forsinket, sender pfodApp den automatisk igjen etter 3 minutter. Etter 5 slike forsøk vil pfodApp fortelle deg at tilkoblingen er tapt. Du kan justere 3 minutter i pfodApps tilkoblingsredigeringsskjerm.

Hvis du legger til et passord, er det seks SMS -meldinger (tre hver vei) før hovedmenyen mottas av pfodApp. Disse ekstra meldingene skjer bare ved den første tilkoblingen, hvoretter det ikke er noen ekstra meldinger når du bruker et passord. Så start uten passord for å se at alt fungerer, og legg deretter til passordet senere.

SMS/GPRS -skjold

Mulige problemer er SIM -kort beskyttet av pin -numre eller ikke autorisert til å koble til nettverket. Pfod -biblioteket slår automatisk på GPRS -skjoldet og ser etter "samtaleklar" -svaret. Hvis svaret ikke kommer, slår biblioteket seg ned og prøver igjen, så hvis du ser at strømlampen på GPRS -skjermen tennes i 20 sekunder og deretter går av, er det et problem med å koble til nettverket. Ta ut SIM -kortet og prøv det på en vanlig telefon. Kontroller at du ikke blir bedt om å oppgi et PIN -nummer.

Hvis det ikke er problemet, må du slå på debugging ved oppstart, som beskrevet nedenfor, for å se hva som skjer.

Drar Mega / GPRS -skjoldet

Skjoldet trekker opp til 2A pulserende og opptil 0,5A kontinuerlig. Forutsatt en 12V batteriforsyning, overstiger 0,5A kapasiteten til Mega ombord strømforsyning. Så dette skjoldet bør IKKE drives fra 7V til 12V inngangen på Mega. Alternativet er å drive Mega og skjoldet via USB -tilkoblingen. Jeg brukte en 1A USB -forsyning. Til testing brukte jeg en Belkin -drevet hub (F4U020) for å forhindre at det ble for mye strøm fra datamaskinens USB -port.

For en 12V batteriforsyning, foreslår jeg at du bruker en kvalitets Automotive USB 5V lader, 1A eller høyere. En USB 5V -strømforsyning av høy kvalitet bør være designet for å håndtere overspenningsspenninger som oppstår i bilens elektriske systemer, og bør derfor passe for de fleste 12V ladesystemer.

Solid State -relé

Siden dette eksempelprosjektet styrer en varmtvannsbereder, (en resistiv belastning), er et Solid State -relé ideelt. Hvis du vil slå motorene på eller av, starte generatorer osv., Snakk med elektriker om et passende relé for jobben. Hvis du trenger et høyt effektrelé, kan du bruke en liten reléstasjon ved arduino -kortet for å slå strømreléet på og av.

Det er mange versjoner solid state relé tilgjengelig. Sørg for at du kjøper på den som kan håndtere strømmen og spenningen til varmeren din og kan styres av 5V likestrøm og noen få milliampere tilgjengelig fra Arduino -utgangspinnen. Den som brukes her, FOTEK SSR-40 DA, bytter opp til 380VAC ved 40Amps og styres av noe mer enn 3V DC og tar mindre enn 7mA.

Du må bruke en varmeavleder, og du må påføre et TYNT utstryk av varmeavleder eller termisk fett på baksiden av solid state -reléet før du bolter det til kjøleribben. Ideen er å dekke overflaten fullstendig med det tynneste laget av vaskeforbindelse for å fylle ut de mikroskopiske dalene i metallets overflate. Når den slås på, faller solid state -bryteren 1,6V som genererer 16Watt varme ved 10Amps. Kjøleribben er nødvendig for å bli kvitt denne varmen, så den må monteres i fri luft, ikke inne i en plastboks.

Forsinkelser er onde

GPRS -skjoldet leverer når som helst SMS -meldinger via seriell tilkobling, og hovedsløyfen () må ringe cmd = parser.parse (); ofte for å behandle serielle data før 64 -bytesbufferen i Arduino -bibliotekskoden fylles opp og data går tapt.

Så du må holde hovedløkken () i gang raskt. Du bør aldri bruke forsinkelse () og bør kontrollere at ingen av bibliotekene du bruker har forsinkelser. Ved å bruke standard 19200 baud rate på SIM900 via Hardware Serial, har jeg ikke funnet det nødvendig å øke bufferstørrelsen i Arduino bibliotekskoden. Jeg bruker ikke Software Serial, bare Serial og Serial1, Hardware Serial -tilkoblinger, og nesten alle meldingene pfodApp sender er veldig små, 10 eller 12 byte. Du kan imidlertid øke Arduino -bufferstørrelsen hvis du ønsker det, ved å endre definisjonen i HardwareSerial.h fra #define SERIAL_BUFFER_SIZE 64 til #define SERIAL_BUFFER_SIZE 128

Men det jeg fant var at hvis jeg aktiverte feilsøkingsutdata, som beskrevet nedenfor, måtte jeg ha en veldig rask overføringshastighet for terminalforbindelsen, ellers forårsaket forsinkelsen ved å sende feilsøkingsmeldinger til terminalen at deler av SMS -meldingene ble savnet.

Installasjon

Jeg la til et skrueterminalskjerm, så jeg hadde noe å koble Solid State -reléledningene til. Jeg har ikke fått elektrikeren til å installere kontrolleren ennå. Den må settes i en isolert boks, men med kjøleribben som stikker ut gjennom et spor og kobles til varmtvannsledningen.

Trinn 3: Forslag til ytterligere forbedringer - varsler, datalogging og plotting

Eksempelprosjektet ovenfor viser bare hvordan vannet er på eller av, og lar deg bytte det. Men SMS -tilkoblingen håndterer alle pfod -meldingene (se pfodSpecification.pdf)

Hvis du legger til temperatursensor til arduinoen din, kan du også sende overvåke temperaturen og sende avlesninger tilbake med jevne mellomrom. For å sende tilbake en datalesning er det samme for bluetooth, wifi eller SMS, bare legg til koden som eksempelet nedenfor. Se Datalogging og plotting for flere detaljer og eksempler på datalogging og plotting.

parser.println (tid); parser.print (','); parser.println (temperatur);

Når pfodSMS -biblioteket ser den nye linjen fra println (), sender den rådata som en SMS. Bare la pfodApp stå på i mobilen i mobilen, så vil mobilen din varsle deg når en SMS mottas. Åpne pfodApp igjen for å bringe det til fronten, og åpne deretter Raw Data -skjermen fra mobilmenyen for å se dataene. Merk: pfodSMS-meldingene er UTF-8-tegn sammen med tilkoblings- og meldingsnumre, kodet med en Base64-koding, slik at de ikke ser ut som vanlig tekst. Se pfodSMS meldingsdesign for alle detaljer.

Du kan bruke den samme prosessen til å sende et varsel når noe endres eksternt. dvs. parser.println (F (“Utetemperatur under 0 ℃”)); Merk: ℃ UTF-8-tegnet i strengen. pfodSMS sender alle UTF-8-tegn videre til pfodApp.

Trinn 4: Debugging mens du bruker SMS -tilkoblingen i PfodParser -biblioteket

Feilsøking mens du bruker SMS -tilkoblingen i PfodParser -biblioteket
Feilsøking mens du bruker SMS -tilkoblingen i PfodParser -biblioteket
Feilsøking mens du bruker SMS -tilkoblingen i PfodParser -biblioteket
Feilsøking mens du bruker SMS -tilkoblingen i PfodParser -biblioteket

PfodDesigner genererer kode som fungerer, men det kan være lurt å feilsøke din egen ekstra kode eller se på hva som skjer mens GPRS -skjoldet starter eller mottar SMS -meldinger. Det er et par tilnærminger du kan ta.

Feilsøking av din egen kode

Hvis du feilsøker din egen kode, kan du bare kommentere pfodSMS -linjen og koble parseren til Serial og deretter fjerne GPRS -skjoldet og kjøre Mega fra Arduino -terminalen. dvs. endre oppsettet () til

//pfodSMS.init(&Serial, 9); // ikke start opp GPRS -skjoldet parser.connect (& Serial); // koble parser til Serial i stedet for SMS -strøm

Deretter kan du skrive inn {.} Fra Arduino -terminalen for å få Mega til å returnere hovedmenyen og deretter sende tilbake kommandoen du vil utføre, f.eks. {A`1} for å slå på reléet og {A`0} for å slå det av. (PfodApp sender vanligvis disse meldingene for deg når du klikker på glidebryteren.) Legg deretter til ekstra feilsøking parser.println () for å overvåke hvilken ekstra kode du la til, gjør.

Overvåking av GPRS -skjoldet

Hvis du vil se hva GPRS -skjoldet gjør. Hvordan den starter, mottar SMS -meldinger osv. Deretter må du bytte skjermledninger, koble den til Mega Serial1 (seriell) og frigjøre Serial (USB) tilkobling for feilsøkingsutgang til Arduino IDE Monitor.

For å koble GPRS -skjoldet til Mega 2560 Serial1, fjern koblinger vist ovenfor og legg til ledningene til Mega TX1 og RX1 pinner.

Endre deretter oppsettskoden () til

ugyldig oppsett () {Serial1.begin (19200); // endre Serial til Serial 1 Serial.begin (57600); // MERK den raske overføringshastigheten for USB Serial -porten // til Arduino IDE -skjermen. for (int i = 3; i> 0; i--) {// vent noen sekunder for å se om vi blir programmert forsinkelse (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // må gjøre dette før pfod_SMS.init // eller andre pfod_SMS -metodesamtaler // initialisere SMS og koble parseren // endre neste linje til Serial1 pfodSMS.init (& Serial1, 9); // koble Seeed GPRS shield V2 til Serial1 i stedet for Serial parser.setDebugStream (& Serial); // må gjøre dette før parser.connect // eller annen parsermetode kaller parser.connect (& pfodSMS); // koble parser til SMS -strøm}

Nå kan du fjerne kommentaren til noen av feilsøkingsinnstillingene i pfodParser -biblioteket på til pfodSMS_SIM900.cpp -filen.

For eksempel vil ikke kommentere #define DEBUG_SETUP skrive ut (til feilsøkingsstrømmen) det som skjer mens du slår på GPRS-skjoldet og gjør det klart for å motta SMS-meldinger.

Ikke kommenter #define DEBUGvil gi mye informasjon om SMS-meldingene som mottas.

Det er det !

Anbefalt: