Hallo Joshua,
nein ich bin absolut nicht böse. Als ich mit dem Programmieren begonnen habe, gab es die Arduino IDE noch nicht darum bin ich beim guten alten Basic geblieben. Ich nutze zwar Arduino Hardware und in Basic hat man nicht den Vorteil einer so großen Community wo es für alles eine LIB gibt aber ich komme trotzdem an mein Ziel. Damit du nicht lange probieren musst schreibe ich mal wie ich die Ansteuerung gemacht habe. Wenn du es ohne Arduiono schaffst währe es für die Leute sicher noch leichter aufzubauen.
Const Wlan_ssid = "SJ4000"
Const Wlan_passwort = "metropolitan" ' Min. 8 Stellen/Zeichen
Const Rec_start = "GET /?custom=1&cmd=2001&par=1 HTTP/1.1" + Chr(10) + Chr(10)
Const Rec_ende = "GET /?custom=1&cmd=2001&par=0 HTTP/1.1" + Chr(10) + Chr(10)
INIT:
Case 1 : Lcd "Reset " : Print "AT+RST" ' ESP8266 Reset
Case 2 : Lcd "Echo off " : Print "ATE0" ' Echo aus
Case 3 : Lcd "CAM SSID suchen " : Print "AT+CWLAP" ' Prüfen ob Cam in Reichweite
Case 4 : Lcd "Clientmode ein " : Print "AT+CWMODE=1" ' clientmode
Case 5 : Lcd "Multi Verb. Mod " : Print "AT+CIPMUX=1" ' Multi Verbindungsmodus-Modus
Case 6 : Lcd "TCP Server Start" : Print "AT+CIPSERVER=1,80" ' TCP Server starten(1)/beenden(0) und TCP Port
Case 7 : Lcd "Set Serv.Timeout" : Print "AT+CIPSTO=0" ' Timeout für automatisches Trennen der Verbindung setzen timeout=0-28800s
Case 8 : Lcd "setze SSID+PW " : Print "AT+CWJAP={034}" ; Wlan_ssid ; "{034},{034}" ; Wlan_passwort ; "{034}" ' Verbinden mit WiFi Netzwerk AT+CWJAP="WLAN Name SSID","WLAN Passwort"
Case 9 : Lcd "IP Pruefen " : Print "AT+CIFSR" ' IP Adresse abrufen
Case 10 : Lcd "Verb. Pruefen " : Print "AT+CWJAP?"
rec_start:
Case 1 : Lcd "Multi Verb. Mod " : Print "AT+CIPMUX=1" ' Multi Verbindungsmodus-Modus
Case 2 : Lcd "Verbindung herst" : Print "AT+CIPSTART=4," ; Chr(34) ; "TCP" ; Chr(34) ; "," ; Chr(34) ; "192.168.1.254" ; Chr(34) ; ",80"
Case 3 : Lcd "Str.lange anmeld" : Print "AT+CIPSEND=4," + Str(string_laenge) 'Länge des Strings senden
Case 4 : Lcd "Start Aufnahme " : Print Sendestring ' Aufnahme Starten senden
rec_ende:
Case 1 : Lcd "Verbindung herst" : Print "AT+CIPSTART=4," ; Chr(34) ; "TCP" ; Chr(34) ; "," ; Chr(34) ; "192.168.1.254" ; Chr(34) ; ",80"
Case 2 : Lcd "Str.lange anmeld" : Print "AT+CIPSEND=4," + Str(string_laenge) 'Länge des Strings senden
Case 3 : Lcd "Ende Aufnahme " : Print Sendestring ' Aufnahme Starten senden
Hoffe das hilft dir ein wenig. Habe eine ganze weile rum probiert bis die CAM reagiert hat.
Gruß Charly
Hey, cool das hier wieder so aktiv diskutiert wird.
Zur Frage: schau mal an den Anfang des Themas, da steht was von GET und auch etwas zu den spezialitäten.
Was das Tüfteln und Entwickeln angeht bin ich gern bereit mitzuwirken.
Das mit dem Platine erstellen hab ich schon ein paar kleinere Projekte gemeinsam mit meinem Cousin gemeistert.
Mir hat diese Seite sehr gut gefallen
http://thomaspfeifer.net/platinen_aetzen.htm
Nur technisch wollte ich mal hinterfragen wie das im weitesten Sinne funktioniert..
- Es muss eine WLAN-Verbindung aufgebaut werden
- Es muss ein GET/POST gesendet werden
Wird hier also ein bestimmter Befehlssatz oder eine art Schleife auf dem Controller gespeichert und sobald Strom kommt wird das ganze bei Start ausgeführt?
Genau, ich bin gerade dabeib es auszuprobieren.
Das Listing von Charly ist super, jedoch habe ich ein kurze Frage:
Was macht die Chr() Funktion in Basic?
Etwas in Char umwandeln?
Gruß Joshua
Ok,
chr(10) ist eine Zeilenumbruch, das habe ich raus, aber wie genau sieht dein Sendestring aus?
Ich bin mittlerweile soweit, das ich auf der Kamera bin und den Server offen haben, jedoch schluckt er meinen Sendestring nicht!
Wie sieht deiner aus?
Et voilà:
https://github.com/sigrokBlack/SJ4000_Wifi_Remote
Es läuft, im Moment noch sehr simpel:
Strom an den ESP8266 und es wird eine 5s Aufnahme gemacht, das wäre der Anfang!
Zum Thema Strom:
Ich werde den DEEPSLEEP vom ESP einbauen und mit einem Taster, diesen triggern.
Das heißt, es gibt einen Taster, der die Aufnahme startet oder stoppt.
Vielleicht komme ich heute Abend noch dazu.
Gruß Joshua
Hi,
schön das die Sache hier so schnell an Fahrt gewinnt.
Joshua, ich habe dir mal einen Screenshot aus meinem Terminalprorgamm angehangen mit der kompletten Sequenz um die Aufnahme zu starten incl. der nicht sichtbaren Zeichen 10 und 13. Darum auch die Dez. Dekodierung untern den Zeichen. Ist etwas schwer zu lesen aber sicher leichter als ewig zu probieren. Ich hatte Tagelang auch das Problem das der Connect kein Thema war aber er wollte einfach die Aufnahme nicht starten. Die Stringlänge Beträgt exact 44 Zeichen. Die musst du auch so anmelden mit AT+CIPSEND=4,44<r><n> Sonst funktioniert es nicht. Die Nichtdruckbaren Zeichen werden mitgezählt. Jetzt bin ich mal gespannt was du daraus machst.
`AT+CIPMUX=1<r><n>
AT+CIPSTART=4,"TCP","192.168.1.254",80<r><n>
AT+CIPSEND=4,44<r><n>
GET /?custom=1&cmd=2001&par=1 HTTP/1.1<n><n><r><n>
<r><n>
Ich habe heute Geburtstag und darum nicht viel Zeit. Aber ich werde die Tage mal einen Minimalaufbau machen und die Software etwas Energiesparend optimieren. Nachteil ist wenn man das WLAN abschaltet ist das es einen Moment dauert bis die Verbindung wieder steht und man merkt nicht wenn sich die CAM ausser Reichweite bewegt hat.
Übrigens wer evtl. die Passende Hardware da hat oder besorgen kann, kann sich gern als Beta Tester melden ! Ich kann die Software ohne riesen aufwand auf nahezu jeden Atmel Controller umschreiben. Es muss nicht unbedingt ein Mega328 sein. Alles ab AtMega8 sollte funktionieren.
Gruß Charly
Weiß jemand zufällig wie man ein einzelnes Foto aufnehmen kann? Bei mir geht nur Video. Gibts für Fotos eine eigene Sendesequenz um das auszulösen ? Meine Cam macht sobald WiFi aktiv ist nur Videos.
EDIT: Dein Post und meiner haben sich überschnitten. Ich war zu langsam wegen dem Screenshot machen. Danke das du mich sogar erwähnt hast :-)
Dein Code sieht schön schlank aus. Und wie man das GET Sendet hast du jetzt auch schon allein raus bekommen. Mein Code ist ca. 300 Zeilen lang, aber ich habe ja auch noch die Display Geschichten drin und die Tasterabfrage sowie die Connectüberwachung. Deine Software läuft also praktisch direkt auf dem ESP8266 Modul ohne Arduino dazwischen richtig ? Das ist Praktisch um die FB schön klein zu halten.
Um den DeepSleep Modus nutzen zu können müsstest du das Modul wahrscheinlich etwas umbauen. Bei mir ist der Pin nicht belegt um das ESP8266 wieder aufzwecken. Mein Modul habe ich umgebaut dafür ist aber sehr fummelig. Schlafen legen geht aber wecken nicht :-)
Super!
Erstmal herzlichen Glückwunsch!
Ich werde nachher die Bins posten, die kann dann jeder direkt auf den ESP flashen und durch Drücken eines Taster die Aufnahme Starten/Stoppen...
Aber ohne DeepSleep Funktion(bis jetzt).
Gruß Joshua
Ich habe noch ein ESP201 (dieses weiße Board, wo Tx/Rx/+/- so blöd an gebracht sind. Da ist Pin 16 frei, ich glaub es gibt auch nich andere Bauarten, die Pin 16 frei haben.
Die 01 Version ist wegen dem Doppelpinheader eben richtig blöd.
Ich mach mich gleich an den DeepSleep.
Hast du die Möglichkeit, deinen ESP zu flashen(zB.esptool)?
Dann kann ich dir die Bins geben, zum Flashen
Gruß
Joshua
So,
hier ist die Bin:
https://github.com/sigrokBlack/SJ4000_Wifi_Remote
Stell deine Kamera so ein:
Wifi SSID: SJ4000
Wifi Passwort : 123456789
Es wird eine kurze 5s Aufnahme gemacht.
DeepSleep hakelt noch ein bisschen, aber ich bin dran
Charly, alles Gute! Lass Dich feiern! :)
Toll, dass es hier nun so energisch voran geht. :)