Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14
  1. #11
    Senior Mitglied
    Registriert seit
    20.12.2013
    Beiträge
    270
    Thanks (gegeben)
    141
    Thanks (bekommen)
    30
    Themenstarter
    Total Downloaded
    0
    Total Downloaded
    0
    ReceiverDanke
    Box 1:
    Amiko Viper 4K Combo
     
     
    I managed to display on the ESP32-2432s028 display the picons that are in the receiver.
    I also made a video (not listed on YouTube, only those who have the link can see it), where I filmed how the image of the icons on the receiver is displayed on the TFT screen of the microcontroller.
    More details described in Romanian here: ESP8266 sau ESP32 pot extrage date din WebIf-ul OpenATV ? - Satelit-Info.com
    I will come back with details.




    I would ask a moderator to change the title of this thread from

    "Wemos D1 mini OpenATV webinfo on 1602 i2c LCD display"

    to

    "Displaying data from the receiver on an external TFT screen".

    Thank you !

    •   Alt Advertising

       

  2. #12
    Avatar von Papi2000
    Registriert seit
    20.04.2013
    Beiträge
    24.930
    Thanks (gegeben)
    4699
    Thanks (bekommen)
    9129
    Total Downloaded
    596,61 MB
    Total Downloaded
    596,61 MB
    ReceiverDanke
    Box 1:
    GB Q4K-SC / UE4K-SC / UE4K-C
     
     
    Box 2:
    GigaBlue Q-SSC / Q+-SSC
     
     
    Box 3:
    DM900uhd-SS / Vu+Duo
     
     
    Box 4:
    ZGemma H7/H9 SF8008
     
     
    Box 5:
    diverse andere . . .
     
     
    Zitat Zitat von aspeorocopolus Beitrag anzeigen
    I managed to display on the ESP32-2432s028 display the picons that are in the receiver.
    I also made a video (not listed on YouTube, only those who have the link can see it), where I filmed how the image of the icons on the receiver is displayed on the TFT screen of the microcontroller.
    More details described in Romanian here: ESP8266 sau ESP32 pot extrage date din WebIf-ul OpenATV ? - Satelit-Info.com
    I will come back with details.




    I would ask a moderator to change the title of this thread from

    "Wemos D1 mini OpenATV webinfo on 1602 i2c LCD display"

    to

    "Displaying data from the receiver on an external TFT screen".

    Thank you !
    Title changed
    Grüßle
    Ralf
    ---------------------------------------------
    Gigablue Quad4K-mixed, UE4K, Trio4K, Quad_Plus-SSC, UE_Plus-SC, X2/X3-SC, UltraUE-SC, ...
    Astra 19.2E UniCable & KabelBW, oATV/teamBlue
    (u.a.: DM900uhd,Vu+Duo,ZGemma H9Twin & H7S), PC-DVB-S/C/T, Xtreamer, BDP5200, Philips 24PFS4022/12, 65OLED855/12,UE32C5700, RPi3+
    ---- Einen Receiver kann sich jeder kaufen - Eine stabile E²-Box muß man sich verdienen! ----



  3. Thanks aspeorocopolus bedankten sich
  4. #13
    Senior Mitglied
    Registriert seit
    20.12.2013
    Beiträge
    270
    Thanks (gegeben)
    141
    Thanks (bekommen)
    30
    Themenstarter
    Total Downloaded
    0
    Total Downloaded
    0
    ReceiverDanke
    Box 1:
    Amiko Viper 4K Combo
     
     
    Finally, I have the first results with the icons extracted from the receiver, and displayed on the ESP32-2432s028 display. The result at the moment looks like this:



    In the following days, I will come back with details about the code loaded on the microcontroller, and with all the necessary details that can help you make a faithful copy of this project. I will distribute the source code freely, so that everyone can modify or adapt it according to their preferences. The code is not finished, many improvements can be made, but this is already a functional and error-free version.

    A detailed description of the evolution of this project, and of the problems encountered, and the solution of these problems, you can read on a forum in Romanian.

    Cheers to DIY!

  5. Thanks Doctor Who, Joerg1909 bedankten sich
  6. #14
    Senior Mitglied
    Registriert seit
    20.12.2013
    Beiträge
    270
    Thanks (gegeben)
    141
    Thanks (bekommen)
    30
    Themenstarter
    Total Downloaded
    0
    Total Downloaded
    0
    ReceiverDanke
    Box 1:
    Amiko Viper 4K Combo
     
     

    Red face

    Details for making this small project:
    __________________________________________________ __________________________________________________ _________________________________

    How we extract data from a remote server, and display it on a TFT_eSPI screen.
    In this case, the server is an AmikoViper 4K satellite receiver running an OpenATV linux image, and the microcontroller with which we extract data is an ESP32-2432s028, which has a 2.8-inch display.
    There is no need for physical links between the Set Top Box and the ESP32-2432s028, as the microcontroller connects via the WIFI network and thus reads data from the satellite receiver.
    __________________________________________________ __________________________________________________ _________________________________

    You can follow the detailed evolution of this project, on this discussion forum in Romanian.

    __________________________________________________ __________________________________________________ _________________________________

    For display on the TFT display I used the TFT_eSPI library from here.
    __________________________________________________ __________________________________________________ _________________________________

    The settings for the TFT_eSPI library for the ESP32-2432s028 microcontroller are as follows:
    -- Replace the file:
    -- C:\Users\$USER$\Documents\Arduino\libraries\TFT_eS PI whit this User_setup.h file.

    Code:
    #define USER_SETUP_INFO "User_Setup"
    
    #define ILI9341_2_DRIVER     // Alternative ILI9341 driver, see https://github.com/Bodmer/TFT_eSPI/issues/1172
    
    #define TFT_SDA_READ      // This option is for ESP32 ONLY, tested with ST7789 and GC9A01 display only
    #define TFT_WIDTH  240 // ST7789 240 x 240 and 240 x 320
    #define TFT_HEIGHT 320 // ST7789 240 x 320
    
    #define TFT_BL   21            // LED back-light control pin
    #define TFT_BACKLIGHT_ON HIGH  // Level to turn ON back-light (HIGH or LOW)
    
    #define TFT_MISO 12
    #define TFT_MOSI 13
    #define TFT_SCLK 14
    #define TFT_CS   15  // Chip select control pin
    #define TFT_DC    2  // Data Command control pin
    #define TFT_RST   4  // Reset pin (could connect to RST pin)
    #define TFT_RST  -1  // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
    
    #define TOUCH_CS 33     // Chip select pin (T_CS) of touch screen
    
    #define LOAD_GLCD   // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
    #define LOAD_FONT2  // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
    #define LOAD_FONT4  // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
    #define LOAD_FONT6  // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
    #define LOAD_FONT7  // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
    #define LOAD_FONT8  // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
    //#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
    #define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
    
    #define SMOOTH_FONT
    #define SPI_FREQUENCY  40000000
    #define SPI_READ_FREQUENCY  20000000
    #define SPI_TOUCH_FREQUENCY  2500000
    #define USE_HSPI_PORT
    __________________________________________________ __________________________________________________ _________________________________

    The code that I loaded into the microcontroller, contains the examples from here. on the display part of the image (the icon in this case):
    __________________________________________________ __________________________________________________ _________________________________

    The code loaded in the microcontroller can be greatly improved! It's not a perfect code, but it's the first code that's functional, without any errors, at least I haven't noticed any errors affecting the operation so far.
    The code is open source and can be used and modified as you like.
    __________________________________________________ __________________________________________________ _________________________________

    The code loaded in the microcontroller includes 6 files:

    - 1. PiconXMLfromRemoteServer.ino
    Code:
    //
    // CODE: Levente Daradici
    // levente_daradici@yahoo.com
    // https://youtu.be/W6XjNbb6O5A
    // my YouTube channel: https://www.youtube.com/@LeventeDaradici/videos
    // my pastebins: https://pastebin.com/u/LeventeDaradici
    //
    // The complete code includes 6 files with the following names:
    //      PiconXMLfromRemoteServer.ino
    //      miniz.c -- from Bodmer's example -- https://github.com/Bodmer/PNG_TEST_ONLY/blob/master/png_test_url_spiffs_2x/miniz.c
    //      miniz.h -- from Bodmer's example -- https://github.com/Bodmer/PNG_TEST_ONLY/blob/master/png_test_url_spiffs_2x/miniz.h
    //      pngle.c -- from Bodmer's example -- https://github.com/Bodmer/PNG_TEST_ONLY/blob/master/png_test_url_spiffs_2x/pngle.c
    //      pngle.h -- from Bodmer's example -- https://github.com/Bodmer/PNG_TEST_ONLY/blob/master/png_test_url_spiffs_2x/pngle.h
    //      support_functions.h -- from Bodmer's example -- 
    //                              https://github.com/Bodmer/PNG_TEST_ONLY/blob/master/png_test_url_spiffs_2x/support_functions.h
    //
    
    #include <TFT_eSPI.h>
    TFT_eSPI tft = TFT_eSPI();
    #include <HTTPClient.h>
    #include <SPI.h>
    #include <WiFi.h>
    #include <WiFiClient.h>
    #include "NTPClient.h"
    #define USE_LINE_BUFFER
    #include "support_functions.h"
    
    WiFiClient client;
    const char* ssid = "YourWifiSSID";           //YOUR WIFI NETWORK SSID
    const char* password = "YourWifiPASSWORD";     //YOUR WIFI NETWORK PASSWORD
    
    const char* host = "192.168.x.xxx";       //YOUR SET TOP BOX IP
    const char* path = "/web/getcurrent";     //NAME OF THE FILE FROM WHICH WE EXTRACT THE DATA.
    const long utcOffsetInSeconds = 10800;
    
    String LinkCanalCurent, NumeCanalNouPrelucrat, NumeCanalVechi, NumeCanalNou, EPGacumVECHI, EPGacumNOU, EPGacumVECHI2, EPGacumNOU2, AfisareEPG, AfisareEPG2, AfisareDESC, AfisareDESC2,  AfisareEPGtotal,AfisareDescriereEPG,AfisareDescriereEPG2  = " ";
    int Conexiune, Pozitie, EPGacum, DescriereACUM, DescriereACUMepg = 0;
    
    String NumeCanalCurent ="Nume Canal Curent";
    String NumeEmisiuneCurenta ="Nume Emisiune Curenta";
    String EpgEmisiuneCurenta ="EPG Emisiune Curenta";
    String OraExacta ="22:26:35";
    String NumeProvider ="Digi Tv / RCS & RDS";
    String RezolutieCanal ="1920x1080";
    
    int PozitieX = 321;
    
    unsigned long startMillis;
    unsigned long currentMillis;
    const unsigned long period = 500;   
    
    WiFiUDP ntpUDP;
    NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
    
         void setup() 
              {
                Serial.begin(115200);
                delay(500);
                tft.init();
                tft.setRotation(3);
                tft.fillScreen(0);
                EPGacum = 1;
                DescriereACUM = 1;
                DescriereACUMepg = 1;
                WiFi.begin(ssid, password);
                Serial.print("Connecting to WiFi");
                while (WiFi.status() != WL_CONNECTED) 
                    {
                       Serial.print(".");
                       delay(500);
                    }
                Serial.println();      
                Serial.println("Connected to WiFi");
                delay(2000);  
                Conexiune == 1;
                timeClient.begin();
                startMillis = millis();
              }
    
         void loop() 
              {  
                timeClient.update();
                tft.setTextSize(1);
                tft.setTextColor(TFT_CYAN, TFT_BLACK);
                OraExacta = timeClient.getFormattedTime();
                Serial.println(OraExacta);
                tft.drawString(OraExacta, 247, 2, 2);
    
    
                WiFiClient client;
                if (!client.connect(host, 80)) 
                    {
                       Serial.println("NOT CONNECTED TO");
                       Serial.println("ENIGMA2 RECEIVER!");
                       Conexiune = 0;
                       return;
                    }  else 
                       if (Conexiune == 0)
                          {
                             Serial.println("CONNECTED TO");
                             Serial.println("ENIGMA2 RECEIVER");
                             delay(1);
                             Conexiune = 1;
                             NumeCanalVechi = " ";
                             EPGacumVECHI = " ";
                             EPGacum = 1;
                          }
                Serial.println("");
                String url = String(path);
    
                client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                       "Host: " + host + "\r\n" + 
                       "Connection: close\r\n\r\n");
    
                while(!client.available()) 
                    {
                      delay(1);
                    }
    
                String line;
                while (client.available()) 
                  {
                     line = client.readStringUntil('\n');
                     if (line.indexOf("e2servicename") >= 0) 
                        {
                           int startIndex = line.indexOf(">") + 1;
                           int endIndex = line.indexOf("<", startIndex);
                           String e2servicename = line.substring(startIndex, endIndex);
                           NumeCanalNou = e2servicename ;
                           if (NumeCanalVechi != NumeCanalNou)
                              {
                                   
                                   NumeCanalNouPrelucrat = NumeCanalNou;
                                   NumeCanalNouPrelucrat.toLowerCase(); 
                                   NumeCanalNouPrelucrat.replace(" ", "");
                                   LinkCanalCurent = "http://" + String(host) + "/picon/" + NumeCanalNouPrelucrat + ".png";
                                   tft.fillRect(0,0,232,134, TFT_BLUE);
                                   tft.fillRect(1,1,230,132,TFT_BLACK);
                                   setPngPosition(6, 1);
                                   const char* urlCanalCurent = LinkCanalCurent.c_str();
                                   load_png(urlCanalCurent); 
                                   tft.setTextSize(2);
                                   tft.setTextColor(TFT_RED, TFT_BLACK);
                                   tft.drawString(NumeCanalNou + "                       ", 5, 134, 2);
                                   tft.setTextSize(2);
                                   tft.setTextColor(TFT_BLUE, TFT_BLACK);
                                   //tft.drawString("ACUM", 150, 80, 2);
                                   //tft.drawString("EPG", 3, 144, 2);
                                   NumeCanalVechi = NumeCanalNou;
                                   PozitieX = 321;
                              }
                              Serial.println("Canal: " + e2servicename);
                        } else if (line.indexOf("e2providername") >= 0) 
                              {
                                   int startIndex = line.indexOf(">") + 1;
                                   int endIndex = line.indexOf("<", startIndex);
                                   String e2providername = line.substring(startIndex, endIndex);
                                   NumeProvider = e2providername;
                                   tft.setTextSize(1);
                                   tft.setTextColor(TFT_YELLOW, TFT_BLACK);                                                      
                                   tft.drawString(NumeProvider + + "                 ", 237, 100, 2);
                                   Serial.println("Provider: " + e2providername);
                              } 
                          else if (line.indexOf("e2servicevideosize") >= 0) 
                             {
                                  int startIndex = line.indexOf(">") + 1;
                                  int endIndex = line.indexOf("<", startIndex);
                                  String e2servicevideosize = line.substring(startIndex, endIndex);
                                  tft.setTextSize(1);
                                  tft.setTextColor(TFT_YELLOW, TFT_BLACK);                               
                                  tft.drawString(e2servicevideosize + "          ", 237, 116, 2);
                                  Serial.println("Rezolutie: " + e2servicevideosize);
                             } 
                          else if (line.indexOf("e2eventname") >= 0) 
                             {
                                  int startIndex = line.indexOf(">") + 1;
                                  int endIndex = line.indexOf("<", startIndex);
                                  String e2eventname = line.substring(startIndex, endIndex);
                                  if (EPGacum == 1) 
                                     {       
                                            AfisareEPG = e2eventname;
                                            tft.setTextSize(1);
                                            tft.setTextColor(TFT_GREEN, TFT_BLACK);
                                            tft.drawString(AfisareEPG + "                                                   ", 5, 167, 2);
                                     }
                                  if (EPGacum == 2) AfisareEPG2 = e2eventname;
                                  EPGacum = EPGacum + 1;
                                  if (EPGacum > 2) EPGacum = 1;       
                             } 
                          else if (line.indexOf("e2eventdescription") >= 0) 
                             { 
                                  
                                  
                                  int startIndex = line.indexOf(">") + 1;
                                  int endIndex = line.indexOf("<", startIndex);
                                  String e2eventdescription = line.substring(startIndex, endIndex);
                                  if (DescriereACUM > 4) DescriereACUM = 1;
                                  if (DescriereACUM == 1) AfisareDESC = e2eventdescription;
                                  if (DescriereACUM == 2) AfisareDescriereEPG = e2eventdescription;
                                  if (DescriereACUM == 3) AfisareDESC2 = e2eventdescription;
                                  if (DescriereACUM == 4) AfisareDescriereEPG2 = e2eventdescription;    
                                  tft.setTextSize(1);
                                  tft.setTextColor(TFT_YELLOW, TFT_BLACK);
                                  tft.drawString(AfisareDESC.substring(0, 45) + "                                                                     ", 5, 184, 2);
                                  tft.drawString(AfisareDESC.substring(45,90) + "                                                                     ", 5, 200, 2);
                                  tft.drawString(AfisareDESC.substring(90,135) + "                                                                     ", 5, 216, 2);
                                  tft.setTextColor(TFT_GREEN, TFT_BLACK);
                                  //tft.drawString(AfisareDescriereEPG+ "                                                                     ", PozitieX, 216, 2);
                                // tft.drawString(AfisareDescriereEPG.substring(48, 98) + "                                                                     ", 0, 192, 2);  
                                // tft.drawString(AfisareDescriereEPG.substring(98, 148) + "                                                                     ", 0, 208, 2);          
                                // tft.drawString(AfisareDescriereEPG.substring(148, 198) + "                                                                     ", 0, 224, 2);                          
                                 DescriereACUM = DescriereACUM + 1;
                             }
                 }
               
                 client.stop();
                 delay(500);
              }
    - 2. miniz.c
    - 3. miniz.h
    - 4. pngle.c
    - 5. pngle.h
    - 6. support_functions.h

    __________________________________________________ __________________________________________________ _________________________________

    I bought the ESP32-2432s028 microcontroller used in this project here.
    __________________________________________________ __________________________________________________ _________________________________


    #ESP32 #esp32project #xml #xmlpreset #xml_file #xmlfile #tft #tft_eSPI #ESP32-2432s028 #OpenATV #enigma2 #display #AmikoViper4K


Seite 2 von 2 ErsteErste 12

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 5,56%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com