In den 1990-er Jahren fragte der bekannte Designer Luigi Colani, warum Computer immer eckig und kantig sein müssen. Recht hatte er, müssen sie nicht. Auch nicht unsere kleinen Micro Controller. Den Beweis liefert das neue kreisrunde AZ-Envy, ein Micro Controller Board mit dem ESP8266-12F sowie zwei eingebauten Sensoren für Umweltdaten, also Envy von Environment und nicht von Neid.
Der Gassensor MQ-2 fällt sofort ins Auge wegen der Explosionsschutzhaube aus einem dichten Edelstahlgewebe. Links daneben der ESP8266-12F mit WLAN-Antenne und der eingebauten LED. Der zweite Sensor, links oben im Bild, ist ein Temperatur- und Luftfeuchtigkeitssensor mit Namen SHT30. Ansonsten erkennt man die µUSB-Buchse für die Spannungsversorgung, rechts daneben den Spannungsregler, eine gelbe Stiftleiste sowie zwei Taster mit Namen RESET und FLASH – alles in allem eine schöne „Physical-Computing-Plattform“, die mit der Arduino IDE programmiert werden kann.
Das will ich natürlich sofort ausprobieren und nutze dafür wie üblich das Programm Blink. Da ich schon andere ESP8266 Micro Controller verwendet habe, brauche ich in der Arduino IDE nur noch das Board „ Generic ESP8266 Module“ auswählen.
Wer die ESP8266-Familie noch nicht mit dem Boardverwalter installiert hat, muss die zusätzliche Boardverwalter-URL unter „Datei/Voreinstellungen“ in der Arduino-IDE einzutragen:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Danach öffnen Sie unter "Werkzeuge/Board/Boardverwalter" den Verwaltungsdialog. Geben Sie "ESP8266" in die Suche ein und klicken Sie beim Suchergebnis auf "Installieren".
Danach erhält man unter dem Reiter Werkzeuge/Board die ESP8266 und seine verschiedenen Board-Bauformen. Wie gesagt: für den AZ-Envy habe ich gleich die oberste Möglichkeit „Generic 8266 Module“ ausgewählt.
Was fällt an dem Bild in der markierten Zeile auf? Richtig: Trotz USB-Anschluss für die Spannungsversorgung wird zunächst kein Port angezeigt. Der AZ-Envy hat aus Platzgründen keine USB-COM-Schnittstelle. Die wird ja auch nur zum Programmieren und – wenn gewünscht – bei der Datenausgabe im Seriellen Monitor benötigt. Ich benutze den FTDI, den ich bisher für den ESP8266-01 verwendet habe.
Bei genauer Betrachtung erkenne ich, dass die Bezeichnungen an der gelben Steckerleiste übereinstimmen mit den Pin-Bezeichnungen des FTDI. Ein Techniker sagte mir, dass hier ursprünglich eine Buchsen-Leiste geplant war, in die man den FTDI direkt eingesteckt hätte. Schade, dass man das nicht realisiert hat, also drei Jumperkabel (female-female) für TX, RX und GND. Die Anschlüsse DTR, CTS und VCC sind nicht belegt. Eine Besonderheit: Weil man sich bei der Beschriftung an die Reihenfolge beim FTDI gehalten hat, wird TX mit TX und RX mit RX verbunden; nicht wie bei der UART-Schnittstelle sonst üblich über Kreuz. Wenn der FTDI an den Computer angeschlossen wird, erhalte ich auch die Portanzeige (des FTDI) unter der Registerkarte Werkzeuge. Es kann losgehen.
Beim ersten Programm Blink interessiert mich, ob der AZ-Envy mit seinem ESP8266-12F den Namen LED_BUILTIN kennt; ansonsten müsste ich im Sketch wie beim ESP32 die Zeile „int LED_BUILTIN=2;“ ergänzen. Und wie versetze ich das Board in den Programmiermodus? Nur die FLASH-Taste beim Hochladen drücken war nicht erfolgreich. Der Trick ist: Die FLASH-Taste muss bei Herstellung der Spannungsversorgung gedrückt sein. Deshalb zunächst die RESET-Taste drücken, dann die FLASH-Taste, dann RESET loslassen und zuletzt FLASH loslassen. Das muss spätestens erfolgen, wenn in der Arduino-IDE nach dem Kompilieren die Punkte anzeigt werden, dass die Verbindung hergestellt werden soll.
Nach dem Hochladen muss ich den Programmiermodus verlassen, also kurz RESET drücken.
Alles klappt dann auf Anhieb. LED_BUILTIN wird erkannt und die eingebaute LED neben der WLAN-Antenne blinkt im Sekundentakt.
Als Nächstes probiere ich den Sensor SHT30 aus. Anschließen brauche ich hier nichts, er ist intern angeschlossen. Aus dem Internet erfahre ich, dass der Sensor über die I2C-Schnittstelle angeschlossen wird und die Hex-Adresse 0x44 (oder ggf. 0x45) hat, die relative Luftfeuchtigkeit soll mit einer Genauigkeit von ±3% und die Temperatur mit einer Genauigkeit von ±0.3°C gemessen werden. Wie in der Arduino-Welt üblich, greife ich für das Auslesen des Sensors auf eine vorhandene Programmbibliothek (library) zurück. Empfohlen wird für den AZ-Envy die Libary SHT3x.
----------------------------------------------------------------------
UPDATE:
Da es mittlerweile Probleme mit der Bibliothek auf den ESP8266 gibt (der auf dem Envy benutzt wird), muss eine Änderung einer der Quelldateien durchgeführt werden.
Fehlermeldung: error: ‘Wire1’ was not declared in this scope; did you mean ‘Wire’?
- Nachdem die Bibliothek installiert wurde, suchen Sie Ihren Libraries Ordner im Sketchbook (in den Voreinstellungen sehen Sie den angegebenen Pfad).
- Öffnen Sie im Ordner SHT3x-master die Datei SHT3x.h und fügen Sie in Zeile 55 nach der Zeile
#define SHT3x_h
diese Zeilen ein:
#if defined (ESP8266)
#define Wire1 Wire
#endif
- und speichern die Datei.
----------------------------------------------------------------------
Also AZ-Envy wieder in den Programmiermodus versetzen (RESET, +FLASH, -RESET,-FLASH) und ein Beispielprogramm, das mit der Libary SHT3x installiert wurde, laden.
Wieder klappt alles sofort. Die Temperaturanzeige ist ein wenig zu hoch und damit einhergehend der Wert der Rel. Luftfeuchtigkeit etwas zu niedrig. Das ist schnell erklärt: Trotz der Aussparung in der Platine sind der ESP8266, der Spannungsregler und der (beheizte!) Gas-Sensor MQ-2 in unmittelbarer Nähe. Dieses Schicksal teilt der AZ-Envy mit allen Micro Controllern, die einen Temperatursensor direkt auf der Platine haben.
Hier muss ggf. kompensiert/kalibriert werden, oder man begnügt sich mit der Aussage „viel zu kalt“ (Frostgefahr?) oder „viel zu heiß“ (Feuer?, Lüftung erforderlich?). Ich plane eine Konstruktion, bei der ich mit einem kleinen PC-Lüfter Umgebungsluft Richtung SHT30 am AZ-Envy blase und werde darüber berichten.
Und schließlich wende ich mich dem Gas-Sensor zu. Der MQ-2 Gassensor ist ein Metalloxidhalbleiter (MOS), auch als Chemi-Resistor (Chemie tatsächlich ohne e am Ende) bekannt. MOS-Sensoren messen die Widerstandsänderung, wenn Gase vorhanden sind. Diese Art von Sensor erfordert es, dass das Gas auf den Sensor trifft, damit eine chemische Reaktion stattfinden kann, woraus eine Widerstandsveränderung resultiert.
Der eigentliche Sensor zur Detektion des Gases liegt unter der Explosionsschutzhaube aus einem dichten Edelstahlgewebe, das auch zum Schutz vor Schmutzpartikeln oder anderen Störfaktoren dient. Diese Widerstandsänderung, bezogen auf einen definierten Widerstandswert, ergibt einen analogen Wert, und damit ist klar, wo dieser Sensor angeschlossen ist, am Eingang A0. Für die Auswertung wird die MQ-2 libary von labay11 empfohlen, die mit vereinfachten Funktionen die Gaskonzentration in ppm bestimmt. Das Geheimnis dahinter bleibt uns verborgen, solange wir nicht die Programmbibliothek eingehend studieren. Aber das würde den Rahmen dieser ersten Betrachtung des AZ-Envy sprengen.
Auch bei dieser Bibliothek gibt es nach der Installation ein Programmbeispiel:
Nach dem Hochladen ergibt sich folgendes Bild im Seriellen Monitor:
Mittels der unbekannten Algorithmen werden Werte für LPG, CO und Smoke ermittelt. Der Zahlenausreißer unten im Bild war die Reaktion auf mein Anhauchen nach einem schönen Glas Roséwein, ansonsten die Werte in unserem Wohnzimmer nach dem Lüften. Auch hier werde ich weitere Untersuchungen anstellen, denn grundsätzlich heißt es von dem Sensor, dass er nicht Gas-spezifisch ist, wohl aber sehr gut zur Detektion von LPG, i-Butan, Propan, Methan, Alkohol, Wasserstoff und Rauch geeignet ist.
Das war meine erste Untersuchung des neuen AZ-Envy, das von einem jungen Entwickler (Name steht auf der Rückseite) entworfen und mit Hilfe von AZ-Delivery realisiert wurde. Insgesamt eine gelungene Kombination aus WLAN-fähigem Micro Controller und zwei sehr guten Sensoren, und das Ganze sehr ansehnlich auf einer runden Platine mit weniger als 5 cm Durchmesser platziert.
Die Links zum Programm-Code sind mit dem jeweiligen Bild verknüpft.
Und hier der Beitrag als Download.
47 Kommentare
Capa
Man sollte vielleicht erwähnen das man wenn man mit dem Adapter vom ESP8266-01 Arbeitet die Brücke zwischen GND und GPIO0 wichtig ist sonst funktioniert es nicht mit dem Flashen!
ESP-01 GND —> ESP-01 GPIO0 —> AZ-Envy GND
ESP-01 RX —> AZ-Envy TX
ESP-01 TX —> AZ-Envy RX
Reset drücken -(1sec)→ Flash drücken -(1sec)→ Reset loslassen -(1sec)→ Flash loslassen —> upload sketch
So funktioniert es bei mir wunderbar!
Old gray Wolf
Hallo,
vielen Dank für den verständlich und gut geschriebenen Blog-Eintrag.
Ich habe das Problem, dass ich den Werte nicht ganz traue. Ich habe zum Test das Board in meinem Arbeitszimmer zwei Tage laufen lassen.
in den ersten Sekunden fallen die Werte auf:
CO: 1762.93127 ppm, LPG: 80.30192 ppm, Smoke: 395.04996 ppm T=22.80C, RH=59.15%
Dann sieht man deutlich, wie die Temperatur ansteigt, sie pendelt sich bei 26,7°C ein. Eine folge der Aufheizung des Gassensors.
Die Werte sehen dann so aus:
CO: 13679.98145 ppm, LPG: 349.24115 ppm, Smoke: 1936.31006 ppm T=27.81C, RH=45.35%
In den nächsten Stunden steigen die Werte des Gassensors langsam aber kontinuierlich, bis sie sich auf folgende Werte einpendeln:
CO: 21334.12695 ppm, LPG: 481.65350 ppm, Smoke: 2715.22119 ppm T=27.42C, RH=42.67%
Da bleiben sie dann.
Der Raum ist während der ganzen Zeit leer (also keine Person anwesend). Die Umgebungsluft hat normalerweise eine CO2 Konzentration von ca. 400 ppm. Das zeigt mir ein zweiter Sensor, der auf einem SGP30 aufbaut (Separates Arduino-Projekt) auch grob an (zwischen 400 ppm und 500ppm)
Ist mein Sensor kaputt?
Grüße
Wolf
In der Zeit steigt die Anzeige
Michael Schulze
Hallo Harald Jeszenszky und H. Lühken,
ich habe ebenfalls lange Zeit Probleme mit dem flashen des ESP8266 gehabt. Es kam immer wieder der Timeout Fehler. Verwendet habe ich Arduino IDE 1.8.19 unter Ubuntu 18.04.6, das AZ-Envy in der HW Version 4.1, USB UART-TTL Adapter CH340 mit 3,3 V.
Wie bereits mehrfach erwähnt, ist die Beschriftung auf dem AZ-Envy nicht korrekt, man muss den UART-TTL-Adapter mit dem Envy wie folgt verbinden:
- TXD (UART) nach TX (Envy)
- RXD (UART) nach RX (Envy)
- GND (UART) nach GND (Envy)
- UART-TTL mit 3,3 V verwenden
USB UART-TTL zuerst einstecken und installieren lassen bzw. erkennen lassen, bei Linux die Freigabe für die DAILOUT group nicht vergessen (sudo usermod -a -G dialout $USER). Rechner neustarten. Arduino und Pakete installieren, wie beschrieben.
USB UART und Envy mit USB kabel Power verbinden, flashen probieren mit RESET, dann RESET und FLASH, dann nur FLASH (also während es in Arduino probiert wird mit dem Connect). Klappt dies nach ein paar Versuchen nicht, dann USB UART abstecken vom PC, USB Power des Envy raus, RESET halten, USB Power anschließen, RESET und FLASH halten, den USB UART einstecken, FLASH halten und dann den Upload des Sketch nochmal probieren.
Bei mir hat es nach mehreren Versuchen geklappt, aber erst als ich den Envy VOR dem USB UART angesteckt habe. Nach dem ersten Sketch Upload hat es besser geklappt, da musste ich mich nicht mehr so verbiegen.
Dennoch, falls es einmal geklappt hat, dann am Besten direkt einen Sketch mit ESP8266WiFi und ArduinoOTA hochladen (Bibliothek installieren nicht vergessen), so dass man über das WLAN die neuen Sketche laden kann (danach nicht vergessen den Port auf die Netzwerkadresse zu ändern, anstatt den Standard COM).
Das könnte dann in etwa so aussehen, als Beispiel mit dem Blink Code:
#include
#include
#ifndef STASSID
#define STASSID “WLAN_KENNUNG”
#define STAPSK “WLAN_PASSWORT”
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
void setup() {
WiFi.begin(ssid, password);
ArduinoOTA.setHostname(“Envy_1”);
ArduinoOTA.setPassword(“admin”);
ArduinoOTA.begin();
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
ArduinoOTA.handle();
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
digitalWrite(LED_BUILTIN, HIGH);
delay(4000);
}
Mögliche
Technik-Mann
Der Stromverbrauch für den Gassensor ist relativ hoch. Er wird mit 5V versorgt. Die Heizung des Sensors hängt von den 5V ab; ausgangsseitig ist er Teil eines Spannungsteilers, der auch an 5V hängt und analog gelesen wird. Kleine Variationen der 5V führen daher zu Signaländerungen. Die Heizung des Sensors erwärmt auch den Temperatursensor, so dass dessen Messwert korrigiert werden muss.
Andreas Wolter
Für das Wire1 Problem habe ich einen Absatz ergänzt. Es gibt scheinbar mittlerweile ein Problem mit den ESP8266. Siehe hier: https://github.com/Risele/SHT3x/issues/13
Wire1 ist im ESP8266 Arduino Core nicht bekannt. Mit dem Eintrag, den ich ergänzt habe, wird dem Compiler das vorgegaukelt. Der SHT3x.cpp kann man entnehmen, dass man für SDA = 0 angeben und damit die alternative Schnittstelle Wire1 verwenden kann. Das wird beim Envy nicht benötigt.
Die Angabe der Adresse ist nicht nötig. Es sollte entweder 0×44 oder 0×45 sein. Der Konstruktor ist jedoch überladen. Das heißt, dass man die Adresse manuell eingeben kann. Versuchen Sie aus den Beispielen unter Wire den I2C_Scanner. Wenn dieser die Adresse anzeigt, sollte der Sensor auch funktionieren.
Grüße,
Andreas Wolter
AZ-Delivery Blog
Manfred Bikardes
@Bernd Albercht:
Hallo Herr Albrecht. Wenn ich Ihre Vorgehensweise im Beitrag genau befolge passiert folgendes: Das Blink-Beispiel läuft sofort – alles OK! Wenn ich nun die Temperatur angehe, die vorgeschlagene Library installiere und das Beispiel starte, passiert ausser Fehlermeldungen gar nichts sofort – so wie Sie es beschrieben haben. Als Fehler kommt: ‘Wire1’ was not declared in this scope; did you mean ‘Wire’?
Das Problerm haben wohl viele hier. Was muss denn in den beiden Dateien Wire.h und Wire.cpp und wo eingetragen werden? Im Beispelcode ist auch nirgends eine Adresse für den Sensor zu sehen.
Wäre toll wenn SIe hier helfen könnten und das Problem aufgeklärt werden kann.
LG
Manfred
Andreas Wolter
Bei technischen Fragen und Problemen zu den Geräten selbst, bitte einmal den teschnischen Support von AZ kontaktieren. Vielen Dank.
Grüße,
Andreas Wolter
AZ-Delivery Blog
Torsten Lücker
Moin zusammen,
leider habe ich das gleiche Problem wie Mrt (Mrt
August 16, 2021 at 12:02pm) und kann den Sketch nicht kompilieren. Gibt es inzwischen eine Lösung?
Über eine Unterstützung würde ich mich freuen
Harald Jeszenszky
Hallo,
bei mir funktioniert das Flashen des Envy nicht (weder Windows noch Linux). GND, RX und TX sind mit GND, RX und TX des FTDI232 von AZ verbunden. Das Envy wird an der Mikro-USB-Buchse über ein Power-supply versorgt. Arduino-IDE 1.8.19 verwendet ESP8266 Bibliothek 3.0.2 (Generic 8266 Module) und Port (COM5) ist aktiv. Trotz der Reihenfolge “RESET drücken und halten, FLASH drücken und halten, RESET loslassen, FLASH loslassen” kommt stets nur die Fehlermeldung “Failed to connet to ESP8266: Timed out waiting for packet header”.
Gibt es dazu eine Lösung?
Stefan Link
Danke für den Beitrag hier. Der ist deutlich besser als das dazugehörige E-Book. Das E-Book hierzu ist leider nicht die sonst gewohnte AZ-Qualität.
Lars Sternkopf
Warum gibt es keine vernünftige Beschreibung zu der Platine?
Die PDF Datei AZ-Envy_Pinout.pdf ist doch ein Witz.
Vernünftige Infos werden von den Lesern zusammengetragen und sind in den Kommentaren zu lesen – DANKE an die Kommentatoren!
Das Produkt ist ja nicht schlecht, die Beschreibung allerdings – schade.
Matthias
Man kann den AZ-Envy auch ein wenig zweckentfremden, um die Umgebungshelligkeit mit einem LDR (lichtabhängiger Widerstand) zu messen – vielleicht für einen Klimasensor relevanter als die eingebaute Messung brennbarer Gase:
1. MQ-2 auslöten (das kann auf Kosten der Durchkontaktierungen gehen – ist nicht schlimm)
2. LDR einbauen: mit doppelseitigem Klebeband an die Position des MQ-2 kleben, einen Anschluss zu dem randseitigen Lötpunkt von R8 (Signal vom MQ-2), den anderen zum Mittelkontakt des Spannungsreglers (3.3V) führen. Hinweis zum LDR-Typ: Der LDR sollte bei hoher Helligkeit auf unter 100 Ohm gehen, bei Dunkelheit >10 Megaohm zeigen.
3. Einen 10KOhm Widerstand von R9 (ESP-Seite) nach Masse (zB Randseite der “Flash”-Taste) führen (Anpassung des Messbereichs).
4. Tasmota flashen
- Spannung über USB anllegen, GND/TX/RX an serielle Schnittstelle anschließen, RESET und FLASH drücken, dann erste RESET, danach FLASH loslassen
- “tasmota-sensors.bin” mit ESP-EASY o.ä. flashen, danach wie für Tasmota beschrieben einrichten
- “Generic”-Template auswählen, Anschlüsse wie folgt: LEDLink_i an GPIO2, I2C SDA an GPIO4, I2C SCL an GPIO5, ADC input an GPIO17. Die LED leuchtet während des Verbindungsvorgangs auf, im verbundenen Zustand ist sie dunkel (so stört sie den LDR nicht)
Ergebnis: Tasmota zeigt die Helligkeit 0-1024 für den Ausgang “Analog0” an.
Ralf Helmle
@Maurice Hildebrand:
Da yaml ja extrem pienzig mit führenden Leerzeichen ist, würde ich mich über eine Bereitstellung deiner Konfiguration für ESPHome als Datei freuen, vielleicht könntest Du die irgendwo bereit stellen. Mit Copy/Paste habe ich Deine Konfiguration nicht zum Laufen bekommen. Danke.
Gruß
Ralf
Bernd Albrecht
@ Lui: An dieser Stelle kann ich nur die wichtigsten Tipps wiederholen:
1. Die Datenverbindung zum Hochladen und für den Seriellen Monitor funktioniert nur über die sechspolige Steckerleiste und dabei wird (anders als sonst üblich) Tx mit Tx und Rx mit Rx verbunden.
(Der Entwickler hatte eine Federleiste geplant, in die der USB-Seriell-Adapter eingesteckt wird).
Die Micro-USB-Buchse dient nur der Spannungsversorgung.
2. Den Temperatursensor bitte mit einem I2C-Scanner ausprobieren. Wenn keine I2C-Adresse angezeigt wird, ist der Sensor oder irgendein Kontakt ggf. nicht in Ordnung. In dem Fall bitte an den Kundendienst wenden.
Lui
Hallo an alle,
eine super Anleitung.
Leider läuft es bei mir genau wie bei Maciej. Der Gassensor funktioniert ohne Probleme. Doch der SHT30 zeigt nur Error bzw Nullen an. Habe zwei Boards ausprobiert, um einen Defekt auszuschließen. Ebenso jeweils mal die Libary WEMOS_SHT3X und SHT3x, mit 0×44, 0×45 und auch ohne Adressangabe ausprobiert. Immer der selbe Effekt, nämlich Null.
Woran kann das liegen?
Beste Grüße,
Lui
Rainer Sins
Hallo Herr Bernd Müller,
danke für den tipp mit den Librarys anpassen (wire vs. wire1). Ich hatte schon an mir gezweifelt… Nun habe ich etwas wichtiges gelernt: Wie man fehlerhafte Libraries repariert, bzw. wo diese zu finden sind.
Viele Grüße
Rainer
Mrt
sensordaten abfragen klappt nicht .
Sketch lässt sich nicht kompilieren.
/home/pi/Arduino/libraries/SHT3x/SHT3x.cpp:537:5: error: ‘Wire1’ was not declared in this scope; did you mean ‘Wire’?
537 | Wire1.beginTransmission(_Address);
| ^~~~~
| Wire
Dirk Pieper
@Dieter Müller,
ich verstehe deine Druck Probleme nicht. Dann dreh doch den Deckel. So ist die Wulst oben. Stützen vom Druckbed aus und gut (für den überstehenden Rand)…..die lassen sich dann entfernen. Ich hätte den Deckel in 5 Minuten neu konstruiert…brauche ich aber nicht.
@all,
das Gehäuse ist Top. Ich überlege mir noch, ob ich mir einen zweiten Deckel mit Ausschnitt für ein 0,96 Zoll Oled konstruiere…und das Oled Parallel auf den I²C Bus schalte. Bei mir läuft Tasmota drauf und ist via MQTT mit iobroker verbunden…
Maurice Hildebrand
Falls jemand das über ESP-Home mit Homeassistant nutzen möchte, sende ich euch meine Konfiguration:
#===================
substitutions:
device_name: envy_1
device_friendly_name: “Envy 1”
ip_address: 192.168.178.190
esphome:
name: ${device_name}
platform: ESP8266
board: d1_mini
wifi:
manual_ip: static_ip: ${ip_address} gateway: 192.168.178.1 subnet: 255.255.255.0 ap: ssid: “Fallback ${device_friendly_name}” password: !secret fb_wifi_pswdssid: !secret wifi_ssid
password: !secret wifi_pswd
captive_portal:
logger:
baud_rate: 0
api:
password: !secret ota_pswd
ota:
password: !secret ota_pswd
#===================
time:
– platform: homeassistant
id: homeassistant_time
#===================
i2c:
sda: D2
scl: D1
scan: False
sensor:
– platform: sht3xd
address: 0×44
temperature:
name: “${device_friendly_name} Temperature”
humidity:
name: “${device_friendly_name} Humidity”
update_interval: 60s
– platform: adc
pin: A0
name: “${device_friendly_name} Gas”
filters:
– multiply: 100
unit_of_measurement: “%”
update_interval: 60s
icon: “mdi:percent”
Bernd Müller
@H. Lühken
Hallo Herr Lühken schon mal wie oben im Text angegeben
“Eine Besonderheit: Weil man sich bei der Beschriftung an die Reihenfolge beim FTDI gehalten hat, wird TX mit TX und RX mit RX verbunden; nicht wie bei der UART-Schnittstelle sonst üblich über Kreuz” probiert?
Das war bei mir der Fehler, danach lief es.
Ach ja, in der “wire” Bibliothek ist TwoWire Wire1; nicht definiert, dadurch kam es bei mir beim Übersetzen mit dem SHT30 Beispiel immer zu folgendem Fehler:
error: ‘Wire1’ was not declared in this scope; did you mean ‘Wire’?
Nach dem Einfügen der entsprechenden Einträge in wire.h und wire.cpp ging dann auch das Übersetzen…
Gruß
Bernd
H. Lühken
Hallo,
bei mir klappt das Flashen des Envy einfach nicht. GND, RX und TX sind mit dem FTDI232 von AZ verbunden, Strom an der Mikro-USB-Buchse, Arduino-IDE 1.8.13, Bibliothek ist eingebunden, Port aktiv, aber trotz der Reihenfolge “RESET drücken und halten, FLASH drücken und halten, RESET loslassen, FLASH loslassen” kommt stets nur die Fehlermeldung “Failed to connet to ESP8266: Timed out waiting for packet header.”
Hat jemand noch eine Idee?
Maciej
Hallo
Bei mir funktioniert der Gassensor ohne Probleme, leider kriege ich lauter Nullen auf dem serial monitor für die Temperatur und Feuchte. Ich habe es mit der Bibliothek SHT3x ausprobiert, und dort mit Simple_operation.ino. Sicherheitshalber habe ich den Sensor einmal ohne Adresse, aber auch mit SHT3x Sensor(0×45); und SHT3x Sensor(0×44); ausprobiert, hilft leider alles nicht. Hat jemand dafür eine Lösung?
Bernd Müller
Hallo,
hat eigentlich schon jemand den Deckel des zugehörigen Gehäuses gedruckt?
Wenn ich diesen auf den Rücken lege, ist der kleine Wulst auf der Oberseite kontraproduktiv fürs Drucken..
Wenn ich ihn normal hinlege wird von meinem Slicer nicht genügend Stützstruktur erzeugt um ihn richtig zu drucken.
Hat jemand schon mal versucht den Wulst auf der Oberseite im stl File zu entfernen oder gibt es eine Datei wo dieser nicht drauf ist?
Würde mich über Unterstützung freuen.
Gruß
Bernd
Jürgen
@ Werner Schoepe
Ihr Problem liegt, denke ich, an der Tatsache, dass beim Löschen und Flashen
von MicroPython via uPyCraft die Tastenfolge RST + Flash RST -Flash
zweimal erfolgen muss. Einmal beim Löschen des Speichers und
das zweite Mal beim eigentlichen Flashvorgang. Danach RST drücken und
die serielle Schnittstelle neu verbinden, das war’s. Übrigens die serielle
Schnittstelle können Sie angeschlossen lassen, wenn Sie ein MicroPython-Programm
auf dem Envy starten. Sie brauchen die Schnittstelle ja für die Terminalausgaben.
In dieser Hinsicht reagiert der Envy nicht anders als jeder ESP8266-Typ.
Das Problem ist halt auf dem Envy die fehlende Flashautomatik, die man heute
schon fast bei allen ESPs gewohnt ist.
Hier finden Sie die Module, die ich für meine Tests verwendet habe:
https://github.com/labay11/MQ-2-sensor-library/archive/master.zip
https://github.com/rsc1975/micropython-sht30/blob/master/sht30.py
Werner Schoepe
Hallo Elektronik Freaks,
meine AZ-Envy läuft nun prima mit der Arduino IDE und C.
Der beim Start eines hochgeladenen Programms darf die serielle Schnittstelle nicht mit dem envy verbunden sein. Dann läuft das Programm auch brav bei drücken von Reset los!
Nun möchte ich das Board gerne mit MicroPython betreiben. Aber das Flashen von Python will nicht klappen.
Der erste Schritt “Erase Flash” mit uPycraft scheint noch zu funktionieren. Dann bekommt man einen Timeout beim schreiben… Hat jemand schon mal den AZ-Envy mit Python betrieben? Ist dies grundsätzlich möglich?
Gruß aus Düsseldorf!
Werner Schoepe
Hallo Elektronik Freunde,
der blog hat mir sehr geholfen den Envy zum blinken zu bringen. Nun soll er auch “autonom” blinken.
Ich versoge ihn über den USB-Stecker mit Strom und dann drücke ich die Reset-Taste. Dann sollte er doch loslaufen und blinken? Tut er bei mir aber nicht!
Wenn ich zusätzlich die USB2Serielle Schittstelle in den Computer stecke und dann Reset drücke läuft er los. Wenn ich die Schnittstelle aus dem Rechner herausziehe läuft er brav weiter. Aber das kann es ja nicht sein. Wie macht Ihr das? Was mache ich falsch?
Danke für hilfreiche Tips im Vorraus!
makerMcl
Ergänzung: der “unbekannte Algorithmus” arbeitet mit den Widerstandsverhältnissen der unterschiedlichen Gase. Die Messung basiert darauf, das beim initialisieren (Methode setup()) sich der Sensor in normaler (frischer/reiner) Luft befindet. Das Datenblatt gibt verschiedene Kennlinien für die Gase an (Obacht – die Diagramme dort nutzen logarithmische Skalen).
Dieter Möller
so, jetzt ist mir gelungen die Daten (Temperatur, Humidity, Gas) vom AZ Envy auf meinem Nextion Display dazustellen. An Tx, Rx und Masse verbinden und einige Nextion-Befehle im Sketch, dann gings.
Wichtig für die Darstellung der Temperatur war das: float Temp = Sensor.GetTemperature(SHT3x::Cel); da hab ich lange für gebraucht, bis das raus hatte.
MfG.
Dieter
Dieter Möller
Danke für die obigen Ausführungen. Haben auch mir beim Flashen geholfen. Wie krieg ich denn ein Display an den AZ Envy angeschlossen? Die Werte nur auf dem seriellem Monitor der IDE zu sehen ist mir zu wenig. Vorzugsweise würde ich gerne einen Nextion verwenden. Ich habs versucht, Nextion an TX und RX angesclossen. Funktioniert nicht.
MfG.
Dieter
Rainer Beckmann
Zu Tastmota hier die Info wie man die Anzeige des Gassensors auf 3 Stellen bringen kann.
Über die Konsole muß man folgenden Befehl eingeben: adcparam1 6,0,1023,0,10000
Damit wird die Anzeige 3-stellig. Für 4 Stellen wird die 10000 auf 100000 gesetzt.
Beim mir werden die Werte des SHT3x nicht an den Smarthome-Server weitergereicht. Hat da jemand einen Tip?
Manfred
Hallo,
an einer Tasmota Lösung wäre ich auch interessiert. Gibt es schon Erfahrungen?
LG Manfred
Thomas Hasseler
Es wäre schön, wenn es für den MQ-2 Sensor eine Konfiguration für ESPhome gäbe.
Hat schon jemand das unter ESPhome zum laufen gebracht….?
Bernd Albrecht
Wenn man SHT30 & github googelt, wird man zur Seite
https://github.com/Risele/SHT3x
geleitet. Dort auf dem grünen Feld „Code“ (pull-down-Fenster) bitte Download ZIP anklicken. Diese ZIP-Datei verschiebt man in den Unterordner libraries.
Dann unter Sketch/Bibliothek einbinden/.ZIP-Bibliothek hinzufügen… wählen.
In dem Fenster des Datei-Managers suchen Sie dann die neue ZIP-Datei im Ordner libraries und binden sie in der IDE ein. Anschließend ist ein Neustart erforderlich.
Nach dem Neustart der IDE findet man einen Menüpunkt SHT3x-master unter Datei/Beispiele und in unserem Beispiel-Sketch sollte die Befehlszeile mit „include“ funktionieren.
In einem Beispiel-Sketch wird alternativ die Bibliothek von WEMOS benutzt. Geht genauso.
A. Freudenstein
Versuche den Envy einzubinden. Die Arduino IDE meldet auch, dass ein 8266 generic board eingebunden ist. Danach versuche ich verzweifelt, unter Beispielen den Sketch für SHT3x master zu finden.
Wird bei mir nicht angezeigt, sondern es kommen nur die Standard-Funktionen und keine, wie in der Beschreibung angegeben z.B. PUBSubClient (oben) oder XPT2046 Touchscreen (unten).
Frage: Wo liegt der Fehler, den ich mache und wie bringe ich den ENVY zum Laufen?
PS: Ich benutze die IDE-Version 1.8.13
Wolfgang Sombeck
ich habs so probiert:
https://templates.blakadder.com/az-envy.html
Bin auch auf den TX-TX und RX-RX reingefallen, aber jetzt ist Tasmota drauf, aber mit dem Template aus dem Link wird nur ein zweistelliger Wert aus dem AD0 angezeigt. Hat jemand schon mehr Erfahrungen mit Tasmota gemacht?
Björn
Hallo,
ich habe die oben genannten Schritte befolgt, bekomme jedoch keine Verbindung hin.
Kann mir jemand den Ablauf mit der FTDI Programmierung/Schnittelle erklären? Welche Adapter benötige noch?
Danke.
Steve Schneider
Vielen Dank für diesen hervorragenden Blog Beitrag. Meine ersten Gehversuche mit diesem Board wären ohne Ihren Blog Beitrag nicht möglich gewesen. Es scheiterte bereits am flashen. Warum die Pin Leiste zum flashen nicht voll beschaltet ist, muss man vermutlich wirklich nicht verstehen. Dies war der erste Stolperstein. Vcc auf der Pin Leiste ist offenbar nicht verdrahtet. Man benötigt also unbedingt neben dem Anschluss des Programmers den Anschluss via MicroUSB mit 5V. Dann war es nicht möglich in den Flash Modus zu gelangen. Die vorhandene Dokumentation enthielt lediglich den Hinweis, dass man zuerst die Reset Taste und dann die Flash Taste drücken soll. Allerdings war dies nur die halbe Miete. Reset drücken, Flash drücken, Reset loslassen, Flash loslassen ist die korrekte Vorgehensweise, um den Flash Modus zu erreichen. Dies muss unbedingt die in Handbücher einfließen. Dritter und letzter Stolperstein war dann die Tatsache, dass RX und TX nicht vertauscht werden dürfen (wie bei UART) und dann funktionierte endlich alles. Sowohl Tasmota, als auch ESPEasy funktionieren mit diesem Board. Ebenfalls hilfreich wäre die Angabe, dass der ESP-12F 4MB Speicher mtibringt. Dies erfährt man leider auch nicht aus den Unterlagen, sondern aus anderen Quellen im Internet.
Steve Schneider
@Sören Hellwege: Der Entwickler des Boards (Niklas Heinzel) schrieb in einem anderen Board am 24.11.2020: “The gas sensor is connected to ADC/A0 and the HDC1080 to I2C (SDA = GPIO4, SCL = GPIO5, I2c-Adress 0×44).”
Quelle: https://www.pcbway.com/project/gifts_detail/ESPEnvi___Environment_sensors_development_board.html
Warum hier vom HDC1080 gesprochen wird, ist mir nicht ganz klar, da als Sensor beim AZ-Envy Board ein SHT30-DIS-B verbaut ist. Ich würde aber darauf tippen, dass die gleichen GPIOs verwendet wurden.
Miguel Torres
Buena explicación del funcionamiento. Si como se dice en los comentarios, el sensor de gas interfiere en la lectura de la temperatura, la solución una solución puede estar en el diseño de la carcasa, dejando una separación física. Parece un módulo interesante para detector de fuego y humos.
Jos
vielen Dank für den Beitrag. Klar erklärt, simpel gehalten, genau richtig. Sicherlich kann man über Feinheiten diskutieren, aber diese Platine zeigt was mit geringem Einsatz erreicht werden kann.
Ich musste zwar überlegen warum “Smoke” nach dem Anhauchen so hoch geht, da ich doch vor 15 Jahren aufgehört habe zu rauchen ….
Auch hatte ich vor 40 Jahren mal ein Auto welches ich mit LPG Gas betanken konnte.
Egal, ich bin zufrieden und werde mit dieser Basis weiter experimentieren.
LG
Jens Unterkötter
Kleiner Tipp am Rande. Die Platine senkrecht mit dem SHT30 nach unten anbringen. So wird die gemessene Temperatur nicht von anderen Bauteilen auf der Platine beeinträchtigt. Warme Luft zieht immer nach oben.
Sven Waibel
Ich habe mir gleich drei Teile bestellt und der Gasdetektor direkt neben dem Temperatursensor ist echt mies gelöst. Dadurch dass der Gasdetektor so eine Wärme abstrahlt, ist die Termperaturmessung total verfälscht. Der Temperatursensor hätte man als erste Maßnahme ans andere Ende der Platine machen müssen oder gleich auf die Rückseite. Klar kann man jetzt einen Plastikstreifen dazwischen fummeln, aber das ist nicht Sinn der Sache. Werde mir wohl ein Gehäuse drucken mit einer Abtrennung, mal sehen wie weit das hilft.
Das eBook ist eigentlich noch für die Katz, da sind die Infos in diesem Blog 1000x hilfreicher, danke dafür. Ins Buch sollte alle Infos rein, damit ein Anfänger das Ding flashen und benutzen kann. Das erspart viel Support und beim Anwender Sucherei. Vielleicht sollte man von ArduinoIDE weg und lieber PlatformIO unterstützen, das meiner Meinung nach wesentlich besser ist.
Viele Grüße
Jürgen
H.-J. Winter
Danke für die einführenden Hinweise. Um die Wärmestrahlung des Gassensors zu reduzieren einen schmalen Plastestreifen dazwischen schieben. 3 bis 4 mm Höhe dürften reichen.
Carsten
Hat schon jemand Erfahrung, das Teil mit MicroPython zu nutzen? Sollte doch problemlos möglich sein, oder?!
Bernd Albrecht
@ S.Helllwege: Die Sensoren des AZ-Envy sind intern angeschlossen. Wie Sie richtig vermuten: der MQ-2 an A0 und der SHT-30 an I2C.
Man benötigt beim SHT-30 weder die Pin-Nummern für SDA und SCL noch die I2C-Adresse. Mit den Zeilen
#include
SHT3x Sensor;
ist schon alles getan, was man benötigt, um den SHT-30 abzufragen.
Sören Hellwege
Hallo,
ich interessiere mich für den AZ-Envy und möchte ihn anschließend mit tasmota flaschen.
Der MQ-2 kommt an den A0, aber welche GPIO brauche ich für I2C?
Dankeschön