hallo gemu2015
Mit einem externen PIR funktioniert die Camera. Habe ich die Möglichkeit ohne den externen PIR
Bewegungen zu erkennen und auf SD Card zu speichern.
hallo gemu2015
Mit einem externen PIR funktioniert die Camera. Habe ich die Möglichkeit ohne den externen PIR
Bewegungen zu erkennen und auf SD Card zu speichern.
Salut tuturor,
Am citit acest thread, de vreo 3 ori, este ceva ce fac greșit, dar nu știu ce
I'm still not able to see the SD card , the photos are saved in camera's flash
the bin used is that posted before tasmota.bin (deutch)
this is the script
>D 40
IP=192.168.1.142
SB=8192
res=0
cnt=0
tmp=0
pr=0
w=0
h=0
tstr=""
fnam=""
df=0
p:limit=0
t:timer=0
mailout=0
slider=0
>B
; initialisiere cam mit QVGA
res=wc(0 5)
; hole Bildgröße horizontal und vertikal in Pixeln
w=wc(3)
h=wc(4)
; IO1 auf input
spinm(1 I)
pwm(-12 400)
; erzeuge Bildordner falls nicht vorhanden
res=fo("/PICS" r)
if res<0
then
fmd("/PICS")
endif
if limit==0
then
limit=1000
endif
>S
if wific>0
then
; starte stream wenn wifi verbunden
res=wc(5 1)
endif
if pin[1]>0
and timer==0
then
delay(200)
; Bild speichern in RAM Buffer 1
res=wc(1 1)
; Datei öffnen, Name ist gleich Zeitstempel
; Dateiname darf aber keinen Doppelpunkt enhalten
; deshalb diese umständliche Zusammensetzung
dp2.0
res = fo ("/ PICS /" + st (tstamp: 1) + "_" + s (mins) + "_" + s (secs) + ". jpg" w)
dacă res> = 0
atunci
// Salvați memoria tampon RAM
pr = fwp (1 rez.)
fc (res)
endif
cronometru = 30
endif
dacă chg [limită]> 0
atunci
svari
endif
> F
; setează ieșirea la glisor (0-1023)
pwm (glisor)
; ștergeți toate imaginile
dacă df> 0
atunci
df = 0
= # delfolder ("PICS")
endif
; ștergeți conținutul folderului
#delfolder (tstr)
pr = fo ("/" + tstr r)
pentru cnt 1 1000 1
tmp = fr (fnam pr)
dacă tmp> 0
atunci
fd ("/" + tstr + "/" + fnam)
altceva
pauză
endif
Următor →
fc (pr)
> m
; Camera de alarmă de mișcare 1 <br>
; 1 $
; #
> W
; definiți glisorul
sl (200 950 glisor "stânga" "servo" "dreapta")
; arată câteva valori în WEBUI
PIR {m}% 0pin [1]%
; Diferență de mișcare {m}% mot%
; Luminozitate {m}% bri%
Sistem de fișiere gratuit {m}% 3 (fsi (1) / 1000)% MB
; heap {m}% 3 (heap / 1000)% kB
bu (df "ok" "dosar imagine gol")
; nm (50 10000 50 limită "Limită:")
; arată fluxul pe WEBUI
$ <br>
$ <img src = "http: //% lip%: 81 / stream" style = "width:% w% px; înălțime:% h% px">
{"NAME": "AITHINKER CAM", "GPIO": [4992,1,672,1,224,5088,1,1,6720,736,704,1,1,5089,5090,0,5091,5184,5152,5120,5024 , 0,0,0,0,4928,1,5094,5095,5092,0,0,5093,0,0,1], "FLAG": 0, "BASE": 1}
și bineînțeles porturile gpoi așa cum este descris
Nu mai am idei
orice ajutor este binevenit
Mulțumiri,
Cristian
(...)
wir hatten das schon mal ganz am Anfang
hier der Kode (nur zusätzliche Zeilen)
>D
mot=0
bri=0
>B
; starte motion detector Bildvergleich alle 1000 ms
mot=wc(6 1000)
>S
; Schwelle individuell einstellen, hier z.B. 2000
mot=wc(6 -1)
if mot>2000
then
; alarm
endif
; hole Helligkeit
bri=wc(6 -2)
Der Software Bewegungsmelder vergleicht Bilder im Zeitabstand von z.B. jeder Sekunde pixelweise.
Das bedeutet aber dass das Live Bild jede Sekunde kurz anhält so lange die Berechnung dauert
optional liefert der Algorithmus noch die Bildhelligkeit.
Gesichtserkennung ist auch eingebaut (allerdings nur ob ein Gesicht gefunden wurde, nicht ein individuelles):
>D
faces=0
>B
; Gesichtserkennung jede Sekunde starten
faces=wc(7 1000)
>S
; Anzahl der im Bild gefundenen Gesichter
faces=wc(7 -1)
Das ist aber noch zeitraubender als der Bewegungsmelder
(...)
....
camera face fotografii, mișcarea este ok, dar le-a salvat pe bliț
Problema mea este cu cardul SD, nu-l văd
alles super
danke
könnt ihr mir bitte noch mal unter die Arme greifen ?
ich versuche Deine defines irgendwie zu setzen, wenn ich es richtig verstanden habe muß ich mir meine eigene .bin Copilieren, bekomme es aber nicht mit hin mit dem Onlinecompiler sorry, ich weiß nicht wie ich dort vorgehen soll.
Deine defines habe ich unter Custom parameters eingefügt und dann auf weiter.
Wenn ich es versuche bekomme ich am Ende einen Fehler.
In file included from tasmota/my_user_config.h:859:0,
from /tmp/Tasmota/tasmota/tasmota.ino:43:
tasmota/user_config_override.h:4:2: warning: #warning **** user_config_override.h: Using Settings from this File **** [-Wcpp]
#warning **** user_config_override.h: Using Settings from this File ****
^
/tmp/Tasmota/tasmota/sendemail.ino:508:30: fatal error: ESP32_MailClient.h: No such file or directory
**************************************************************************
* Looking for ESP32_MailClient.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:ESP32_MailClient.h"
* Web > https://platformio.org/lib/search?query=header:ESP32_MailClient.h
*
**************************************************************************
#include "ESP32_MailClient.h"
^
compilation terminated.
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/WiFiClient.cpp.o
*** [.pio/build/firmware/src/tasmota.ino.cpp.o] Error 1
Compiling .pio/build/firmware/lib5c2/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
========================= [FAILED] Took 11.47 seconds =========================
Finished. Exit code: 1.
Alles anzeigen
Bin im moment durch den Wind von dem ganzen testen und probieren.
Sorry für solche Anfängerfragen.
Danke schon mal für eure Geduld.
siehe post #217 (#203)
Bitte übersetze deine Posts in Deutsch. Ich habe keine Lust das selbst zu übersetzen.
Du must das Template anwenden damit du die SD Karte initialisieren kannst.
Die SD Karte muss mit FAT32 formatiert sein.
Sieh in der Konsole an welche Meldungen beim Boot kommen.
Hallo,
Mein Problem ist, dass ich die SD-Karte nicht sehen kann. Ich habe die GPIO-Ports wie beschrieben deklariert. Die Karte ist mit FAT32 formatiert.
Die Bilder werden im Speicher der Kamera gespeichert
Ich habe die Konsole beim Start gesehen und es sieht so aus:
00:00:04.909 RSL: POWER = OFF
00:00:05.052 RTC: UTC 2021-01-26T07:49:35, DST 2021-03-28T02:00:00, STD 2021-10-31T03:00:00
08:49:36.985 QPC: Reset
08:49:38.953 APP: Anzahl Startvorgänge 13
08:49:38.965 RSL: STATE = {"Time":"2021-01-26T08:49:38","Uptime":"0T00:00:09","UptimeSec":9,"Heap":199,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"leon","BSSId":"78:24:AF:E5:54:70","Channel":8,"RSSI":80,"Signal":-60,"LinkCount":1,"Downtime":"0T00:00:05"}}
08:49:39.638 CFG: Saved, zählen 35, Bytes 4096
08:49:56.872 WIF: Prüfe Verbindung...
Das verwendete Skript ist das im vorherigen Beitrag erwähnte:
>D 40
IP=192.168.1.142
SB=8192
res=0
cnt=0
tmp=0
pr=0
w=0
h=0
tstr=""
fnam=""
df=0
p:limit=0
t:timer=0
mailout=0
slider=0
>B
; initialisiere cam mit QVGA
res=wc(0 5)
; hole Bildgröße horizontal und vertikal in Pixeln
w=wc(3)
h=wc(4)
; IO1 auf input
spinm(1 I)
pwm(-12 400)
; erzeuge Bildordner falls nicht vorhanden
res=fo("/PICS" r)
if res<0
then
fmd("/PICS")
endif
if limit==0
then
limit=1000
endif
>S
if wific>0
then
; starte stream wenn wifi verbunden
res=wc(5 1)
endif
if pin[1]>0
and timer==0
then
delay(200)
; Bild speichern in RAM Buffer 1
res=wc(1 1)
; Datei öffnen, Name ist gleich Zeitstempel
; Dateiname darf aber keinen Doppelpunkt enhalten
; deshalb diese umständliche Zusammensetzung
dp2.0
res=fo("/PICS/"+st(tstamp : 1)+"_"+s(mins)+"_"+s(secs)+".jpg" w)
if res>=0
then
// RAM Buffer speichern
pr=fwp(1 res)
fc(res)
endif
timer=30
endif
if chg[limit]>0
then
svars
endif
>F
; setzt den Ausgang auf slider (0-1023)
pwm(slider)
; lösche alle Bilder
if df>0
then
df=0
=#delfolder("PICS")
endif
; lösche den Ordner Inhalt
#delfolder(tstr)
pr=fo("/"+tstr r)
for cnt 1 1000 1
tmp=fr(fnam pr)
if tmp>0
then
fd("/"+tstr+"/"+fnam)
else
break
endif
next
fc(pr)
>m
;Bewegungs Alarm Kamera 1<br>
;$1
;#
>W
; slider definieren
sl(200 950 slider "links" "Servo" "rechts")
; zeige einige Werte im WEBUI
PIR{m}%0pin[1]%
;Bewegungs Differenz{m}%mot%
;Helligkeit{m}%bri%
Filesystem frei{m}%3(fsi(1)/1000)% MB
;heap{m}%3(heap/1000)% kB
bu(df "ok" "Bildordner leeren")
;nm(50 10000 50 limit "Limit: ")
; zeige stream auf WEBUI
$<br>
$<img src="http://%lip%:81/stream" style="width:%w%px;height:%h%px">
{"NAME": "AITHINKER CAM", "GPIO": [4992,1,672,1,224,5088,1,1,6720,736,704,1,1,5089,5090,0,5091,5184,5152,5120,5024 , 0,0,0,0,4928,1,5094,5095,5092,0,0,5093,0,0,1], "FLAG": 0, "BASE": 1}
(Dies ist eine Google-Übersetzung, bitte entschuldigen Sie)
Vielen Dank,
Kompilierst du selbst ?
Dann hast du vielleicht
#define USE_SDCARD
vergessen ?
Stelle den Loglevel auf "mehr details" damit du ausführlichere Infos in der Konsole bekommst.
Hallo gemu2015
Kannst du dir mein Script mal ansehen. Jedesmal wenn ich was ändere im Script läuft mein Servo nicht mehr.
Erst nach einem Neustart funktioniert es wieder. Und habe ich die Abfrage zum speichern des Bildes richtig programmiert.
>D 40
SB=8192
res=0
cnt=0
tmp=0
pr=0
w=0
h=0
tstr=""
fnam=""
df=0
t:timer=0
slider=0
bs=0
za=1
>B
; initialisiere cam mit QVGA
res=wc(0 7)
w=wc(3)
h=wc(4)
; IO1 auf input
; spinm(4)
pwm(-12 400)
res=fo("/PICS" r)
if res<0
then
fmd("/PICS")
endif
>S
if pin[4]==0
then
za=1
endif
if wific>0
then
res=wc(5 1)
endif
if (((pin[4]>0)and(za==1))or(bs>0))
then
res=wc(1 1)
dp2.0
res=fo("/PICS/"+st(tstamp : 1)+"_"+s(mins)+"_"+s(secs)+".jpg" w)
if res>=0
then
// RAM Buffer speichern
pr=fwp(1 res)
fc(res)
endif
za=0
bs=0
endif
>F
pwm(slider)
if df>0
then
df=0
=#delfolder("PICS")
endif
#delfolder(tstr)
pr=fo("/"+tstr r)
for cnt 1 1000 1
tmp=fr(fnam pr)
if tmp>0
then
fd("/"+tstr+"/"+fnam)
else
break
endif
next
fc(pr)
>m
>W
Zeit{m}%za%
PIR{m}%pin[4]%
Filesystem frei{m}%3(fsi(1)/1000)% MB
bu(df "ok" "Bildordner leeren")
bu(bs "ok" "Bild speichern")
sl(250 1000 slider "links" "Servo" "rechts")
$<br>
$<img src="http://%lip%:81/stream" style="width:%w%px;height:%h%px">
(...)
Hallo
@ gemu2015 - vielen Dank für Ihre Hilfe
Ich habe es geschafft, Bilder auf der Karte mit dem von Ihnen geposteten Skript aufzuzeichnen
Dann gelang es mir mit einem anderen Skript von Ihnen, Bilder an Google Mail zu senden.
aber ich kann sie nicht gleichzeitig mit einem einzigen Skript machen
Gibt es eine Möglichkeit, eine E-Mail zu senden und gleichzeitig die Bilder auf der Karte zu speichern (das Internet ist möglicherweise nicht immer verfügbar)?
Ich bin überhaupt nicht gut in Sofwtare, ich bin ein Anfänger
Entschuldigung für die Unbeholfenheit
Vielen Dank,
Mulțumesc!
Hi,
ich habe ein wenig weiter probiert mit gemu2015 seinem Fork (danke dafür). Ich habe die Einstellungen die Du/ihr hier gepostet habt angewendet, jetzt habe ich das Problem das 2 Stream im Webui habe, desweiteren bekomme ich wenn ich auf Dateisysystem verwalten nur die Speichergröße von der SD-Karte angezeigt kein Fenster in dem die Bilder zu sehen (sind Bilder sind drauf), es gibt auch keinen weiteren Button um wieder zurück zukommen ins Hauptmenü.
Als Skript habe ich das von gemu2015 genommen.
Wenn der Bewegungs Alarm auslöst, stopt der Stream und das Modul macht ein reset ohne eine mail zu senden.
Bilder Ordner leeren wird anscheinend auch nicht gemacht, da der Speicherplatz immer gleich bleibt.
Dann habe ich noch den Fehler bei Sendmail
Hallo
Schau in #53 & #54 nach
Gibt es eine Möglichkeit, eine E-Mail zu senden und gleichzeitig die Bilder auf der Karte zu speichern
Hallo,
>D 40
SB=8192
res=0
cnt=0
tmp=0
pr=0
w=0
h=0
mot=0
bri=0
tstr=""
fnam=""
df=0
bs=0
p:limit=0
t:timer=30
mailout=0
>B
; initialisiere CAM
res=wc(0 6)
; hole Bildgröße horizontal und vertikal in Pixeln
w=wc(3)
h=wc(4)
; start motion detector, picture every 1000 ms
mot=wc(6 1000)
; erzeuge Bildordner falls nicht vorhanden
res=fo("/PICS" r)
if res<0
then
fmd("/PICS")
endif
if limit==0
then
limit=1000
endif
>S
if wific>0
then
; starte stream wenn wifi verbunden
res=wc(5 1)
endif
; hole Bewegungswert
mot=wc(6 -1)
; hole Helligkeit
bri=wc(6 -2)
// Alarm,
if mot>limit
and timer==0
; Einzel Bild + Mail per Button
or bs>0
; mache Einzel Bild alle 30 Minuten
; or upsecs%1800==0
then
//hole Bild, speichere
; flash LED an
->power1 1
delay(200)
; Bild speichern in RAM Buffer 1
res=wc(1 1)
=>sendmail [smtp.gmail.com:465:user:pass:from@mail.de:to@mail.de:Alarm]*
mailout=1
timer=60
; Datei öffnen, Name ist gleich Zeitstempel
; Dateiname darf aber keinen Doppelpunkt enthalten
; deshalb diese umständliche Zusammensetzung
dp2.0
res=fo("/PICS/"+st(tstamp : 1)+"_"+s(mins)+"_"+s(secs)+".jpg" w)
if res>=0
then
// RAM Buffer speichern
pr=fwp(1 res)
fc(res)
endif
; flash LED aus
->power1 0
bs=0
endif
if chg[limit]>0
then
svars
endif
>F
; lösche alle Bilder
if df>0
then
df=0
=#delfolder("PICS")
endif
; lösche den Ordner Inhalt
#delfolder(tstr)
pr=fo("/"+tstr r)
for cnt 1 1000 1
tmp=fr(fnam pr)
if tmp>0
then
fd("/"+tstr+"/"+fnam)
else
break
endif
next
fc(pr)
>m
Bewegungs Alarm Kamera 1<br>
$1
#
>W
; zeige einige Werte im WEBUI
Bewegungs Differenz{m}%mot%
Helligkeit{m}%bri%
Filesystem frei{m}%3(fsi(1)/1000)% MB
;heap{m}%3(heap/1000)% kB
bu(bs "ok" "Bild speichern")
bu(df "ok" ">Bildordner leeren<")
nm(50 10000 50 limit "Limit: ")
; zeige stream auf WEBUI
$<br>
$<center><img src="http://%lip%:81/stream" style="width:%w%px;height:%h%px">
$<br><center>WebCam Stream
Alles anzeigen
@Wooli
hatte ich gemacht, trotzdem immer 2 Bilder. Habe nochmal alles gelöscht, neu geflasht jetzt habe ich nur einen Stream.
Hast Du eine Idee warum das Dateisystem keine Bilder oder Ordner anzeigt ?
Nimm doch versuchsweise mal mein Script
speichern und Neustart
habe ich mal probiert auch mit Deinen defines, bekomme immer das das gleiche im WebUi bei Verwalte Dateisystem angezeigt (#233) ohne weitere Button's. Muß dann immer über Browser zurück gehen um wieder zu den Einstellungen zu kommen.
Es sollte doch im das Dateisystem der Ordner "Pic's" und das Skript sowie die gespeicherten Bilder angezeigt werden ?
Wenn ich die SD-Karte aus dem Modul nehme und in den PC stecke ist alles drauf.
Es macht mich irre, muß doch auch bei mir möglich sein.
Das kommt in der Console (externes Prog) wenn ich auf Verwalte Dateisystem klicke
ASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
00:00:00.027 UFS: FlashFS mounted with 48 kB free
00:00:00.061 CFG: Loaded from File, Anzahl 20
00:00:00.067 QPC: Count 1
00:00:00.070 SPI: Hardware using GPIO14(CLK), GPIO15(MOSI) and GPIO02(MISO)
00:00:00.082 UFS: SDCard mounted with 30854144 kB free
00:00:00.084 Projekt tasmota Tasmota Version 9.2.0.4(webcam)-1_0_5_RC6(2021.01.30 01:14:53)
00:00:00.084 UFILESYSTEM OK!
00:00:00.095 Script: nv=10, tv=2, vns=59, ram=273
00:00:00.848 CAM: Initialized
00:00:01.563 WIF: verbinden mit AP1 FRITZ Channel 11 BSSId 9C:C7:A7:FC:FD:E8 in Modus 11n als tasmota_3851A0-4512...
00:00:03.351 WIF: verbunden
00:00:03.609 HTP: Web-Server aktiv bei tasmota_3851A0-4512 mit IP-Adresse 192.168.001.188
01:40:58.510 MQT: Verbindungsversuch...
01:40:58.547 MQT: verbunden
01:40:58.551 MQT: tele/tasmota_3851A0/LWT = Online (beibehalten)
01:40:58.555 MQT: cmnd/tasmota_3851A0/POWER =
01:40:58.572 MQT: tele/tasmota_3851A0/INFO1 = {"Module":"AITHINKER CAM","Version":"9.2.0.4(webcam)","FallbackTopic":"cmnd/DVES_3851A0_fb/","GroupTopic":"cmnd/tasmotas/"}
01:40:58.581 MQT: tele/tasmota_3851A0/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_3851A0-4512","IPAddress":"192.168.001.188"}
01:40:58.591 MQT: tele/tasmota_3851A0/INFO3 = {"RestartReason":"Software reset CPU"}
01:40:58.597 MQT: stat/tasmota_3851A0/RESULT = {"POWER":"OFF"}
01:40:58.603 MQT: stat/tasmota_3851A0/POWER = OFF
01:41:01.045 QPC: Reset
01:41:03.060 MQT: tele/tasmota_3851A0/STATE = {"Time":"2021-01-30T01:41:03","Uptime":"0T00:00:10","UptimeSec":10,"Heap":108,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"FRITZ","BSSId":"9C:C7:A7:FC:FD:E8","Channel":11,"RSSI":60,"Signal":-70,"LinkCount":1,"Downtime":"0T00:00:04"}}
Alles anzeigen
Habe den Fehler im Filemanager behoben. In meinem Fork geht jetzt das Inhaltsverzeichnis wieder.
ABER dieser problematische Aufruf kommt in Tasmota Dutzende Male vor.
Konnte noch nicht ermitteln warum das nur im Filemanager zu Problemen führt.
Also Vorsicht bei Verwendung der aktuellen DEV Version von Tasmota.