ESPeasy

ESPeasy

HI @all,

ich spiele nun schon ein Weilchen mit dieser Software herum und jetzt ist der Zeitpunkt gekommen euch dieses auch einmal vorzustellen:

ESPeasy Homepage

setzt auf die Arduino IDE auf,
ist auf den ESP8266 Baustein zugeschnitten
und wer bisher glaubte dass ein ATMEGA328 mit seinen 32KB Speicher optimal ist bekommt hier etwas grösseres zu sehen.
Aktuell werden in der Version 101 fast 400 KB auf den Flashbaustein übertragen.

Natürlich ist es open-source und der Quellcode ist sehr strukturiert aufgebaut.

So findet man für die Sensoren und Aktoren momentan 29! einzelne Dateien, erkennbar am Prefix: _P0xx_Name.ino
Es werden aktuell 8 Protokolle, bzw. Anbindungen unterstützt, Prefix: _C00x.ino

Aufgerufen wird im Dateiexplorer die Datei ESPeasy.ino.

Das aktuelle Repo ist hier zu finden:

GitHub - ESP8266nu/ESPEasy: Easy MultiSensor device based on ESP8266

Forum hier:

ESP Easy Forum - ESP8266

Die von meiner Seite bevorzugte Leiterplatte in meinem Shop und wenn Ihr möchtet kann ich auch fertig geflashte Ausführungen liefern.

Was kann diese Firmware?

Sie stellt nach der Installation auf einem beliebigen ESP8266 Modul ein eigenständiges „SubModul“ zur Verfügung.

[ul]
[li]eigene Administrationspage[/li][li]Anschluss vieler Sensoren[/li][li]dito Aktoren[/li][/ul]

Nach dem Flashen des Bausteines, wie geht es weiter?

Nach dem Anlegen der Versorgungsspannung baut das Modul einen eigenen AccessPoint auf, normalerweise:

ESP_0

Loggt euch dort ein, das Passwort wurde in der ESPeasy.ino in Zeile 84 definiert mit:

configesp

Normalerweise öffnet sich jetzt ein Konfigurationsmenue in welchem die verfügbaren WLAN Netze aufgelistet sind.

Falls nicht geht in den Browser und gebt ein:

http://192.168.4.1

es sollte dann weitergeleitet werden zu

http://192.168.4.1/setup

Im Konfigurationsmenue wählt euer WLAN aus und gebt den Key ein.

Anschliessend startet das Modul neu.

Und jetzt haben die Jungens leider noch einen kleinen Bug in Ihrer Firmware, siehe:

Bug Report V101, autoconfig - ESP8266

Workaround um die jetzigen Probleme zu umschiffen am Ende.

Wenn alles im eigenen SubNet zur Verfügung steht, das Main Menue:

anschliessend das Config Menue:

im nächsten Step folgt das Hardware Menue:

wichtigster Punkt das Devices Menue:

das Tools Menue:

und zum Schluss unter Tools, das Advanced Menue:


In diesem Bereich werde ich die Erfahrungen mit den einzelnen Sensoren auflisten und verlinken:

[ul]
[li]analoge Spannungsmessung ohne Zusatzmodule[/li][li]IO´s des ESP8266[/li][LIST]
[li]digital[/li][li]analog (PWM out)[/li][li]Modelbauservos direkt[/li][li]serielle Schnittstellen mit 3V3[/li][/ul]
[li]DS18B20 am ESP[/li][/LIST]

Hi,

schon tauchte die Frage von Axel auf:

wie frage ich die von mir gesetzten Ports ab?

http://IP/control?cmd=status,gpio,13

raus kommt dann beispielsweise bei einem Ausgang, welcher als PWM gesetzt wurde:

{
"log": "",
"plugin": 1,
"pin": 13,
"mode": "PWM",
"state": 666
}

Im Forum zu finden unter: HIER

Das ganze ist noch relativ neu, da ESPeasy ursprünglich nur für Sensoren angedacht war.

Seltsamerweise funktioniert dieser Befehl bei mir nicht in Verbindung mit einem 01er Modul.

mfg

BerndJ

Hallo Bernd,

leider kommt bei mir im Browser nur ein „?“ wenn ich den von Dir genannten Befehl eingebe.
Was ich aber ich noch nicht verstehe: Wenn ich den Schaltbefehl per http Befehl absetze kann ich die Änderung auf der Weboberfläche nicht erkennen.

Mach ich mit meinem Schaltbefehl etwas verkehrt?

Axel

Hi Axel,

ursprünglich wurde diese Software nur entwickelt um mit Hilfe von Sensoren diverser Coleur Daten zu erfassen.

Diese „Eingänge“ legt man unter „Devices“ an, momentan beschränkt auf 12 Stück.

Dann kam die Möglichkeit hinzu mittels diverser Befehle auch Aktoren zu bedienen.

Eine Rückmeldung dieses Statusses war ursprünglich nicht vorgesehen und kam erst später im Forum auf den Wunschplan.

Hast Du bei einem Schaltausgang auch ein Input unter Devices angelegt?

Zum Problem mit dem ?,
hatte ich gestern auch bei einem ESP-01;
heute antwortet der lieb und brav;
vermutlich stand da was im Browser Chache.

Im übrigen antwortet er nur wenn der entsprechende Port vorher mit dem richtigen Befehl als „Output“ angesprochen wurde und dieser auch syntaktisch sauber war.

Ich habe gestern beispielsweise den Servo Befehl falsch abgesetzt und entsprechend kam nix zurück. Heute mit den richtigen Parametern antwortete er brav.

Link zu den Befehlen um die GPIO´s anzusteuern

Erfahrungswerte der letzten Monate:

Die Leistungssteuerung meiner Pelletöfen läuft über einen Port welcher per PWM angesprochen wird und dann über einen Pegelwandler auf 5 V und anschliessendem R/C Glied eine analoge Spannung von 0-5 Volt ausgibt.

In der Vergangenheit sprach regelmässig der WDT des Modules an,
sprich das Teil fing von vorne an zu arbeiten und hatte natürlich die PWM Funktion dieses GPIO „vergessen“.
Also Ausgang 0 Volt und Ofen auf 2 KWh, sprich Bude zu kalt und WAF ganz unten.
Als Lösung lese ich regelmässig die Uptime aus per json, oder aber noch besser, ich lasse mir per

Device „System Info“ diese Zeit regelmässig senden.

Im Empfangscript dann abfragen ob die alte,
gespeicherte Uptime grösser ist als die neue,
und falls ja bekommt er die Daten sofort neu gesetzt.

Mittlerweile sind diese WDT Rücksetzer nicht mehr an der Tagesordnung, aber diese Form der Überwachung kann ja nicht schaden.

Im übrigen sollten wir mal einen Script zusammen basteln, welcher genau diese Abfrage sendet und
bei der Antwort ? sollte der Wert aus IPS geholt werden und neu gesetzt werden,
eine Art Logging Datei dazu könnte auch nicht schaden…

Hallo Bernd,

mit folgender Einstellung funktioniert es:

Als Befehl zum Schalten habe ich in IPS folgendes eingegeben:

<?
 file_get_contents("http://192.168.178.197/control?cmd=gpio,12,1");
 ?>

Gruß

Axel

Die Werte des BHT1750 werden über den I2C Bus ebenfalls problemlos an IP Symcon übertragen

Jetzt versuche ich einen Gassensor einzubinden. Dieser benötigt aber offensichtlich eine Versorgungsspannung von 5 Volt und einen Strom von 150 mA. Kann ich diese Leistung auch der Platine entnehmen?
Dazwischen schalte ich natürlich noch einen PCF8591 Analog/Digital Wandler.

Axel

Hallo Axel,

da einige Sensoren eine 5V Versorgungsspannung benötigen habe ich diese Möglichkeit bei meiner Platine bereits vorgesehen.

Ich hatte damals diese PIRI´s in den Fingern welche nur mit 5 Volt laufen, allerdings nur 3V3 Pegel ausgeben.

Für diesen Zweck wird auf der Unterseite ein zweites Schaltreglermodul aufgelötet.

An welcher Stelle ist HIER am Ende ersichtlich.

Falls jemand eine Leiterplatte bezogen hat und dieses Feature nutzen möchte so sollte er die Hinweise zum Stiftleistenblock davor beachten. Es ist hilfreich einen Stift durch einen längeren zu ersetzen, dieser dient als Gnd Anschluss für das 5 Volt Modul.

Normalerweise sind die für Sensoren vorgesehenen Stiftleisten mit 3V3 versorgt.
Mit Hilfe der Lötjumper J7 bis J11 besteht allerdings die Möglichkeit diese auf das 5 Volt Modul umzustellen.
Es ist auch denkbar weitere Module darüber zu stapeln und diese Sonderspannungen gezielt an einen gesonderten Portanschluss (Gnd, Vcc, GPIO12 bis 16) zu löten.

Der Hersteller gibt für das Modul einen maximalen Ausgangsstrom von 1,8A aus.
Ein ESP Modul im Betrieb hat bei einem WIFi RSSI von beispielsweise -77bB
(also schon etwas kräftiger und weiter entfernte WLAN Kommunikation)
eine durchschnittliche Stromaufnahme von 84 mA bei 3,3 Volt.

Beispielsweise liegt bei einem Modul von mir am Eingang 5,76 Volt und es fliessen laut INA219 49mA.

Da der zweite Spannungsregler ebenfalls an der Versorgungsspannung (max. 28Volt) liegt wird der erste für die 3,3V nicht weiter belastet.

Zu Deiner Frage:
wenn ich mich recht entsinne hat ja eines Deiner beiden Module diesen 5 Volt Regler.
Also bei 150 mA habe ich keinerlei Bedenken.

Wir können ja mal beim nächsten „Schlachterfolg“ den dann fliessenden Strom messen,
denn dann werden ja erfahrungsgemäss das Schaltreglermodul, als auch der ESP warm.

Kurzer Hinweis zum Schlachten: Überspannung mag er überhaupt nicht, alles was grösser ist als 3,6 Volt ist als kritisch einzustufen.

Aus diesem Grunde auch noch kurz erwähnt: passt auf dass von den Sensoren KEINE Spannungen grösser als 3,6V an die Eingangspins gelangen.

Den PCF8591 betreibst Du hoffentlich an 3V3, hier auf den richtigen analogen Eingansspannungsbereich mittels Vorteiler achten.

mfg

BerndJ

Hallo Bernd,

ich habe den PCF8591 an die Klemmen für den I2C Bus gehängt.
Wenn ich richtig gemessen habe liegen dort 3,3 Volt an.

Die Referenzspannung müsste demnach ebenfalls 3,3 Volt sein.
Um die tatsächlichen Werte zu erreichen sollte ich also bei 8 Bit 3,3 durch 255 rechnen um das Verhältnis für die Eingänge zu ermitteln?
Der PCF 8591 kann an den Eingängen ja max. 5 Volt vertragen.
Was mache ich wenn die Referenzspannung nur 3,3 Volt beträgt?

Axel

Hi,

die zu hohe Ausgangsspannung des Sensors, sagen wir vermutlich mal 5V mit 2 Widerständen runter teilen auf 3,3V.

Sensor 5V --> R4k7 --> Input PCF8591 (3V) --> R10K --> Gnd

Zum Berechnen eines sinnvollen Ausgangswertes gibt es ein Eingabefeld für eine Rechenformel beim PCF8591 unter dem Devices Reiter.

mfg

BerndJ

Hallo Leute,

nachdem ich nun schon erfolgreich die Temperatur, Luftfeuchtigkeit, Luftdruck und Helligkeit eingelesen habe, möchte ich nun den Ultraschallentfernungsmesser HC-SR04 einbinden. Wie im Netz beschrieben habe ich den Echo Ausgang über einen Spannungsteiler an den GPIO 14 der ESP Easy gehängt. Dass Trigger Signal habe ich direkt über GPIO 13 eingespeist. Leider erhalte ich keine Messwerte. Im Log kommt folgende Meldung:

174078 : SR04 : Distance: SR04 : Distance: No reading!

Hat jemand eine Idee?

Gruß

Axel

Hi Axel,

jup, die Probleme hatte ich auch.

Nimm den HIER, und dann sollte es laufen.

mfg

BerndJ

PS: oder Du nimmst, wie im darauf folgenden Beitrag dort erwähnt, einen 680 R als PullDown.

Wo bau ich den 680 Ohm Widerstand ein?

Axel

echo output --> 680R --> InPut --> 1 K --> Gnd

Dabei stört dann der aktivierte PullUp R mit seinen 40 K nicht mehr.

Hast Du bei der Einstellung „Mode“ „State“ oder „Value“ eingetragen?

Ich hab jetzt das Triggersignal direkt auf den GPIO 12 der Platine gelegt.
Das Echo Signal habe ich über den Spannungsteiler mit dem 680 und dem 1000 Ohm Widerstand auf den GPIO 13 gelegt.
Auf der Weboberfläche habe ich als 1.GPIO den PIN 12 und als 2.GPIO den PIN 13 ausgewählt.

Trotzdem liest er keine Daten ein:confused:

Axel

Bei State gibt er im eingestellten Intervall den gemessenen Wert aus.
Value hingegegen erlaubt das Setzen eines Schwellwertes, sobald dieser Über- bzw. Unterschritten wird erfolgt eine binäre Meldung: true oder false.

eigentlich sollte es so laufen wenn am Eingang saubere Pegel anliegen.

Evtl. muss der zugehörige Timer noch initialisiert werden, mach doch mal einen Reboot,
ACHTUNG!!!, keinen Reset, denn dann setzt er die Konfiguration zurück.

Tools Menue --> Reboot

mfg

BerndJ

Leider keine Änderung.

Zwischenzeitlich habe ich das Gefühl, dass der Sensor defekt ist.

Hi,

soweit war ich damals auch, hatte dann 5 Stück auf dem hiesigen Markt teuer bezogen.

Abhilfe schaffte der von mir eingesetzte Pegelwandler, damit läuft es reibungslos; auch mit dem ersten!

mfg

BerndJ

Könntest Du bitte kurz erklären, wie Du mit dem Pegelwandler genau vorgegangen bist und wo Du die Teile bezogen hast.

Axel

Hi Axel,

lag alles in einer meiner Grabbelkisten.

Alles was Du brauchst sind ein paar Widerstände, einen PNP und einen NPN Transistor.

Den Rest hatte ich bereits verlinkt: HIER

mfg

BerndJ