https://www.espressif.com/site…_design_guidelines_en.pdf
Da ists eigentlich ganz nett erklärt.
EDIT:
und hier
https://randomnerdtutorials.co…2-pinout-reference-gpios/
WROOM Module passen doch.
https://www.espressif.com/site…_design_guidelines_en.pdf
Da ists eigentlich ganz nett erklärt.
EDIT:
und hier
https://randomnerdtutorials.co…2-pinout-reference-gpios/
WROOM Module passen doch.
Da mir das warten auf den VEML6075 zu lang wurde, bestellte ich nochmals einen neuen von SparkFun VEML6075.
Zum Code von Sparkfun eine kurze Frage, das was sie mit dem Wert kalkulieren entspricht doch nicht dem aus dem Datenblatt
// Calibration constants:
// Four gain calibration constants -- alpha, beta, gamma, delta -- can be used to correct the output in
// reference to a GOLDEN sample. The golden sample should be calibrated under a solar simulator.
// Setting these to 1.0 essentialy eliminates the "golden"-sample calibration
const float CALIBRATION_ALPHA_VIS = 1.0; // UVA / UVAgolden
const float CALIBRATION_BETA_VIS = 1.0; // UVB / UVBgolden
const float CALIBRATION_GAMMA_IR = 1.0; // UVcomp1 / UVcomp1golden
const float CALIBRATION_DELTA_IR = 1.0; // UVcomp2 / UVcomp2golden
// Responsivity:
// Responsivity converts a raw 16-bit UVA/UVB reading to a relative irradiance (W/m^2).
// These values will need to be adjusted as either integration time or dynamic settings are modififed.
// These values are recommended by the "Designing the VEML6075 into an application" app note for 100ms IT
const float UVA_RESPONSIVITY = 0.00110; // UVAresponsivity
const float UVB_RESPONSIVITY = 0.00125; // UVBresponsivity
// UV coefficients:
// These coefficients
// These values are recommended by the "Designing the VEML6075 into an application" app note
const float UVA_VIS_COEF_A = 2.22; // a
const float UVA_IR_COEF_B = 1.33; // b
const float UVB_VIS_COEF_C = 2.95; // c
const float UVB_IR_COEF_D = 1.75; // d
uint16_t rawA, rawB, visibleComp, irComp;
float uviaCalc, uvibCalc, uvia, uvib, uvi;
// Read raw and compensation data from the sensor
rawA = uv.rawUva();
rawB = uv.rawUvb();
visibleComp = uv.visibleCompensation();
irComp = uv.irCompensation();
// Calculate the simple UVIA and UVIB. These are used to calculate the UVI signal.
uviaCalc = (float)rawA - ((UVA_VIS_COEF_A * CALIBRATION_ALPHA_VIS * visibleComp) / CALIBRATION_GAMMA_IR) - ((UVA_IR_COEF_B * CALIBRATION_ALPHA_VIS * irComp) / CALIBRATION_DELTA_IR);
uvibCalc = (float)rawB - ((UVB_VIS_COEF_C * CALIBRATION_BETA_VIS * visibleComp) / CALIBRATION_GAMMA_IR) - ((UVB_IR_COEF_D * CALIBRATION_BETA_VIS * irComp) / CALIBRATION_DELTA_IR);
// Convert raw UVIA and UVIB to values scaled by the sensor responsivity
uvia = uviaCalc * (1.0 / CALIBRATION_ALPHA_VIS) * UVA_RESPONSIVITY;
uvib = uvibCalc * (1.0 / CALIBRATION_BETA_VIS) * UVB_RESPONSIVITY;
// Use UVIA and UVIB to calculate the average UVI:
uvi = (uvia + uvib) / 2.0;
Display More
// Calibration constants:
// Four gain calibration constants -- alpha, beta, gamma, delta -- can be used to correct the output in
// reference to a GOLDEN sample. The golden sample should be calibrated under a solar simulator.
// Setting these to 1.0 essentialy eliminates the "golden"-sample calibration
const float CALIBRATION_ALPHA_VIS = 1.0; // UVA / UVAgolden
const float CALIBRATION_BETA_VIS = 1.0; // UVB / UVBgolden
const float CALIBRATION_GAMMA_IR = 1.0; // UVcomp1 / UVcomp1golden
const float CALIBRATION_DELTA_IR = 1.0; // UVcomp2 / UVcomp2golden
// Responsivity:
// Responsivity converts a raw 16-bit UVA/UVB reading to a relative irradiance (W/m^2).
// These values will need to be adjusted as either integration time or dynamic settings are modififed.
// These values are recommended by the "Designing the VEML6075 into an application" app note for 100ms IT
const float UVA_RESPONSIVITY_K1 = 0.001461; // UVAresponsivity
const float UVB_RESPONSIVITY_K2 = 0.002591; // UVBresponsivity
// UV coefficients:
// These coefficients
// These values are recommended by the "Designing the VEML6075 into an application" app note
const float UVA_VIS_COEF_A = 2.22; // a
const float UVA_IR_COEF_B = 1.33; // b
const float UVB_VIS_COEF_C = 2.95; // c
const float UVB_IR_COEF_D = 1.74; // d
uint16_t rawA, rawB, visibleComp, irComp;
float UVAcalc, UVBcalc, UVIA, UVIB, UVI;
// Read raw and compensation data from the sensor
rawA = uv.rawUva();
rawB = uv.rawUvb();
visibleComp = uv.visibleCompensation();
irComp = uv.irCompensation();
// Calculate the simple UVIA and UVIB. These are used to calculate the UVI signal.
UVAcalc = rawA - UVA_VIS_COEF_A * visibleComp - UVA_IR_COEF_B * irComp;
UVBcalc = rawB - UVB_VIS_COEF_C * visibleComp - UVB_IR_COEF_D * irComp;
// Convert raw UVIA and UVIB to values scaled by the sensor responsivity
UVIA = UVAcalc * UVA_RESPONSIVITY_K1;
UVIB = UVBcalc * UVB_RESPONSIVITY_K2;
// Use UVIA and UVIB to calculate the average UVI:
UVI = (UVIA + UVIB) / 2.0;
Display More
Ich kann mich zwar täuschen, aber ich finde das von Sparkfun rechnet nicht nach Datenblatt
Ja, man muss ein bisschen löten können.
Also mir hat es schon einiges mehr als nur ein "bisschen" abverlangt.
Uhhhh. Die Spinne im Netz Ich rede eher von SMD.
Ich rede eher von SMD.
ich auch was sagst du zur Formel
öh, nix. Zumindest nicht heute. Ich kenne den Sensor nicht. Und bin im Urlaub. Kann ich erst nächste Woche schauen.
Also gegen den ESP32-S2 spricht eindeutig, dass Entwicklerboard noch sehr schlecht zu bekommen sind und auch in Arduino als auch VS Code das Board noch nicht unterstützt wird. In Arduino nur in einem seperaten Branch zum Test.
Lustigerweise je mehr Seiten man besucht bezüglich Vergleich ESP32 / ESP8266 stellt man fest, das jede Seite unterschiedliche Werte zum Stromverbrauch angibt. Habe ich ursprünglich immer Werte gefunden, wo der ESP8266 besser war, finde ich jetzt immer mehr Seiten die den ESP32 besser abschneiden lassen.
Ein ESP32 hingegen bin ich schon auf die fresse geflohen &habe jetzt ein funktionierendes Design. Findest du glaube ich auch irgendwo in meinem github.
ich kanns nicht anschauen
Sollte mit KiCAD 5 gehen 😐 Was bereitet dir da Probleme?
Falsch/Missverständlich ausgedrück - sry. Ich finde es in deinen GH Repositorys nicht
Kleines Lebenszeichen vom Projekt.
Die Bauteile jetzt auf ein großes Breadboard umgezogen.
Lange Zeit hatte ich jetzt mit der Meldung Brownout detector was triggered zu kämpfen, welche immer bei Start des Wlans auftrat und den ESP neu booten lässt.
Die Batterie bekam zur Sicherheit jetzt dickere Kabel und es wurden 2 Kondensatoren (Low-ESR 470µF + Tantal 47µF) nach Empfehlung dieser Seite hier nachgerüstet. Das Problem wurde weniger / besser, meist ein Fehlstart aber nach wie vor vorhanden. Jetzt bin ich auf diese Seite gestoßen und habe dadurch herausgefunden, dies lässt sich Softwaretechnisch abstellen.
https://www.robmiles.com/journ…e-esp32-brownout-detector
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1); //enable brownout detector
Meine Frage an die Mitleser, gibt es negative Auswirkungen für den ESP wenn bei jedem Start in das peresistente Register geschrieben wird?
Als nächster Schritt steht nun bevor, ein Gehäuse für das Breadboard zu designen mit Aussparungen bei den 2 Sensoren mit einer Auflagefläche um verschiedene Materialien testen zu können wie gut diese Licht und UV durchlässig sind.
Kleines Update, bzw. Hilfegesuch
Auflagefläche um verschiedene Materialien testen zu können wie gut diese Licht und UV durchlässig sind.
Dieser Punkt brachte das Projekt erheblich zum stocken.
Bisher war es mir noch nicht möglich, in einem erschwinglichen Rahmen eine Abdeckung zu finden, welche auch UV durchlässig ist.
Bisher bekannte Informationen zu geeigneten Abdeckungen:
Kennt noch jemand weitere geeignete Abdeckungen, oder zu den benannten Materialien eine erschwingliche Bezugsquelle?
... (100x100mm) ... eine erschwingliche Bezugsquelle?
Bei so kleinen Zuschnitten hat vielleicht ein Glaser vor Ort Reste die er gegen kleines Geld verkauft, so bin ich schon Mal an Material gekommen.
Es besteht offenbar kein Interesse da der Zuschnitt wohl zu gering ist (100x100mm)
Gewächshaushersteller wäre auch noch eine Möglichkeit. Die dürften genug Abfall haben.
MfG
Jürgen