einen Display anbinden wo ich die sollwerte sehen und einstellen kann außerdem sollen die istwerte auch zusehen sein. Welches Display eignet sich da am besten Touch und welches Board esp32 oder Arduino Uno?
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
Ob ein Arduino Uno noch genügend RAM für das Display hat
hängt gaaaanz entscheidend vom Typ des Displays ab.
Das bedeutet deine Frage ist eine XY-Frage. So lange das eine nicht beantwortet ist,
kann man das andere nicht beantworten.
Das andere wichtige Kriterium ist:
Wie gut kannst du programmieren?
Wenn du nur wenig programmieren kannst wie viel Zeit willst du ins Programmieren lernen investieren?
Und dann musst du noch deutlich genauer beschreiben WAS für Sollwerte / Istwerte du meinst.
Du musst angeben WIE du die Sollwerte einstellen willst.
Willst du die Sollwerte beim Buchändler am Telefon bestellen?
oder soll der Microcontroller deine Gedanken lesen?
Wenn du einen ESP32 nimmst dann kannst du auch ein Web-Interface programmieren, dass von jedem Browser-fähigen Gerät Handy, Tablet, Computer aus aufgerufen werden kann.
Habe geschrieben abwarten!
Hast das getestet?
ESP hat schlechte Analog Eingänge bleibe, vor erst an Mega.
Außer du willst unbedingt ein Größeres Display, Dan kann man mit ESP32 das machen, und zusatz Modul (ADS1115) für die Sensoren nehmen, der hat 4 sehr genaue Eingänge.
Das geht auch
Ich bleibe vor erst Stehen mit dem alles, habe keine Lust zeit verplempern.
Du hast ein Arduino Mega wen mich nicht irre oder?
Habe ein Uno hier der Code wie es bis jetzt läuft. Habe Nummer 4 raus genommen weil ich erst mal nur 3 brauche
int IN1 = 2;
int IN2 = 3;
int IN3 = 4;
int IN4 = 5;
#include <SPI.h>
#include "Ucglib.h"
Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 0, /*reset=*/ 8);
int Pin1 = A0; //模拟引脚A0连接传感器输入
int Pin2 = A1;
int Pin3 = A2;
float value1 = 0;
float value2 = 0;
float value3 = 0;
void setup() {
delay(100);
//ucg.begin(UCG_FONT_MODE_TRANSPARENT);
ucg.begin(UCG_FONT_MODE_SOLID);
ucg.clearScreen();
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(Pin1, INPUT);
pinMode(Pin2, INPUT);
pinMode(Pin3, INPUT);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
delay(500);
}
void loop()
{
//ucg.setRotate90();
ucg.setFont(ucg_font_ncenR24_tr);
ucg.setColor(255, 255, 255);
//ucg.setColor(0, 255, 0);
ucg.setColor(1, 255, 3);
ucg.setPrintPos(0,0);
ucg.print("Hello World!");
delay(500);
Serial.print("MOISTURE LEVEL:");
value1 = analogRead(Pin1);
Serial.println(value1);
/******************************/
ucg.setPrintPos(0,85); // Position X,Y am Display
ucg.print("Sensor Nr1");
ucg.setPrintPos(160,85);
ucg.print(value1,0);// die 1 bedeutet schreibe Wert mit einer Nachkommastelle
ucg.setPrintPos(0,120); // Position X,Y am Display
ucg.print("Sensor Nr2");
ucg.setPrintPos(160,120);
ucg.print(value2,0);// die 1 bedeutet schreibe Wert mit einer Nachkommastelle
/*********************************/
ucg.setPrintPos(0,155); // Position X,Y am Display
ucg.print("Sensor Nr3");
ucg.setPrintPos(160,160);
ucg.print(value3,0);// die 1 bedeutet schreibe Wert mit einer Nachkommastelle
/*********************************/
/*********************************/
if(value1>750)
{
digitalWrite(IN1, LOW);
}
else
{
digitalWrite(IN1, HIGH);
}
Serial.print("MOISTURE LEVEL:");
value2 = analogRead(Pin2);
Serial.println(value2);
if(value2>750)
{
digitalWrite(IN2, LOW);
}
else
{
digitalWrite(IN2, HIGH);
}
Serial.print("MOISTURE LEVEL:");
value3 = analogRead(Pin3);
Serial.println(value3);
if(value3>750)
{
digitalWrite(IN3, LOW);
}
else
{
digitalWrite(IN3, HIGH);
}
}


Habe mir die Sensoren angeschaut die arbeiten ab 3,3V also steht nichts im Wege ein ESP32 oder ESP8266 nehmen, und einen SPI Display, meine für dein älteren Projekt hast dir geholt ein anderen Display. ich kaufe Displays bei Ali als Beispiel.
dazu noch den ADS1115
Habe gerade mein Encoder angeklemmt finde für dein Vorhaben besser, geht schneller als tippen auf Display. Habe den KY-040.
Einer reicht
Die Feuchtesensoren passen sehr gut zu schlechten Analog-Eingängen.
12 bit ADC mit 18 Kanälen beim ESP32 ist erheblich mehr als der UNO aus dem Tutorial bietet.
Ein Display mit Touchscreen zum Preis eines alten Smartphones halte ich für eine Fehlentscheidung.
Leider ist das so, oder zeige mir wie ich ein Smartphonedisplay mit direkt mit ESP verbinde ohne ich das Smartphone mit WLAN, BT usw. verbinde, besser ein 10" vom Tablet
Mit den Analogeingängen + Feuchtesensoren hast Recht, sind so wie so nur Schätz Eisen
Da hast du natürlich recht, der Aufwand im Hintergrund ist schon groß. (Mindestens, wenn man es zum ersten Mal macht)
Aber ein UNO ist nicht dafür gedacht optimiert, ein vollgraphisches Display anzusteuern.
Daher mein Tip, einen ESP als Webserver einzurichten, wenn erforderlich mit eigenem AP. Dann kannst du dem bei dem bisschen Steuern, was er nebenbei macht, super komfotabel von jedem Tablet aus zusehen und eingreifen.
Ob BT mehr bringt oder einfacher ist, weiß ich nicht. Ich denke, da muss man auch was auf der Smartphone-Seite machen.
Zum UNO passt eher ein 16x2 Display. Wobei die Anwendung ja eigentlich dafür gedacht ist, wochenlang unbeachtet vor sich hin zu laufen. Falls die Feuchtefühler so lange leben. Wenn man wirklich was sehen oder ändern will, schließt man eben einen PC an und bemüht ein Terminalprogramm.
Deshalb will ja der TO auf ESP umsteigen. Persenlich mag ich nicht alles per Webseite machen, ist eben ein Gyros oder Döner weniger wen man ein TFT holt.
Wenn @tbraun1234 will das später über WLAN haben ist auch kein Problem.
Also habe das jetzt mal mit den Sensoren gemacht Trocken im Reis sind es 574 und im Wasserglas 274
Also umgekehrt
uint16_t wertSensor1=map (sensor1, 574,274,0,100); // Feuchtigkeit in %
Anpassen zu Deiner Schreibweise.
Du hast mich angesteckt mit den Sensoren, sind schon unterwegs, ich werde die Werte per Funk senden den die werden im Freiem genutzt. mall schauen wie ich das Oberteil mit der Elektronik für Außen dicht mache. Hat aber noch Zeit.
Die Erste Version ohne änderung der Werte
Habe das jetzt so ist scheibar falsch. #
uint16_t value1=map (value1, 574,274,0,100); // Feuchtigkeit in %
mach zB
uint16_t sensor1 = map (value1, 574,274,0,100);
Sehr gut