Mit dem SIM800L ins Internet
Verfasst: Di 29. Dez 2015, 12:16
An anderer Stelle habe ich schon dargestellt, wie man mit dem SIM800L-Modul eine SMS verschicken kann. Jetzt zeige ich, wie man mit diesem Modul ins Internet kommt. Natürlich kann auf dem Attiny2313 kein Browser arbeiten; deswegen möchte ich mich hier darauf beschränken, deutlich zu machen, wie man eine Datei über eine HTTP-Anfrage mittels AT-Commands abruft. Der Einfachheit halber verdeutliche ich dies mithilfe eines Terminals; die Attiny-Platine wird - wie schon in dem Beitrag SMS verschicken mit dem Modul SIM800L lediglich als Pegelwandler benutzt. Wie man den Attiny selbstständig agieren lassen kann, habe ich bereits in dem Beitrag Attiny sendet Alarm-SMS dargestellt.
Es folgt nun das kommentierte Protokoll für eine HTTP-Anfrage; die Eingaben/Echos sind dabei fett geschrieben.
AT
OK
//PIN eingeben
AT+CPIN="xxxx"
OK
+CPIN: READY
Call Ready
SMS Ready
//im GPRS-Netz eingebucht? (1 -> eingebucht, 0 -> nicht eingebucht)
AT+CGATT?
+CGATT: 1
OK
//Wenn nicht, dann einbuchen mit...
AT+CGATT=1
OK
//Nutzer-Angaben (ALDI-TALK)
AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.eplus.de"
OK
AT+SAPBR=3,1,"USER","eplus"
OK
AT+SAPBR=3,1,"PWD","gprs"
OK
//GPRS-Kontext öffnen; LED blinkt dann sehr rasch
AT+SAPBR=1,1
OK
//Nutzer-Anfrage
AT+SAPBR=2,1
+SAPBR: 1,1,"10.238.167.95" //Nutzer 1 hat lokale IP 10.238.167.95
OK
//HTTP-Dienst initialisieren
AT+HTTPINIT
OK
//HTTP-Parameter setzen: Nutzer-ID auf 1 setzen
AT+HTTPPARA="CID",1
OK
//HTTP-Parameter setzen: URL angeben
AT+HTTPPARA="URL","http://www.google.de/"
OK
//Abfrage starten (0->GET)
AT+HTTPACTION=0
OK
+HTTPACTION: 0,200,19048 //0->GET, 200->OK, 19048->Anzahl der Bytes
//Antwort des HTTP-Servers lesen
AT+HTTPREAD
+HTTPREAD: 19048
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:'0zRjVri7CKv4ywO2qIaACw',kEXPI:'1350081,3700275,4029572,4029815,4031109,4032677,4033307,4033344,4036527,4038012,4039268,4040137,4041837,4042552,4042785,4042793,4043255,4043457,4043459,4043492,4044606,4044954,4045820,4045841,4046304,4046399,4048007,4048011,4048854,4048909,4049201,4049541,4049548,4049556,4049604,4049896,4050914,4051152,4051665,4051716,4051795,4051833,4052041,4052804,4053110,4053148,4053347,4054036,4054384,4054446,4054806,4055217,4055289,4055302,4055543,4055692,4055965,8300096,8300273,8300289,8300295,8502312,8502314,8502318,8502342,8502452,8502552,8502691,10200083,10201419,10201493',authuser:0,kscs:'c9c918f0_10'};google.kHL='de';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(d){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,d,e,g){a=google.logUrl(a,b,d,e,g);if(""!=a){b=new Image;var c=google.lc,f=google.li;c[f]=b;b.onerror=b.onload=b.onabort=function(){delete c[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,d,e,g){var c="",f=google.ls||"";if(!d&&-1==b.search("&ei=")){var h=google.getEI(e),c="&ei="+h;-1==b.search("&lei=")&&((e=google.getLEI(e))?c+="&lei="+e:h!=google.kEI&&(c+="&lei="+google.kEI))}a=d||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+c+f+"&zx="+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b]; ...
//HTTP-Dienst beenden
AT+HTTPTERM
OK
//GPRS-Kontext schließen; LED blinkt dann wieder im 3-s-Rhythmus
AT+SAPBR=0,1
OK
//oder...
AT+CGATT=0
OK
Es folgt nun das kommentierte Protokoll für eine HTTP-Anfrage; die Eingaben/Echos sind dabei fett geschrieben.
AT
OK
//PIN eingeben
AT+CPIN="xxxx"
OK
+CPIN: READY
Call Ready
SMS Ready
//im GPRS-Netz eingebucht? (1 -> eingebucht, 0 -> nicht eingebucht)
AT+CGATT?
+CGATT: 1
OK
//Wenn nicht, dann einbuchen mit...
AT+CGATT=1
OK
//Nutzer-Angaben (ALDI-TALK)
AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.eplus.de"
OK
AT+SAPBR=3,1,"USER","eplus"
OK
AT+SAPBR=3,1,"PWD","gprs"
OK
//GPRS-Kontext öffnen; LED blinkt dann sehr rasch
AT+SAPBR=1,1
OK
//Nutzer-Anfrage
AT+SAPBR=2,1
+SAPBR: 1,1,"10.238.167.95" //Nutzer 1 hat lokale IP 10.238.167.95
OK
//HTTP-Dienst initialisieren
AT+HTTPINIT
OK
//HTTP-Parameter setzen: Nutzer-ID auf 1 setzen
AT+HTTPPARA="CID",1
OK
//HTTP-Parameter setzen: URL angeben
AT+HTTPPARA="URL","http://www.google.de/"
OK
//Abfrage starten (0->GET)
AT+HTTPACTION=0
OK
+HTTPACTION: 0,200,19048 //0->GET, 200->OK, 19048->Anzahl der Bytes
//Antwort des HTTP-Servers lesen
AT+HTTPREAD
+HTTPREAD: 19048
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script>(function(){window.google={kEI:'0zRjVri7CKv4ywO2qIaACw',kEXPI:'1350081,3700275,4029572,4029815,4031109,4032677,4033307,4033344,4036527,4038012,4039268,4040137,4041837,4042552,4042785,4042793,4043255,4043457,4043459,4043492,4044606,4044954,4045820,4045841,4046304,4046399,4048007,4048011,4048854,4048909,4049201,4049541,4049548,4049556,4049604,4049896,4050914,4051152,4051665,4051716,4051795,4051833,4052041,4052804,4053110,4053148,4053347,4054036,4054384,4054446,4054806,4055217,4055289,4055302,4055543,4055692,4055965,8300096,8300273,8300289,8300295,8502312,8502314,8502318,8502342,8502452,8502552,8502691,10200083,10201419,10201493',authuser:0,kscs:'c9c918f0_10'};google.kHL='de';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b};google.https=function(){return"https:"==window.location.protocol};google.ml=function(){return null};google.wl=function(a,b){try{google.ml(Error(a),!1,b)}catch(d){}};google.time=function(){return(new Date).getTime()};google.log=function(a,b,d,e,g){a=google.logUrl(a,b,d,e,g);if(""!=a){b=new Image;var c=google.lc,f=google.li;c[f]=b;b.onerror=b.onload=b.onabort=function(){delete c[f]};window.google&&window.google.vel&&window.google.vel.lu&&window.google.vel.lu(a);b.src=a;google.li=f+1}};google.logUrl=function(a,b,d,e,g){var c="",f=google.ls||"";if(!d&&-1==b.search("&ei=")){var h=google.getEI(e),c="&ei="+h;-1==b.search("&lei=")&&((e=google.getLEI(e))?c+="&lei="+e:h!=google.kEI&&(c+="&lei="+google.kEI))}a=d||"/"+(g||"gen_204")+"?atyp=i&ct="+a+"&cad="+b+c+f+"&zx="+google.time();/^http:/i.test(a)&&google.https()&&(google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a};google.y={};google.x=function(a,b){google.y[a.id]=[a,b]; ...
//HTTP-Dienst beenden
AT+HTTPTERM
OK
//GPRS-Kontext schließen; LED blinkt dann wieder im 3-s-Rhythmus
AT+SAPBR=0,1
OK
//oder...
AT+CGATT=0
OK