INHOUDSOPGAWE:
- Stap 1: Vinnige aanvang - SMS -afstandbeheer
- Stap 2: Meer besonderhede
- Stap 3: Voorstelle vir verdere verbeterings - waarskuwings, datalogging en plot
- Stap 4: Ontfout tydens die gebruik van die SMS -verbinding in die PfodParser -biblioteek
Video: Betroubare, veilige, aanpasbare SMS -afstandsbediening (Arduino/pfodApp) - geen kodering nodig nie: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Opdatering 6 Julie 2018: 'n 3G/2G -weergawe van hierdie projek, wat SIM5320 gebruik, is hier beskikbaar
Opdatering: 19 Mei 2015: Gebruik die pfodParser -biblioteek weergawe 2.5 of hoër. Dit los 'n gerapporteerde probleem op omdat dit nie genoeg tyd toelaat om die skerm na die aanskakel aan die netwerk te koppel nie
Inleiding
Hoe verskil pfodSMS-afstandsbediening van ander implementerings:-
- Dit is betroubaar-op bevele word altyd gereageer en verlore boodskappe word weer versoek
- Dit is veilig - gebruik 'n wagwoordbeskerming van 128 bis
- Dit benodig geen derdeparty -webdiensrekeninge nie - benodig slegs 'n aktiewe SIM -kaart (sonder 'n speld)
- Dit is aanpasbaar - u kan pfodDesigner gebruik om u eie spyskaart te skep
- Dit is maklik - die pfodDesigner genereer al die kode. U hoef geen kodering te doen nie.
- Dit is buigbaar-al die pfod-skerms is beskikbaar via SMS, soos sub-spyskaarte, multi- en enkele keuringslys, teksinvoer, datalogging en plot.
Sien die ontwerp van pfodSMS -boodskappe vir meer inligting oor hoe die SMS -verbinding betroubaar gemaak word. Sien pfodDesigner, Android / Arduino -spyskaarte wat eenvoudig is vir meer inligting oor die ontwerp van u eie pasgemaakte spyskaart. Sien die pfodSpecification.pdf vir die besonderhede van al die pfod -boodskappe en skerms wat u self kan byvoeg.
Voorbeeldprojek - SMS Warmwaterbeheer
As 'n voorbeeldprojek beskryf hierdie instruksie hoe u u warmwaterverwarmer via SMS kan aan- en afskakel en kyk of dit aan of af is. U benodig 'n elektrisiën om dit te installeer.
Stap 1: Vinnige aanvang - SMS -afstandbeheer
Hier is 'n vinnige gids vir die bou van u eie SMS -warmwaterbeheer.
- Koop die onderdele op hierdie lys..
- Installeer die Arduino IDE weergawe 1.5.8 en laai en installeer die pfodParser -biblioteek..
- Laai die gratis pfodDesigner af.
- Ontwerp u pasgemaakte spyskaart om 'n digitale invoer aan en af te skakel vanaf 'n spyskaartskuif op u Android -selfoon.
- Genereer die kode en kies SeeedStudio SIM900 GPRS -skild as die verbinding. (Daar is ook 'n opsie vir die IteadStudio SIM900 -skild).
- Dra die gegenereerde kode van u selfoon oor na die IDE (sien die pfodAppForAndroidGettingStarted.pdf vir meer inligting), voeg u geheime wagwoord by, stel dit op en laai dit af na die Arduino Mega 2560.
- Installeer u SIM -kaart in die GPRS -skild en steek die skerm in die Mega 2560. Maak seker dat die Serial -skakels op Hardware Serial is ingestel soos hierbo getoon.
- Koppel die digitale uitset aan die vaste toestand of normale relais tussen D3 en GND (of die pen wat u ooit in die pfodDesigner gekies het). Kyk hoe om relais by Arduino te voeg vir meer besonderhede oor relais..
- Dien USB -krag toe op die Mega. Die biblioteekkode versterk die GPRS -skild vir u..
- Installeer pfodApp op u Android -selfoon en skep 'n SMS -verbinding met die sim -telefoonnommer van die skild. (sien die pfodAppForAndroidGettingStarted.pdf vir meer inligting). Stel die wagwoord vir die verbinding in as u een bygevoeg het.
- Koppel aan en sien u pasgemaakte spyskaart via SMS. Klik op die knoppie om die aflos aan of uit te skakel..
- Laat u elektrisiën die relais in u warmwaterbaan installeer en die USB -kragtoevoer aansluit om die Mega en die skerm aan te dryf
Stap 2: Meer besonderhede
pfodDesigner
Die pfodDesigner sal al die kode genereer wat u nodig het om die vaste toestand of 'n ander relais aan en af te skakel, maar die SMS-verbinding in die pfodParser-biblioteek ondersteun al die pfod-skerms, sodat u, as u aan die gang is, sub-spyskaarte, numeriese skuifbalkies kan byvoeg, multi-teks glyers, teks invoer skerms, data logging en plot alles via SMS. Kyk na die pfodSpecification.pdf vir al die skerms en boodskappe wat ondersteun word.
Die gegenereerde kode is hier. Dit het geen boodskap nie en slegs 'n enkele skakelaar om die boodskap kort te hou. Lang spyskaarte word gestuur via verskeie SMS -boodskappe wat langer neem om te arriveer. As u 'n lang spyskaart het, hanteer die sms -verbindingskode in die pfodParser -biblioteek dit alles vir u.
Verander die reël om 'n wagwoord by u SMS -verbinding te voeg
parser.connect (& pfodSMS); // koppel parser aan SMS -stroom na iets soos parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));
maar gebruik u eie wagwoord van tot 32 heksiesyfers, 0..9 A.. F. Wagwoorde korter as 32 heksgetalle is gevul met 0's. Sien 'n Eenvoudige wifi/internet -toestel met 128bit -sekuriteit (Arduino) vir 'n ewekansige wagwoord en stuur dit na 'n QR -kode vir maklike invoer op u Android. Sien ook pfodAppForAndroidGettingStarted.pdf
Die pfodDesigner sal ook kode genereer vir Bluetooth- en wifi -verbindings via Serial en Ethernet via SPI, almal met opsionele 128bit -sekuriteit
pfodApp
Die eerste ding wat u moet besef, is dat SMS stadig is en moontlik glad nie daar aankom of buite werking kom nie. As u dus met pfodApp skakel, sal daar 'n paar vertragings duur voordat daar 'n SMS -antwoord is. As die boodskap verdwaal of vertraag word, stuur pfodApp dit outomaties weer na 3 minute. Na 5 sulke pogings sal die pfodApp jou vertel dat die verbinding verlore is. U kan die tyd van 3 minute aanpas in die pfodApp se verbindingsbewerkingsskerm.
As u 'n wagwoord byvoeg, is daar ses SMS -boodskappe (drie in elke rigting) voordat die hoofkieslys deur die pfodApp ontvang word. Hierdie ekstra boodskappe gebeur slegs op die aanvanklike verbinding, waarna daar geen ekstra boodskappe is wanneer u 'n wagwoord gebruik nie. Begin dus sonder 'n wagwoord om te sien dat alles werk en voeg dan die wagwoord later by.
SMS/GPRS skild
Moontlike probleme is SIM -kaarte wat deur speldnommers beskerm word of nie gemagtig is om aan die netwerk te koppel nie. Die pfod -biblioteek skakel die GPRS -skild outomaties aan en soek die 'oproep gereed' antwoord. As die antwoord nie kom nie, skakel die biblioteek af en probeer dit weer, dus as u die aan / uit -lampie op die GPRS -skerm sien brand, gaan dit vir 20 sekondes aan en gaan dan uit, is daar 'n probleem met die verbinding met die netwerk. Haal die SIM uit en probeer dit met 'n gewone telefoon. Kontroleer of u nie 'n speldommer benodig nie.
As dit nie die probleem is nie, moet u die opstartopsporing, soos hieronder beskryf, aanskakel om te sien wat gebeur.
Skakel die Mega / GPRS -skild aan
Die skild trek tot 2A gepuls en tot 0,5A deurlopend. Gestel van 'n 12V -batterytoevoer, oorskry die 0.5A die kapasiteit van die Mega aan boord. Hierdie skild moet dus NIE van die 7V tot 12V ingang op die Mega aangedryf word nie. Die alternatief is om die Mega en die skerm via die USB -verbinding aan te skakel. Ek het 'n 1A USB -toevoer gebruik. Vir die toets het ek 'n Belkin -aangedrewe hub (F4U020) gebruik om te voorkom dat oormatige stroom uit my rekenaar se USB -poort kom.
Vir 'n 12V -batterytoevoer stel ek voor dat u 'n kwaliteit USB 5V -laaier, 1A, of hoër van die motor gebruik. 'N Kwaliteit USB 5V -toevoer vir motors moet ontwerp word om spanningspieke wat in elektriese motors voorkom, te hanteer, en moet dus geskik wees vir die meeste 12V -laaistelsels.
Solid State -aflos
Aangesien hierdie voorbeeldprojek 'n warmwaterverwarmer beheer ('n weerstandsbelasting), is 'n Solid State -aflos ideaal. As u motors wil aan- of afskakel, kragopwekkers begin, ens., Praat met u elektrisiën oor 'n geskikte relais vir die werk. As u 'n relais met 'n hoë krag benodig, kan u 'n klein relaiaandrywing deur die arduino -bord gebruik om die kragrelais aan en af te skakel.
Daar is baie weergawes solid state relais beskikbaar. Maak seker dat u 'n aankoop doen wat die stroom en spanning van u verwarmer kan hanteer, en dit kan beheer word deur 5V DC en 'n paar milliamps beskikbaar by die Arduino -uitvoerpen. Die een wat hier gebruik word, FOTEK SSR-40 DA, skakel oor na 380VAC by 40Amps en word beheer deur meer as 3V DC en neem minder as 7mA.
U moet 'n koellichaam gebruik en 'n dun strepie warmvloeistofverbinding of termiese vet aan die agterkant van die vaste toestand -aflos aanbring voordat u dit aan die koeler vasbout. Die idee is om die oppervlak heeltemal te bedek met die dunste laag wasbak om die mikroskopiese valleie in die metaaloppervlak in te vul. As dit aangeskakel word, daal die skakelaar van die vaste toestand met 1.6V, wat 16 Watt warmte genereer by 10Amps. Die hittebak moet van hierdie hitte ontslae raak, sodat dit in vrye lug gemonteer moet word, nie in 'n plastiekboks nie.
Vertragings is boos
Die GPRS -skild lewer te eniger tyd sms -boodskappe via die seriële verbinding en u hooflus () moet cmd = parser.parse () bel; dikwels om die seriële data te verwerk voordat die 64 -byt buffer in die Arduino -biblioteekkode gevul word en data verlore gaan.
U moet dus u hooflus () vinnig laat loop. U moet nooit vertraging () gebruik nie en moet seker maak dat nie een van die biblioteke wat u gebruik vertraag nie. Met die standaard 19200 baud rate van die SIM900 via Hardware Serial, het ek dit nie nodig gevind om die buffergrootte in die Arduino -biblioteekkode te vergroot nie. Ek gebruik nie Software Serial nie, slegs Serial en Serial1, Hardware Serial -verbindings en byna al die boodskappe wat die pfodApp stuur, is baie klein, 10 of 12 grepe. U kan die grootte van die Arduino -buffer egter verhoog, as u wil, deur die definisie in HardwareSerial.h te verander van #define SERIAL_BUFFER_SIZE 64 na #define SERIAL_BUFFER_SIZE 128
Maar wat ek wel gevind het, was dat as ek ontfoutingsuitset moontlik maak, soos hieronder beskryf, ek 'n baie vinnige baud -koers vir die terminale verbinding moes hê, anders het die vertraging wat deur die stuur van ontfoutingsboodskappe na die terminale veroorsaak is, gedeeltes van die SMS -boodskappe gemis.
Installasie
Ek het 'n skroefklemskerm bygevoeg, sodat ek iets het om die reliëfdrade van die Solid State aan te sluit. Ek het nog nie my elektrisiën die kontroleerder laat installeer nie. Dit moet in 'n geïsoleerde boks gesit word, maar met 'n koellichaam wat deur 'n gleuf steek en in die warmwaterkabel gelei word.
Stap 3: Voorstelle vir verdere verbeterings - waarskuwings, datalogging en plot
Die voorbeeld hierbo is net hoe water aan of af is, en u kan dit verander. Maar die SMS -verbinding hanteer al die pfod -boodskappe (sien pfodSpecification.pdf)
As u 'n temperatuursensor by u arduino voeg, kan u ook die temperatuur monitor en gereeld metings terugstuur. Om 'n data -teruglees terug te stuur, is dieselfde vir bluetooth, wifi of sms, voeg net die kode by soos in die voorbeeld hieronder. Sien datalogging en -plot vir meer besonderhede en voorbeelde van datalogging en -plot.
parser.println (tyd); parser.print (','); parser.println (temperatuur);
As die pfodSMS -biblioteek die nuwe reël vanaf println () sien, stuur dit die rou data as 'n SMS. Laat pfodApp op u selfoon op die agtergrond loop, en u selfoon sal u in kennis stel wanneer 'n SMS ontvang word. Maak pfodApp weer oop om dit na die voorkant te bring en maak dan die skerm vir rou data uit die spyskaart van die selfoon oop om die data te sien. Opmerking: die pfodSMS-boodskappe is UTF-8-karakters, tesame met verbindings- en boodskapnommers, met behulp van 'n Base64-kodering, sodat dit nie soos normale teks lyk nie. Sien pfodSMS -boodskapontwerp vir al die besonderhede.
U kan dieselfde proses gebruik om 'n waarskuwing te stuur wanneer iets op afstand verander. dws parser.println (F (“Buitentemperatuur onder 0 ℃”)); Let op: die ℃ UTF-8-teken in die string. pfodSMS gee alle UTF-8-karakters deur na die pfodApp.
Stap 4: Ontfout tydens die gebruik van die SMS -verbinding in die PfodParser -biblioteek
Die pfodDesigner genereer kode wat werk, maar u wil moontlik u eie ekstra kode ontfout of kyk wat gebeur terwyl die GPRS -skerm begin of SMS -boodskappe ontvang. Daar is 'n paar benaderings wat u kan volg.
Ontfout u eie kode
As u u eie kode ontfout, kan u kommentaar lewer op die pfodSMS -lyn en die parser aan Serial koppel en die GPRS -skild verwyder en die Mega vanaf die Arduino -terminale laat loop. dws verander die opstelling () na
//pfodSMS.init(&Serial, 9); // begin nie die GPRS -skild parser.connect (& Serial) nie; // koppel parser aan Serial in plaas van SMS -stroom
Tik vanaf die Arduino -terminale {.} In om die Mega te laat terugkeer na die hoofkieslys en stuur dan die opdrag terug wat u wil uitvoer, bv. {A`1} om die aflos aan te skakel en {A`0} om dit af te skakel. (Die pfodApp stuur gewoonlik hierdie boodskappe vir u as u op die skuifbalk klik.) Voeg dan ekstra ontfouting parser.println () by om te monitor wat die ekstra kode wat u bygevoeg het, doen.
Monitor die GPRS -skild
As u wil sien wat die GPRS -skild doen. Hoe dit begin, SMS -boodskappe ontvang, ens. Dan moet u die bedrading van die skerm verander, dit aan die Mega Serial1 (seriële een) koppel en die Serial (USB) -verbinding vir ontfouting na die Arduino IDE Monitor vrystel.
Om die GPRS -skild aan die Mega 2560 Serial1 te koppel, verwyder die skakels hierbo getoon en voeg die drade by die Mega's TX1 en RX1 penne.
Verander dan die setup () -kode na
ongeldige opstelling () {Serial1.begin (19200); // verander Serial in Serial 1 Serial.begin (57600); // Let op die vinnige baud -tempo vir die USB -seriële poort // na die Arduino IDE -monitor. vir (int i = 3; i> 0; i--) {// wag 'n paar sekondes om te sien of ons vertraag word (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (en reeks); // moet dit doen voordat pfod_SMS.init // of enige ander pfod_SMS metode oproep // die SMS inisialiseer en die ontleder koppel // verander die volgende reël na Serial1 pfodSMS.init (& Serial1, 9); // verbind Seeed GPRS shield V2 met Serial1 in plaas van Serial parser.setDebugStream (& Serial); // moet dit doen voor parser.connect // of enige ander ontledingsmetode bel parser.connect (& pfodSMS); // koppel ontleder aan SMS -stroom}
U kan nou 'n paar van die ontfoutingsinstellings in die pfodParser -biblioteek by die of van die pfodSMS_SIM900.cpp -lêer oplos.
Byvoorbeeld, sonder om kommentaar te lewer op #define DEBUG_SETUP sal (na die ontfoutstroom) wat daar gebeur, afdruk terwyl die GPRS-skerm aangeskakel word en gereed gemaak word om SMS-boodskappe te ontvang.
As u geen kommentaar lewer nie #define DEBUG sal baie inligting gee oor die SMS-boodskappe wat ontvang word.
Dis dit !
Aanbeveel:
Dopamienboks - 'n Projek soortgelyk aan Mike Boyd - nie Mike Boyd's nie: 9 stappe
Dopamienboks | 'n Projek soortgelyk aan Mike Boyd - nie die van Mike Boyd nie: ek wil een hê! Ek het een nodig! Ek is 'n uitstel! Ek wil 'n dopamien boks hê … Sonder om te hoef te programmeer. Geen geluide nie, net pure wil
Arduino Uno + ESP8266 ESP-01 Skakel 'n lamp oor die internet aan (nie LAN WIFI nie): 3 stappe
Arduino Uno + ESP8266 ESP-01 Skakel 'n lamp oor die internet aan (nie LAN WIFI nie): Skakel 'n lamp aan via 'n webwerf op enige toestel met 'n webblaaier in die toestel, selfs al is u ver van die lamp af. U het toegang tot die webwerf via u skootrekenaar, slimfoon of iets anders met die webblaaier wat op die toestel geïnstalleer is
FIR -filter vir meer betroubare frekwensiedetectie: 5 stappe
FIR -filter vir meer betroubare frekwensiedeteksie: ek is regtig 'n groot aanhanger van die instruksies van akellyirl oor betroubare frekwensiedetectie met behulp van DSP -tegnieke, maar soms is die tegniek wat hy gebruik het nie goed genoeg as u raserige metings het nie. frekwensie
Hoed nie hoed nie - 'n hoed vir mense wat nie regtig hoede dra nie, maar 'n hoedervaring wil hê: 8 stappe
Hat Not Hat - 'n hoed vir mense wat nie regtig hoede dra nie, maar graag 'n hoedervaring wil hê: ek het altyd gewens ek kon 'n hoedpersoon wees, maar het nog nooit 'n hoed gevind wat vir my werk nie. Hierdie " Hat Not Hat, " of fascinator soos dit genoem word, is 'n boonste oplossing vir my hoedprobleem waarin ek die Kentucky Derby, vakuum, kan bywoon
Maklike, goedkoop en betroubare aanraaksensor met slegs 3 dele: 3 stappe
Maklike, goedkoop en betroubare aanraaksensor met slegs drie dele: dit is baie handig om allerhande elektroniese toestelle met u vinger te beheer. In hierdie instruksies sal ek jou wys hoe om 'n maklike, maar kragtige aanraaksensor te bou wat foutloos werk. Al wat u nodig het, is 'n standaard transistor en twee