Grützi
Seit zwei Tagen beiße ich mir die Zähne an einem Wemos D1 Mini aus... insgesamt sechs Module des gleichen Typs liegen mir als Clone ohne Wemos-Logo vor. Ich konnte sie lange nicht über "Wemos D1 R1" in der Arduino IDE zum laufen kriegen, sondern über "LOLIN WEMOS D1 & R2 Mini". Nach etlichen Stunden laufen die immerhin, wo auch die meisten Boards den Chipselect für ein Micro- SD-Kartenmodul auf Pin D8 haben und auch das nicht bei diesem Board funktionierte.
Mein Problem: es mangelt an einem Pin für einen zweiten DHT11-Sensor. Angeschlossen ist ein OLED über I2C, ein SD-Kartenmodul, Potentiometer, Servo, Transistor und Temp.-Sensor. Die derzeitige Pinbelegung ist wie folgt:
TX - frei!
RX - frei!
A0 - Potentiometer
D0 - Servo
D1 - SCL für OLED
D2 - SDA ebenda
D3 - DHT11
D4 - CS
D5 - CLK
D6 - MISO
D7 - MOSI
D8 - 2N2222 Transistor
Durch meine Suche im Netz wurde ich darauf aufmerksam, dass die Pins TX/RX bei einigen ESPs als normale GPIOs genutzt werden können, sofern kein Serial.xxx für serielle Kommunikation genutzt würde. Allerdings scheiden sich die Geister beim Wemos-Board, da die USB/CH340 Kommunikation diese nutzen würde. Unterschiedliche Meinungen finden sich vor allem beim RX (also nicht TX), der je nach Board sehr wohl als GPIO genutzt werden könne... desöfteren aber auch nicht.
Welche Erfahrungen liegen den Nutzern hier vor bzw. welche Möglichkeiten gibt es für eine (platzsparende) Erweiterung für einen weiteren DHT11-Sensor (ohne die Bibliothek umzuschreiben) und ohne auf andere Boards auszuweichen?
Vielen Dank
Wenn du die Pins benutzt, funktioniert meist die serielle Schnittstelle und somit der Sketch upload nicht mehr. Du musst also jedesmal die Hardware abklemmen.
Kleiner als Wemos? nimm nackte ESP12e . Das e (oder f) ist wichtig wegen der Pins.
statt dem I2C Display ein SPI Display nehmen, einen Pin dann als CS fürs neue Display und den anderen fürn DHT
am I2C einen Portexpander ranhängen und dort dahinter deine Transe zum Schalten.
einen (oder gleich zwei) Feuchtesensor mit I2C nehmen (BMP...). Der DHT11 ist eh nicht besonders...
statt der SD-Karte im SPIFFS speichern und SD-Karte weglassen
OTA integrieren und hoffentlich RX/TX nicht mehr benötigen (zumindest ersparst dir das DHT abklemmen fürs flashen)
das habe ich wohl gelesen,
Welche Erfahrungen liegen den Nutzern hier vor bzw. welche Möglichkeiten gibt es für eine (platzsparende) Erweiterung für einen weiteren DHT11-Sensor (ohne die Bibliothek umzuschreiben) und ohne auf andere Boards auszuweichen?
finde aber man soll sich nicht selber Beschränkung und ein Problem verbasteln, sondern das Konzept anpassen. Langfristig werden es dir deine Zeit und dein Geld danken jetzt eine gute Lösung zu suchen.
ElEspanol:
Wenn du die Pins benutzt, funktioniert meist die serielle Schnittstelle und somit der Sketch upload nicht mehr. Du musst also jedesmal die Hardware abklemmen.
Bei einer festen Verdrahtung ist das nicht gerade praktisch, zumindest solange der Sketch nicht endgültigen Charakter hat.
noiasca:
du könntest... [...]
Ok, das ist eine Auswahl! Der NodeMCU (hätte ich sogar da) ist von den Abmessungen etwas zu groß, der ESP12e ist sehr interessant (eher für fortgeschrittene Benutzer), .... dafür habe ich mehrere PCF8574 IO Expander zur Hand, an denen ich mich die letzten Stunden versucht habe, verstehe aber nicht wie ich der DHT-Bibliothek nach dem Einbinden mit <#include "DHT.h"> unter <DHT dht22 (???, DHT22);> einen zugewiesenen Pin von z.B. P0 des PCF8674 mit <pcf8574.pinMode(P0, INPUT);> erklären soll.
Die DHT von Hand selber neu zu schreiben wie es der letzte Post vorschlägt würde für mich einer Reise zum Mars bedeuten... Hat hier jemand Erfahrung?
Dankeschön
Ich vermute, der DHT22 funktioniert am PCF8574 nicht.
Der DHT ist bidirektional was der PCF erst nach einem Steuerbefehl kann.
Dazu müsstest du wohl die Library umschreiben.
ich würde mindestens eines der DHT durch BM280 Module erstetzen. die laufen mit I2C. Muss es ein SD Modul sein oder ginge auch das interne Filesystem SPIFFS.
HotSystems:
Ich vermute, der DHT22 funktioniert am PCF8574 nicht. [...] Dazu müsstest du wohl die Library umschreiben.
Ok, das entspräche für mich einer "Reise zum Mars", daher lieber ein anderer Weg - also nicht aus Faulheit, sondern einer realistischen Einschätzung meines Könnens.
Rentner:
...ich würde mindestens eines der DHT durch BM280 Module erstetzen, die laufen mit I2C. Muss es ein SD Modul sein oder ginge auch das interne Filesystem SPIFFS.
Beide DHT sind extern mit ca. 6 Metern Kabel (überdachte Scheune) und die SD-Karte ist mir ziemlich wichtig... Würde ich dafür auf den Transistor verzichten, um einen Pin zusätzlich zur Verfügung zu haben: wie kann ich die eingangs genannte Pinkonfiguration ändern, dass ein zweiter DHT am Wemos D1 Mini angeschlossen werden kann (D0 und D8 sind hierfür nicht tauglich)? Könnte ich den Chipselect der SD-Karte auf einen Pin des PCF8574 legen?
HotSystems:
Was genau soll der Transistor machen? Den könntest du über den PCF steuern, Alles andere wäre kritisch.
Verflixt, meine bisherigen Versuche mit pin-swaps bestätigen "wäre kritisch". Soll aber nichts heißen, weil das Folgen größerer Projekte in diesem Forum schon einschüchternd für Anfänger sein kann.
Der Transistor diente als "Reserve", falls ich später eine Sekundärschaltung nachrüsten wollte - daher wäre nur dieser nicht wichtig.
HotSystems:
Und wieso geht D8 nicht für einen DHT?
Da hänge ich gerade. Den Datenpin des DHT einfach an den D8 klemmen funktioniert jedenfalls nicht. D8 wird beschrieben als "I/O, 10k pull-down, SS GPIO15", der beim Booten auf LOW gesetzt wird. Quelle: Wemos ESP8266 D1 R2 V2.1.0 Dev Board (Arduino UNO Board Footprint) – Addicore
Könnte ich mit einem weiteren/anderen pull-up Widerstand zwischen dem DHT-Datenpin und den D8 des Wemos diesen Pin nutzen, ohne dass mir etwas abraucht?
Meine Kabelverbindungen sind übrigens abgeschirmtes Telefonkabel: geht prima (bis rund 10m getestet)!
HotSystems:
Ok, aber warum hast du CS auf D4 gelegt.
Im Pinout ist es D8, dann kannst du doch D4 für den 2. DHT nehmen.
Das habe ich versucht, nur funktioniert das bei meinem Wemos-Clone nicht (auch ein identischer Zweiter)! Die meisten Datenblätter berufen sich auf den Pin D8 für CS, bei meinem funktioniert das hingegen nicht. Wer weiß was sich der Chinaproduzent dabei gedacht hat. Es steht auch nur "D1 mini" auf den Boards, weshalb meine Fehlersuche zu Beginn lange gedauert hat: in der Arduino IDE musste ich "LOLIN WEMOS D1 & R2 Mini" auswählen, um überhaupt Sketche hochladen zu können.
HotSystems:
Hast du denn im Sketch auch den D8 als CS angepasst?
Gewiss; den heutigen Tag das SD-Kartenmodul getauscht, Kabel getauscht, 100nF + 100uF ausprobiert, den Wemos getauscht... trotz Datenblatt keine Besserung. Sonst nichts weiter am Wemos angeschlossen. Mit dem Beispiel-Sketch "SD-Cardinfo" funktioniert es mit D4, nicht jedoch mit D8:
Initializing SD card...initialization failed. Things to check:
* is a card inserted?
* is your wiring correct?
* did you change the chipSelect pin to match your shield or module?
Soft WDT reset
>>>stack>>>
ctx: cont
sp: 3ffffde0 end: 3fffffc0 offset: 01b0
3fffff90: feefeffe feefeffe feefeffe 3ffee7f0
3fffffa0: 3fffdad0 00000000 3ffee7c0 40204da0
3fffffb0: feefeffe feefeffe 3ffe84f8 40100a0d
<<<stack<<<
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
ets Jan 8 2013,rst cause:4, boot mode:(1,6)
wdt reset
Ganz schlechte Idee die Fehlermeldung als Bild zu posten.
Das ist Text und geht als Code-Tags viel besser.
Bei dem Problem habe ich keine weitere Idee, als evtl. einen anderen Controller (NodeMcu oder zusätzlich einen Pro mini mit 3 Volt). Den kannst du über I2C ansteuern und weitere Dinge erledigen.
HotSystems:
Da kommt doch noch ein Gedanke.....was genau sollen die DHT machen ?
Bei nur Temperatur gehen auch DS18B20, da liegen alle auf einem Pin.
Ich wollte mit zwei Sensoren jeweils die Temperatur und Luftfeuchtigkeit auslesen, weshalb ein DS18B20 entfällt. Beide sind extern mit ein paar Metern Entfernung, weshalb ein BMP per I2C keine glückliche Lösung wäre.
Felipe2017:
Ich wollte mit zwei Sensoren jeweils die Temperatur und Luftfeuchtigkeit auslesen, weshalb ein DS18B20 entfällt. Beide sind extern mit ein paar Metern Entfernung, weshalb ein BMP per I2C keine glückliche Lösung wäre.
Ok, das die DHT Sensoren nicht so genau sind, wurde ja schon geschrieben.
Da würde ich mich dann doch für was besseres entscheiden.
Nur als Anregung:
Ich setze auch Sensoren weiter entfernt vom zentralen Arduino ein und habe zu den Sensoren eine 12 Volt Leitung gelegt. Die Daten werden dann per Funk vom Sensor inkl. Pro Mini an den zentralen Arduino geliefert.
Alternativ BMP-Sensoren über I2C mit Bus-Extender P82B715 anschließen.
Geht so auch über ca. 30m, aber nur mit Telefonkabel 2x2x0,6 (JY-(ST)Y.