ESP8266_01 (ESP_01) sendet 2x DS18x Daten an SHC

  • ESP8266_01 (ESP_01) sendet 2x DS18x Daten an SHC

    Hi Leuts,

    habe mich jetzt ne weile mit dem ESP-01 und dem DS18x20 rumgeärgert.

    Ich wollte, wie an jedem anderem Sender (ob Raspi oder Arduino) den 1Wire Bus richtig nutzen. Also mehr als ein Sensor.
    Das ist mir aber bis jetzt nicht gelungen.
    Aber ich konnte den ESP-01 wenigstens an GPIO0 und GPIO2 dazu bringen, je einen Sensor zu verwenden.

    Als Firmware ist "NodeMCU 0.9.6 build 20150704 powered by Lua 5.1.4" im Einsatz.

    siehe Scripte


    Neue Version Post 10
    habe SHC aufgegeben.

    The post was edited 3 times, last by bin dann weg ().

  • Hallo,

    ich denke dein problem könnte darin liegen das der esp8266 beim aufruf von send_to_shc() noch keine wlan verbindung hergestellt hat

    teste es mal ohne feste ip

    versuche mal beide temperaturen mit einen request an den RPI zu senden z.b. an ein eigenes php skript und schicke dann die temperaturen mittelst php an shc
  • einfach die feste ip löschen und eine schleife einbauen der checkt ob wifi.sta.getip() nicht "nil" ist


    hier mal nen bsp code für dht22 allerdings nicht über http-get sondern per mqtt sollte aber relativ einfach möglich sein zu ändern brauchst ja nu die Funktion read_temp()

    darin auch eine Funktion die prüft ob der chip verbunden ist ( tmr.alarm(0... )


    PHP Source Code

    1. tmr.alarm(0, 150, 1, function()
    2. if wifi.sta.getip() == nil then
    3. print("wait\n")
    4. else
    5. tmr.stop(0)
    6. print("mqtt start")
    7. mqtt_start()
    8. end
    9. end)
    10. function mqtt_start()
    11. mqtt = mqtt.Client("buero", 120, "", "")
    12. mqtt:on("connect", function(con) print ("connected") end)
    13. mqtt:on("offline", function(con) print ("offline") node.restart() end)
    14. mqtt:connect("192.168.0.43", 1883, 0, function(conn)
    15. print("connected")
    16. -- subscribe topic with qos = 0
    17. mqtt:subscribe("/home/temp/#",0, function(conn)
    18. -- publish a message with data = my_message, QoS = 0, retain = 0
    19. mqtt:publish("/home/temp","BueroOnline",0,0, function(conn)
    20. print("sent")
    21. end)
    22. end)
    23. end)
    24. end
    25. function read_temp(pin)
    26. --pin = 4
    27. status,temp,humi,temp_decimial,humi_decimial = dht.read(pin)
    28. if( status == dht.OK ) then
    29. -- Integer firmware using this example
    30. -- print(
    31. -- string.format(
    32. -- "DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",
    33. -- math.floor(temp),
    34. -- temp_decimial,
    35. -- math.floor(humi),
    36. -- humi_decimial
    37. -- )
    38. -- )
    39. -- Float firmware using this example
    40. --print("DHT Temperature:"..temp..";".."Humidity:"..humi)
    41. elseif( status == dht.ERROR_CHECKSUM ) then
    42. print( "DHT Checksum error." );
    43. elseif( status == dht.ERROR_TIMEOUT ) then
    44. print( "DHT Time out." );
    45. end
    46. return temp_decimial,humi_decimial,temp,humi
    47. end
    48. tmr.alarm(1, 10000, 1, function()
    49. print("tick")
    50. read_temp(3)
    51. t = temp .. "." ..temp_decimial
    52. h = humi .. "." ..humi_decimial
    53. mqtt:publish("/home/temp/buero/temp/state",t,0,0, function(conn)
    54. print("temperatur gesendet"..t)
    55. end)
    56. mqtt:publish("/home/temp/buero/humi/state",h,0,0, function(conn)
    57. print("feuchte gesendet" ..h)
    58. end)
    59. end )
    Display All

    zu 18x ds8b20 ich habe an einen raspberry 27stück hängen am esp mit mehren aber keine Erfahrung
    habe mal irgendwo im netz nen Bericht gelesen da hat einer auch mehre an einen esp8266 gehabt finde aber den link nicht mehr
  • Hi gMaN,

    über n Raspi ist das kein problem, aber da ich mich jetzt mit Arduinos und ESPs eingedeckt habe, ist mein Ziel, selbige zu kombinieren und für diese Aufgaben zu nutzen. Diese Raspi Zero (oder so) sind schon seit November bei Pollin gekauft, aber immer noch nicht geliefert.

    Das DHT script werde ich mir nachher mal ansehen.

    ich habe mir mal ein NodeMCU erstellt.

    This was built against the master branch and includes the following modules: dht, file, gpio, net, node, ow, tmr, uart, wifi.

    Sind diese Module ausreichend, oder soll ich eine ältere NodeMCU 0.9.6 verwenden?
    habe SHC aufgegeben.