Projekt nie je dostupný zdarma na stiahnutie! Pri záujme o kúpu softvérovej časti projektu s funkčnosťou, ktorá je na danej stránke rozpísaná kontaktovať na adrese: martinius96@gmail.com
Arduino ESP8266 ESP32 Minv Ethernet WiFi Web scraper Parser ŠPZ, EVČ, VIN HTTP POST

Overenie vozidla - ŠPZ / VIN číslom


Projekt fanúšika projektu HAKA-Hľadá sa auto krádeže automobilov
  • Overenie vozidla prostredníctvom stránky Ministerstva vnútra Slovenskej republiky s využitím mikrokontroléru.
  • Vozidlo je možné overiť na základe parametrov:
  • ŠPZ (Evidenčné číslo vozidla)
  • VIN (Identifikačné číslo vozidla)

  • Podľa zvoleného parametra overenia je následne hľadaná informácia odoslaná na stránku Ministerstva vnútra Slovenskej republiky.
  • Stránka obsahuje databázu nahlásených kradnutých vozidiel po ktorých je vyhlásené pátranie.
  • Informácia (ŠPZ/VIN) je odoslaná HTTP POST požiadavkou. Server odpovie zdrojovým kódom (HTML) celej stránky.
  • Arduino / ESP vývojová doska spracuje zdrojový kód celej stránky a na základe jeho obsahu overí, či je vozidlo v pátraní.
  • Mikrokontóler v zdrojovom kóde hľadá informáciu o počte vyhľadaných záznamov pre dané VIN číslo / ŠPZ - parsuje jednotlivé riadky zdrojového kódu.
  • V prípade, že ich je 0, vozidlo nie je v pátraní. Ak je záznam 1, alebo viac, vozidlo je v hľadaní.
  • Verzia zdarma obsahuje iba výpis o hľadanom vozidle s informáciou, či je, alebo nie je v pátraní. Metóda vstupu - ŠPZ/VIN priamo v zdrojovom kóde.
  • Platená verzia obsahuje okrem výpisu, či je, alebo nie je v pátraní aj ďalšie informácie o značke vozidla, modeli, (VIN čísle / ŠPZ - opačná informácia ako hľadaný parameter), farbe vozidla, dátumu odcudzenia. Metóda vstupu - UART/RS232, I2C, SPI, WiFi webserver, tlačidlá + displej.
  • Ďalšie využitie softvéru - príklady použitia:

  • OpenCV - rozpoznanie ŠPZ v reálnom čase s následným overením. Ovládanie kúrenie hlasom v slovenčine
  • Rozpoznanie ŠPZ v reálnom čase vlastnou implementáciou 1-bitového obrazu na platforme ESP32 / ESP8266 s kamerovým modulom OV7670, OV2640.
  • Interakcia so externým systémom s funkciou odfotenia a konverzie ŠPZ na znaky, napr: EČV Dahua. Odfotené ŠPZ po vjazde vozidla do parkoviska môže byť komunikačným rozhraním WiFi / UART / RS232 / I2C / SPI preposlaná do mikrokontroléru. Mikrokontróler overí ŠPZ a na základe odpovede z webservera môže vozidlo na parkovisku zablokovať, privolať políciu, ohlásiť informáciu nadradenému systému.
  • Výstup programu - Verzia zdarma

    Vozidlo v pátraní - Arduino + Ethernet - HAKA

    Výstup programu - Platená verzia

    Vozidlo v pátraní - platená verzia - Arduino + Ethernet - HAKA

    Metódy vstupu ŠPZ:

  • WiFi / Ethernet
  • UART / RS232
  • SPI / I2C
  • Tlačidlá s displejom
  • Podporované mikrokontroléry

  • Arduino + Ethernet shield Wiznet W5100 / W5500
  • ESP8266 (NodeMCU, Wemos D1 Mini)
  • ESP32 (Devkit)
  • Zdrojové kódy verzie zdarma - obsahujú iba overenie ŠPZ:


    Arduino + Ethernet W5100


    /*|----------------------------------------------------------|*/
    /*|OVERENIE ŠPZ - Arduino + Ethernet W5100                   |*/
    /*|Author: Bc. MARTIN CHLEBOVEC                              |*/
    /*|EMAIL: martinius96@gmail.com                              |*/
    /*|DONATE: https://paypal.me/chlebovec                       |*/
    /*|----------------------------------------------------------|*/
    #include <SPI.h>
    #include <Ethernet.h>
    
    byte mac[] = { 0xAA, 0xBB, 0xCC, 0xAA, 0xBB, 0xCC };
    IPAddress ip(192, 168, 1, 200);
    IPAddress gateway(192, 168, 1, 1);
    char serverName[] = "www.minv.sk"; //doména Ministerstva vnútra SR
    String my_datas = "BAXXXZZ"; //Hľadané EČV --> Možno hľadať aj C značky
    int serverPort = 80;
    EthernetClient client;
    String url = "/?odcudzene-mot-vozidla";
    void setup() {
      Serial.begin(115200);
      Ethernet.begin(mac);
      Serial.println("IP adresa Ethernet shieldu:");
      Serial.println(Ethernet.localIP());
      delay(2000);
      Serial.println("Ready");
      send_datas();
    }
    
    void send_datas() {
      String data = "ec=" + my_datas;
      if (client.connect(serverName, serverPort)) {
        client.println("POST " + url + " HTTP/1.0");
        client.println("Host: " + (String)serverName);
        client.println("User-Agent: ArduinoEthernetWiznet");
        client.println("Connection: close");
        client.println("Content-Type: application/x-www-form-urlencoded;");
        client.print("Content-Length: ");
        client.println(data.length());
        client.println();
        client.println(data);
        while (client.connected()) {
          String line = client.readStringUntil('\n');
          if (line.indexOf("Podmienke vyhovuje: 1 záznam") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " je vyhlásené pátranie! Kontaktujte políciu na čísle 158!");
            break;
          }
          if (line.indexOf("Podmienke vyhovuje: 0 záznamov") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " nie je vyhlásené pátranie");
            break;
          }
        }
    
      } else {
        Serial.println("Problem s pripojenim na stránku Ministerstva vnútra Slovenskej republiky!");
      }
      client.stop();
    }
    
    void loop() {
    
    }
    

    ESP8266 (NodeMCU, Wemos D1 Mini)


    /*|----------------------------------------------------------|*/
    /*|OVERENIE ŠPZ - ESP8266 (NodeMCU)                          |*/
    /*|Author: Bc. MARTIN CHLEBOVEC                              |*/
    /*|EMAIL: martinius96@gmail.com                              |*/
    /*|DONATE: https://paypal.me/chlebovec                       |*/
    /*|----------------------------------------------------------|*/
    #include <ESP8266WiFi.h>
    
    const char * ssid = "WIFI_MENO";
    const char * password = "WIFI_HESLO";
    
    const char* host = "www.minv.sk";
    String my_datas = "BAXXXZZ"; //Hľadané EČV --> Možno hľadať aj C značky
    const int serverPort = 80; //http port
    WiFiClient client;
    String url = "/?odcudzene-mot-vozidla";
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi uspesne pripojene");
      Serial.println("IP adresa: ");
      Serial.println(WiFi.localIP());
      delay(2000);
      Serial.println("Ready");
      send_datas();
    }
    void send_datas() {
      String data = "ec=" + my_datas;
      if (client.connect(host, serverPort)) {
        client.println("POST " + url + " HTTP/1.0");
        client.println("Host: " + (String)host);
        client.println("User-Agent: ESP32");
        client.println("Connection: close");
        client.println("Content-Type: application/x-www-form-urlencoded;");
        client.print("Content-Length: ");
        client.println(data.length());
        client.println();
        client.println(data);
        while (client.connected()) {
          String line = client.readStringUntil('\n');
          if (line.indexOf("Podmienke vyhovuje: 1 záznam") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " je vyhlásené pátranie! Kontaktujte políciu na čísle 158!");
            break;
          }
          if (line.indexOf("Podmienke vyhovuje: 0 záznamov") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " nie je vyhlásené pátranie");
            break;
          }
        }
    
      } else {
        Serial.println("Problem s pripojenim na stránku Ministerstva vnútra Slovenskej republiky!");
      }
      client.stop();
    }
    void loop() {
    
    }
    

    ESP32 (Devkit)


    /*|----------------------------------------------------------|*/
    /*|OVERENIE ŠPZ - ESP32 (Devkit)                             |*/
    /*|Author: Bc. MARTIN CHLEBOVEC                              |*/
    /*|EMAIL: martinius96@gmail.com                              |*/
    /*|DONATE: https://paypal.me/chlebovec                       |*/
    /*|----------------------------------------------------------|*/
    #include <WiFi.h>
    
    const char * ssid = "WIFI_MENO";
    const char * password = "WIFI_HESLO";
    
    const char* host = "www.minv.sk";
    String my_datas = "BAXXXZZ"; //Hľadané EČV --> Možno hľadať aj C značky
    const int serverPort = 80; //http port
    WiFiClient client;
    String url = "/?odcudzene-mot-vozidla";
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi uspesne pripojene");
      Serial.println("IP adresa: ");
      Serial.println(WiFi.localIP());
      delay(2000);
      Serial.println("Ready");
      send_datas();
    }
    void send_datas() {
      String data = "ec=" + my_datas;
      if (client.connect(host, serverPort)) {
        client.println("POST " + url + " HTTP/1.0");
        client.println("Host: " + (String)host);
        client.println("User-Agent: ESP32");
        client.println("Connection: close");
        client.println("Content-Type: application/x-www-form-urlencoded;");
        client.print("Content-Length: ");
        client.println(data.length());
        client.println();
        client.println(data);
        while (client.connected()) {
          String line = client.readStringUntil('\n');
          if (line.indexOf("Podmienke vyhovuje: 1 záznam") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " je vyhlásené pátranie! Kontaktujte políciu na čísle 158!");
            break;
          }
          if (line.indexOf("Podmienke vyhovuje: 0 záznamov") > 0) {
            Serial.println("Po vozidle s EČV " + my_datas + " nie je vyhlásené pátranie");
            break;
          }
        }
    
      } else {
        Serial.println("Problem s pripojenim na stránku Ministerstva vnútra Slovenskej republiky!");
      }
      client.stop();
    }
    void loop() {
    
    }