Ich hab hier eine Nodemcu mit ESP8266 rum liegen und würde gern mit dem teilchen Daten (Zählimpulse) in IPSYMCON übertragen. Ich habe auch schon die Hilfe bemüht, lande abe rimmer wirgendwie bei 2-3 einträgen zu dem thema. Auch zu MQTT gibt es jede Menge Zeugs, aber da bin ich ja stundenlang mit lesen beschäftigt weil alles total durcheinander ist…
Gibt es hier irgendwo eine Hilfe für den Einstieg in die Thematik oder muss ich mir wirklich alles stückchenweise zusammen suchen? Wäre für Links sehr dankbar.
Erzeugt auf dem ESP ein eigenständiges System mit vielfältigen Möglichkeiten der Datenübertragung und mittlerweile eine kaum noch zu überschauende Anzahl an Sensoren.
Den Bereich Zähler habe ich noch nicht getestet, u.a. weil mir die S0 Zähler einfach zu dämlich sind und es weitaus bessere Möglichkeiten gibt.
Nach dem Durchackern der Homepage könnte man z.B. über DIESEN Beitrag stolpern,
Gas-, Strom- und Wasserzähler sind bei mir im Keller direkt nebeneinander. Dennoch habe ich da 3 separate Sender mit 3 Netzteilen an der Wand hängen, die über CUL/CUN und die hier verfügbare Bibliothek an IPS senden. Das Ganze ist aber sehr fehleranfällig und zudem ist mir der Sender vom kürzlich Stromzähler ausgefallen.
Daher kam ich auf die Idee, die drei Sensoren, die ja lediglich Impulse ausgeben an die GPIOs eines einzelnen ESP8266 zu hängen und gemeinsam als Datenpaket an IPS zu senden. Das Ganze sollte halt möglichst einfach sein. Da hatte ich halt an einfache UDP Datenpakete oder an MQTT gedacht. Gestern abend habe ich da zumindest schon mal eine einfache Kommunikation per UDP hin bekommen. Ich schau mir aber die Implementierung in deinen Links mal genauer an und entscheide dann wie ich es umsetze.
Vermutlich wird das doch nicht so einfach wie ich dachte. Ich war in der Annahme, dass der EM100-IR zum Beispiel Zählimpulse ausgibt. Leider ist dem nicht so.
In dem Teil ist eine IR-LED und ein Phototransistor verbaut und das Ausgangssignal ist analog. leider hat der ESP8266 nur einen ADC eingang und damit kann ich die IDee, alle 3 Sensoren mit einem ESP auzuleden vergessen. Ich werde mal das Analogsignal ausmessen und schauen, ob ich da mit einem Schmitt-Trigger ein Impulssignal draus machen kann. Das hängt dann aber von den Pegeln ab.
Hier mal eine kleine Demo wie ich das immer mache!
Ich hab viele Anwendungen mit dem ESP. Ich erzeuge einfach eine Text-Homepage und hole die aktuellen Werte einfach über Port 80 ab. Falls ich Relais schalten will, mache ich einfach eine Unterseite „/ein“ und eine Unterseite „/aus“ beim Aufruf wird dann geschaltet und als Antwort der Zustand als „Homepage“ erzeugt.
Die Demo liefert einen gemessenen Analogwert.
Du könntest deine Pulse zählen und wenn die Daten abgeholt werden, könntest du die Zähler zurücksetzen.
#include <ESP.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPUpdateServer.h>
const String Hostname = "Zisterne";
const String Version ="Zisterne OTA V2.20
(C) Schuggi 2018";
#define LED 0
ESP8266WiFiMulti wifiMulti;
ESP8266WebServer server(80);
ESP8266HTTPUpdateServer httpUpdater;
int altMilli;
void setup(void) {
int Timeout;
pinMode(LED,OUTPUT);
digitalWrite(LED, LOW);
Serial.begin(115200);
Serial.println(Version);
Serial.println("Initialized");
WiFi.mode(WIFI_STA);
WiFi.config(IPAddress(192,168,178,246), IPAddress(192,168,178,1), IPAddress(255,255,255,0));
wifiMulti.addAP("SSID 1", "PW1");
wifiMulti.addAP("SSID 2", "PW2");
WiFi.hostname(Hostname);
while (wifiMulti.run() != WL_CONNECTED)// Warten auf verbindung
{
delay(500);
Timeout++;
if (Timeout>100) break;
Serial.print(".");
}
digitalWrite(LED, HIGH);
Serial.println("connected");
Serial.println(WiFi.SSID());
Serial.println(WiFi.localIP());
Serial.println();
delay(2000);
httpUpdater.setup(&server,"User","Kennwort");
server.on("/", Ereignis_Info);
server.onNotFound(Ereignis_Info);
server.begin(); // Starte den Server
altMilli = millis();
}
void Ereignis_Info()
{
String T = "";
T = Version + "
";
T = T+ "SSID: "+WiFi.SSID()+"
";
T = T+ "RSSI: "+String(WiFi.RSSI())+"
";
T = T+ "Hostname: "+WiFi.hostname()+"
";
T = T+ "ADC: "+String(analogRead(A0))+" digit";
server.send(200, "text/plain", T);
}
void loop()
{
int mi;
mi = millis();
if((mi-altMilli)>=5000)
{
Serial.print(".");
}
server.handleClient();
}
Also externe ADCs an den ESP zu hängen ist auch nur eine Kleinigkeit und günstig zu bekommen.
Schau dir mal ADS1115 an. Der Baustein wird über I2C angeschlossen und fertige Librarys gibts auch.
Es gibt eine Möglichkeit über ein Addon in der Arduino die ESP zu Programmieren
einfach mal Google fragen.
Habe schon 2 Projekte mit dem ESP und IPS realesiert.
Einfacher One Wire Temperatur Sensor an ESP angeschlossen
der mir alle 5Min. eine Webhook an IPS sendet
(Spannung der Batterie und Temperatur)
Daruch kann ich den ESP in Deepsleep setzen und die Batarien halten ewig
Einen Briefkasten Überwachung
(bei Auslösung der Klappe wacht der ESP auf und schickt mir einen Webhhook)
Monentan baue ich mit eine Kolegen eine Kleine Wetterstation auf
Windsensor (Messen von pusen pro sekunden -> umrechung in KM/H)(Leuft schon)
Regenmenge
usw
Also währ Interesse hat an den Programmen kann mich gerne im Forum anschreiben
Ja ich habe ein Akku-pack dran.
3X1,5V AA Batterien in einen 4XAA Batteriegehäuse.
Die Resetleitung wird über den Reedkontakt (Klappe) an Masse geschaltet.
In dem Webhook werden bei mir folgende Daten übermittel
MAC Adresse
VCC des AKUPAKS
USER
PASS
Ich versuche ein Näherungssensor via ESP8862 über einen Webhook an IPS zu senden.
Naja versuche… ich scheitere an diversen Hürden. Würdest Du mir deine Programme zu verfügung stellen damit ich sehen kann wie Du dies gelöst hast?
Hallo BerndJ
Danke für deine Tipps. Ich habe mir mal die passende Hardware bestellt und werde es dann mal versuchen. Den Sensor den ich anschliessen möchte ist ein Pimoroni Skywriter.