kleines preiswertes Infoterminal auf Basis ESP

Hier, bzw zB bei RS gibt es ein kleines Infoterminal für wenig Knete mit integriertem ESP8266.
Ich habe es mal per UDP an IPsymcon angebunden, guggst Du auch hier.
[video=youtube_share;6Q9Bx-43urU]https://youtu.be/6Q9Bx-43urU[/video]
Gruß Helmut

Das würde mich interessieren, was es kostet und wie man es programmiert?

Danke schonmal

Was es kostet ist schnell herausgefunden:D

Google -> „iod-09th“

Je nach Standort -irgendwas um die 30€-

vielleicht ist das ja schon beim „Chinesen“ angekommen…

Display kaufen ist rel. preiswert, TME bietet es für knapp 18 Teuronen + Moms und Versand an.

Die Software/Lib mit Beispielen ist als Zip in Ardunio zu includen.

Dann habe ich die Space Invader Daten gelöscht und die Geschichte mit UDP genutzt um Texte bzw Daten ans Display zu schicken.

Kann über einen ser. Adapter: (5Volt technisch) über die Boardeinstellung: 4DSystems… programmiert werden, man muß nichts anderes kaufen.

Was immer so nervt, dass es die Sonderzeichen im Font nicht gibt. Hier mein ino und PHP, bitte um Nachsicht, da sind noch Leichen drin, ist nur ein Hobby.

Gruß Helmut


#include "ESP8266WiFi.h"
#include "GFX4dIoD9.h"
#include <WiFiUdp.h>

const char* ssid = "xx";
const char* password = "xyz";

GFX4dIoD9 gfx = GFX4dIoD9();

unsigned int localPort = 2390;      // local port to listen on
char packetBuffer[255]; //buffer to hold incoming packet
char  ReplyBuffer[] = "acknowledged";       // a string to send back
WiFiUDP Udp;

byte type;
byte type1;
byte type2;
byte typec;
boolean Wconnected = false;
int x;
int y;
int r;
uint16_t c;
int rot;
uint16_t n;


void setup() {
  Serial.begin(38400);
  gfx.begin();
  gfx.Cls();
  gfx.ScrollEnable(true);
  gfx.Orientation(LANDSCAPE);
  gfx.SmoothScrollSpeed(5);
  gfx.TextColor(WHITE); gfx.Font(2);  gfx.TextSize(1);
  gfx.TextWindow(0, 0, 162, 90, ORANGE, BLACK);
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
 Serial.println("
Starting connection to server...");
  // if you get a connection, report back via serial:
  Udp.begin(localPort);

  gfx.TWprintln("Setup done");
  for (int x = 0; x < 1; x ++) {
    String tab;
    String ssidtemp;
    int len;
    gfx.TWcolor(ORANGE);
    gfx.TWprintln("Scanning ...");
    int n = WiFi.scanNetworks();
    gfx.TWcolor(GREEN);
    gfx.TWprintln("Finished Scan");
    if (n == 0) {
      gfx.TWcolor(RED);
      gfx.TWprintln("no networks found");
    } else {
      gfx.TWcolor(GREEN);
      gfx.TWprint(String(n));
      gfx.TWprintln(" Networks found");
      for (int i = 0; i < n; ++i)
      {
        gfx.TWcolor(ORANGE);
        gfx.TWprint(String(i + 1));
        gfx.TWcolor(WHITE);
        gfx.TWprint(": ");
        gfx.TWcolor(YELLOW);
        ssidtemp = String(WiFi.SSID(i));
        len = ssidtemp.length();
        String tempssid = "";
        for (int n = 0; n < (10); n++) {
          if (n <= len) {
            tempssid = tempssid + ssidtemp.charAt(n);
          } else {
            tempssid = tempssid + " ";
          }
        }
        gfx.TWprint(tempssid);
        //gfx.TWprint(WiFi.SSID(i));

        if (WiFi.RSSI(i) < 0) {
          gfx.TWcolor(LIGHTGREEN);
        }
        if (WiFi.RSSI(i) < -50) {
          gfx.TWcolor(ORANGE);
        }
        if (WiFi.RSSI(i) < -80) {
          gfx.TWcolor(RED);
        }
        gfx.TWprint(String(WiFi.RSSI(i)));
        gfx.TWprintln("");
      }
    }


    delay(500);
  }
   gfx.TWcolor(LIME);
   gfx.TWprintln("connecting to ");
   Serial.println("Connected to wifi");
   gfx.TWprintln(ssid);
    gfx.TWcolor(SALMON);
    WiFi.begin(ssid, password);
  int retries = 0;
  while ((WiFi.status() != WL_CONNECTED) && (retries < 22)) {
  retries++;
  delay(1000);
  gfx.TWprintln("Connecting");
  
  }
  gfx.TWprintln(" ");
  if(WiFi.status() == WL_CONNECTED){
  Wconnected = true;
   gfx.TWcolor(LIME);
  gfx.TWprintln("WiFi connected");

  gfx.TWprintln("IP address: ");
  String ip;
  ip = ipToString(WiFi.localIP());
  gfx.TWprintln(ip);
  } else {
  Wconnected = false;
   gfx.TWcolor(RED);
  gfx.TWprintln("Connection Fail.");
  }  
 if(Wconnected){
    delay(1000);
    gfx.TWcolor(YELLOW);
    gfx.TWprintln("Connecting to.");
    gfx.TWcolor(RED);
    gfx.TWprint("4D ");
    gfx.TWcolor(WHITE);
    gfx.TWprintln("Systems");

    gfx.MoveTo(0,0);

    gfx.Cls();
    }
    gfx.Open4dGFX("iod9");
    gfx.TWcolor(WHITE);
    gfx.Cls();      
 gfx.TextWindowRestore(); 
    delay(1000);
   gfx.begin(); 
   gfx.MoveTo(1,1);
    gfx.Cls(); 
      Serial.print("geht los "); 
}

 

void loop() {

  int packetSize = Udp.parsePacket();
  if (packetSize) {

   IPAddress remoteIp = Udp.remoteIP();

    int len = Udp.read(packetBuffer, 255);

    if (len > 0) {
      packetBuffer[len] = 0;
    }

gfx.Cls();    

gfx.println(packetBuffer);   

  }

gfx.TWcolor(WHITE);
  delay(2000);
  yield();
 n=0;
  y=0;
   }
String ipToString(IPAddress ip){
  String s="";
  for (int i=0; i<4; i++)
  s += i  ? "." + String(ip[i]) : String(ip[i]);
  return s;
}

UDP Instance mit dem gültigen Port erstellen, logisch :wink:


<?
$Leistung=round(GetValueFloat(xxxxx));
$timestamp = time()+200;
//echo $timestamp;
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
 $Ergebniss=USCK_SendText(xxxxx, "Es ist ".$uhrzeit." Uhr  am ".$datum."    akt. Verbrauch:    ".$Leistung." Watt");
 //echo " .",$datum," - ",$uhrzeit," Uhr";
?>

Hi Helmut,

mal wieder was neues von Dir, sieht schnuckelich aus.
Bin auch gerade mal wieder an einem Raumdisplay für den nächsten Raum in Betrieb zu nehmen, und sende auch Verbrauchs und Ertragsdaten dort hin. Bei über 2000W ist bei mir entweder die Frau am Kochen oder das Auto am trinken. Was war’s denn bei Dir?

Jan

Hallo Jan,
ich glaube, das war 'ne Bratwurst mit 2000Watt Herdplatte :wink:

Aber das Display hatte mir auch angezeigt, bei einem Starkregen hier, dass 'ne Pumpe angesprungen war, ist schon informativ .

Warte gerade eine Bestellung einer Platine für Taster für Tradfri Leuchten mit 55er Schalterprogramm ab. EIN/AUS/Dimmen+/-
Finde es total blöd, dass das Schwedenhaus nichts für ein Schalterprogramm hat.

Das Gleiche mit AskSin++ Soft für Homematic, wobei beide so’n HiLink Trafo 3,3Volt bekommen um es in der Schalterdose zu versorgen.
Just for Fun, könnt ja auch Sudoko machen…aber wer will das.
Gruß Helmut
Edit: Tradfri Proto Platine ist da,guggst Du

Bin auch schon paar mal losgerannt um zu sehen „ääh, was verbraucht denn da gerade so viel“.