Entwicklung: Sensor mit dem ESP8266 WLAN-Funkmodul

Begonnen von locutus, 09 November 2014, 19:30:06

Vorheriges Thema - Nächstes Thema

eppi

Ich würde es so machen:

Diese URL aufrufen: http://base64-encoding.online-domain-tools.com/

Ins Textfelden seine Daten eingeben:
Benutzername:Passwort

Danach das Ergebnis ins Attribut eintragen, wie ich es geschrieben habe.

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Franz Tenbrock

#152
Danke für die Antworten, aber als ihr wohl geschrieben habt, hab ich es auch selbst rausgefunden und es klappt :-)
manchmal muss man nur was lesen in den richtigen Links. dazu mehr in der Anleitung die ich jetzt fertigstelle
Sollte in 30 min fertig sein
Ich denke damit kann das dann jeder

Anleitung im Post von 12:55

so und das Board von Locutus hab ich in keinen 5 Minuten fertig gehabt, wenn man weiß wie es geht kein Hexenwerk.
Leider ist der Empfang des ESP7 scheinbar etwas schlechter... werde ds weiter testen
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Franz Tenbrock

so das hier im Netz gefunden,
da hat jemand zumindest den HC-SR04 angebunden.

http://www.dieletztedomain.de/esp8266-und-hc-sr04/

Leider verstehe ich den Code noch nicht.
trigger = 1
echo = 4
sind das die GPIOs die ich ev auch anders nehmen kann?
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

PeMue

#154
Hallo zusammen,

der ESP8266 ist echt ein cooles Ding. Aber ich habe noch ein paar Themen, die ich für mich lösen will (aber vielleicht hat der eine oder ander schon eine Antwort dazu):
- Was ist der Unterschied zwischen der Expressif (Hersteller) und der Electrodragon AT-Firmware?
- Ich habe beim ESP-03 die Firmware [Vendor:www.ai-thinker.com Version:0.9.2.4], habe die auch gefunden. Kann ich diese auch mit dem NODEMCU Flasher hochladen? Die Flasher-Version, die dabei war, ist dummerweise chinesisch, also für mich nicht wirklich brauchbar.
- Wie kann ich per AT Kommandos die eigentliche Funktion (umsetzen von seriellen Kommandos auf Ethernet/WLAN) herstellen? Meine Idee: per AT-Kommandos das WLAN-Netz auswählen, die Baudrate einstellen und das Teil macht beim nächsten Start die Umsetzung automatisch (Idee: Einsatz als Optolink Adapter).

Und eine Frage für das lua-Skript:
- Meine Weboberfläche ist mit
attr telnetPort password { use FritzBoxUtils;;FB_checkPw("localhost","$password") }
abgesichert, vermutlich muss ich dann den User (vermutlich root) und das Passwort encrypten und übergeben ...

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

locutus

#155
Zitat von: Franz Tenbrock am 25 Mai 2015, 17:25:35
Leider verstehe ich den Code noch nicht.
trigger = 1
echo = 4
sind das die GPIOs die ich ev auch anders nehmen kann?
trigger = 1 = GPIO5
echo = 4 = GPIO2
https://github.com/nodemcu/nodemcu-firmware#gpio-new-table--build-20141219-and-later

Zitat von: PeMue am 25 Mai 2015, 18:28:49
Ich habe beim ESP-03 die Firmware [Vendor:www.ai-thinker.com Version:0.9.2.4], habe die auch gefunden. Kann ich diese auch mit dem NODEMCU Flasher hochladen? Die Flasher-Version, die dabei war, ist dummerweise chinesisch, also für mich nicht wirklich brauchbar.
Ja, vorher bitte Offset einstellen.
https://github.com/nodemcu/nodemcu-flasher

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Wzut

Zitat von: PeMue am 25 Mai 2015, 18:28:49
- Wie kann ich per AT Kommandos die eigentliche Funktion (umsetzen von seriellen Kommandos auf Ethernet/WLAN) herstellen?
Blättere mal zurück bis Antwort #83 am 10 März 2015 von locutus.
Die Transparent Bridge hat es mir angetan :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Franz Tenbrock

#158
Hallo, es wäre schön wenn man das immer mal wieder zusammenfassen würde ....
Wiki wäre auch nicht schlecht....(hab da ne Schreibberechtigung, würde auch was schreiben, aber nur wenn andere das kontrollieren und dann auch sagen richtig - falsch)

arbeite mich gerade in LUA ein, wie ist das aufgebaut... versuche es aus Anfänger Sicht zu verstehen, und beabsichtige auch da meine Erkenntnisse schriftlich zusammenzufassen...

wenn man das flashen 2-3 mal gemacht hat , ist das dann auch ein Kinderspiel, wenn nun der Barcode nicht kommt weiß ich das ich wahrscheinlich nur RX und TX wechseln muss....

Als nächsten Zwischenschritt möchte ich halt einen HC SR04 oder wie das Ding heißt bauen und die Daten an FHEM übermitteln, ab hier neu

so ich habe nun was im Internet gesucht und ein wenig gefunden:
http://www.dieletztedomain.de/esp8266-und-hc-sr04
Das Beispiel beruht auf einem ESP8633 201

Ebenso dies hier:
https://github.com/sza2/node_hcsr04

Mit Beispiel 2 bin ich nicht weitergekommen, immer Fehler in Zeile 52 obwohl ich alles richtig übernommen habe.

Bei Link 1 musste ich die Pinbelegung ändern da ich den ESP8633 E03 von Locutus benutzt habe.
Ich habe den nodemcu_float_0.9.6-dev_20150406.bin genommen.

Hier der Lua Code der von mir eingesetzt wurde:

--init.lua
trigger = 3
echo = 4

gpio.mode(trigger,gpio.OUTPUT)
gpio.mode(echo,gpio.INPUT)

wifi.setmode(wifi.STATION)
wifi.sta.config("Fritz","1234")
wifi.sta.connect()

tmr.alarm(0, 1000, 1, function()
   if wifi.sta.getip()==nil then
      print("connecting to AP...")
   else
      print('ip: ',wifi.sta.getip())
      tmr.stop(0)
      tmr.alarm(1,250,1,function()
        dist = measure_HC_SR04(trigger,echo)
        print (dist)
      end)
   end
end)

function measure_HC_SR04(trigger, echo)
  gpio.write(trigger, gpio.LOW)
  dist = 0
  for variable = 0, 200, 1 do
    dist = dist + gpio.read(echo)
  end 
  gpio.write(trigger, gpio.HIGH)
  return dist
end
dofile("fhem.lua")


Soweit ich das erkenne sendet er korrekte Werte in cm

Nun brauch ich ja noch so etwas wie die Übermittlung der Variabel dist an FHEM

-fhem.lua

Entfernung=dist

print("dist")

conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end )
conn:connect(8083,"192.168.178.46")
conn:send("GET /fhem?cmd=setreading%Entfernungtemp%20state%20T:%20" ..t.. "\r\n"
            .. "HTTP/1.1\r\n"
            .. "Host: www.local.lan\r\n"
            .. "Authorization: Basic dskfhskfh==\r\n"
            .. "Connection: keep-alive\r\n"
            .. "Accept: */*\r\n\r\n")
end)


Sorry für den Code, habe bisher nie versucht zu programmieren.
Wie heisst die Variable die ich vom ersten code an den 2. code übergeben muss?
dist?
Der letzte Block ist zum anmelden an FHEM falls dieses gesichert ist.

na dann werde ich mich hiermit mal auseinandersetzen müssen...
http://lua.gts-stolberg.de/Variablen.php

und damit den code gleich testen ?!
http://luaedit.sourceforge.net
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Franz Tenbrock

Hallo
es gibt ja eine float und eine integer .. lua
wo ist der Unterschied ?
bisher keine Erklärung gefunden...
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Bugs

Integer = ganze Zahlen -2,-1,0,1,2,3
float = rationale Zahlen -1.3,-28.7,0,6.7,304.7

Bugs

Franz Tenbrock

ok verstanden

dieser Code funktioniert
GPIOs hab ich scheinbar richtig angepasst

ich habe auch Kommentare hinzugefügt für den Ablauf, hab es was langsamer gemacht..
Variable dist ?!

Das Ganze nun mit dem DYP-ME007Y, der scheinbar aber erst ab 30 cm richtig messen kann...
Der soll hinterher in die Zisterne
Im Wiki will ich das dann auch ergänzen, wenn es fertig läuft
http://www.fhemwiki.de/wiki/Zisterne:_Füllstandsberechnung_mittels_Ultraschallsensor

Damit der ESP nicht schrottet habe ich im Kabel  Echo ein 5K Widerstand eingefügt.
a la Anleitung
http://www.dieletztedomain.de/esp8266-und-hc-sr04/


trigger = 3
echo = 4

gpio.mode(trigger,gpio.OUTPUT)
gpio.mode(echo,gpio.INPUT)

wifi.setmode(wifi.STATION)
wifi.sta.config("Fritz7490","50105245806925532870")
wifi.sta.connect()

tmr.alarm(0, 15000, 1, function() -- 15000 ist die zeit dei verstreicht zum anmelden am netz
   if wifi.sta.getip()==nil then
      print("connecting to AP...")
   else
      print('ip: ',wifi.sta.getip())
      tmr.stop(0)
      tmr.alarm(1,20000,1,function() --- 20000 die Zeit bis zur nächsten messung
        dist = measure_HC_SR04(trigger,echo) -- dist ist die Variabel der messund meas_HC_
        print (dist)
      end)
   end
end)

function measure_HC_SR04(trigger, echo)
  gpio.write(trigger, gpio.LOW)
  dist = 0
  for variable = 0, 200, 1 do
    dist = dist + gpio.read(echo)
  end 
  gpio.write(trigger, gpio.HIGH)
  return dist
end
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

locutus


Franz Tenbrock

Nachdem ich mich mit LUA Programmierung ( Grundlagen) 2 Stunden beschäftigt habe und der Kopf nun raucht habe ich mit einem ESP8266 Wiki begonnen.

http://www.fhemwiki.de/wiki/ESP8266



Dort versuche ich einmal alle bisherigen Projekte zu verlinken....

Tips Anregungen Hilfen immer willkommen, bin da ebenso totaler Anfänger. Aber es ist immer sehr mühsam durch die ewig langen Threads zu wühlen bis man alles hat.

Wer da keinen Zugriff hat aber Änderungen, Ergänzungen etc. haben möchte, soll mich anmailen.

Das Teil ist so cool ...
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Bugs

ZitatDer Flashvorgang kann nun mit einem Klick gestartet werden und sollte vollautomatisch durchlaufen.

Ab und an startet der Flashvorgang nicht, da hilft es einfach das Modul von Spannung zu nehmen, während der USB-Uart daran bleibt. Dann Flashen starten und dann erst das Modul mit 3,3V zu versorgen. Es geht auch wenn man CH_PD erst nach dem Klick auf Flash mit VCC verbindet. Zu beachten ist, das GPIO0 vor VCC schon mit GND verbunden sein muss.

Wenns hilft, kann ich die LUA Files meiner Sensor_Nodes zur Verfügung stellen.
Das sind kleine Kästchen mit nem DHT22 und ner LED an ner kleinen Wandwarze ( Warte noch auf meine ESP-03 Module und dann wird auf Batterieversorgung umgebaut) .
Laufen jetzt schon min 1 Woche stabil und senden alle 60sec Temp und Feuchte.
Mit FHEM sprechen sie über MQTT und Mosquitto aufm Pi 2.
Wenn ich einen Sensor manuell resette, ist die LED nach ca 4sec wieder an ( retain publish des LED-state in FHEM ).

Bugs