Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Automatisiertes Benachrichtigungssystem für TV-Serien & Anime-Veröffentlichungstermine

Komponenten und Materialien

Werkzeuge

Software & Dienste

Projektbeschreibung

Ziel: Ein eigenständiges Gerät, das benachrichtigt, wenn eine neue Folge einer favorisierten Serie/Anime erscheint – inklusive Titelsong. Komplett selbstgebaut: Hardware, Web-App, Firmware.

Architektur

  1. Web-App (PHP/LAMP auf Raspberry Pi): Nutzt TVMAZE REST API (Endpoint /shows/:id/episodesbydate?date=YYYY-MM-DD). Speichert Serien (Name, TV-ID, Status) in MariaDB.
  2. Arduino Nano 33 IoT: Fragt zyklisch query.php ab. Bei neuer Folge: Anzeige auf Nokia 5110, Abspielen des Openings via MP3-Player, RGB-LED in Serienfarbe.
  3. Benutzeroberfläche: Menü auf Nokia 5110 mit 4 Tastern (Links, Rechts, OK, Exit). Modi: Init Tracker, MP3 Player, Sleep.

Besonderheiten

Schritt-für-Schritt

1. PCB-Design & Bestückung (KiCad)

Gerber-Dateien im Download. Bestückung: Headers, Taster, Widerstände, Power-Jack, RGB-LED, Steckplätze für Nano 33 IoT, MP3-Player, Nokia 5110, optional DS3231.

2. LAMP-Server auf Raspberry Pi (MariaDB)

sudo apt-get update && sudo apt-get install apache2 php mariadb-server php-mysql php-curl -y
sudo mysql_secure_installation
# Root-Passwort: "bot", anonyme User entfernen, Test-DB löschen, etc.
sudo mysql -uroot -p
CREATE DATABASE tvseries;
GRANT ALL PRIVILEGES ON tvseries.* TO 'root'@'localhost' IDENTIFIED BY 'bot';
FLUSH PRIVILEGES;
EXIT;
sudo service apache2 restart

3. TVMAZE API nutzen

Serien suchen, TV-ID notieren (z. B. One Piece: 1505). Endpoint: https://api.tvmaze.com/shows/1505/episodesbydate?date=2024-01-15. Liefert Array mit Folgeninfos oder 404.

4. Web-App installieren (TV-Series-Anime-Episode-Tracker)

5. Arduino Nano 33 IoT einrichten

6. MP3-Player UART-Befehle (OPEN-SMART)

// Beispiele (alle Befehle: 7E xx ... EF)
static int8_t select_SD_card[]   = {0x7E,0x03,0x35,0x01,0xEF};
static int8_t play_song_1[]      = {0x7E,0x04,0x41,0x00,0x01,0xEF};
static int8_t play_song_2[]      = {0x7E,0x04,0x41,0x00,0x02,0xEF};
// ... play_song_3..5, play, pause, next, previous

SD-Karte: FAT16/32, Ordner 01, Dateien 001One Piece-Opening.mp3 etc.

7. Firmware-Highlights

Anschlüsse (Arduino Nano 33 IoT)

Nokia 5110:  D2=SCK, D3=MOSI, D4=DC, D5=RST, D6=CS
RGB-LED:     D9=R, D10=G, D11=B (Anode → 3,3V, PWM invertiert)
Taster:      A0=Left, A1=OK, A2=Right, A3=Exit
DS3231 (opt): A4=SDA, A5=SCL
MP3 Player:  Serial1 (RX0/TX1)

Modi & Funktionen im Detail

A. Init Tracker

  1. Verbindung zum Pi-Server → „Connected to the server!!!“ oder „Connection Error!!!“
  2. Neue Folge erkannt → Anzeige: One Piece, 10x54, Luffy's Determination, Opening spielt, LED Rot.
  3. Keine neue Folge → „No Released Episode Detected :("
  4. TV-Icon während Wartezeit (10 s bis nächster Request).

B. MP3 Player

C. Sleep

Code

Series_Release_Date_Notifier.ino (Arduino)

// Vollständiger Sketch – siehe Original für kompletten Code.
// Kernfunktionen: setup() – WiFi, Display, MP3-Init; loop() – Menü, Modi-Handling;
// read_buttons(), change_menu_options(), interface();
// send_command_to_MP3_player(cmd, len) – UART über Serial1;
// adjustColor(r,g,b) – invertiert für Common Anode.
// HTTP-GET in Init Tracker, Response-Parsing mit indexOf('%'), substring().

index.php (Tabelle anlegen)

<?php
$conn = mysqli_connect("localhost","root","bot","tvseries");
function checkDatabase($t,$c){ return mysqli_num_rows(mysqli_query($c,"SHOW TABLES FROM `tvseries` LIKE '$t'"))>0; }
function createTable($t,$c){
  if(!checkDatabase($t,$c)){
    mysqli_query($c,"CREATE TABLE `$t`(id INT AUTO_INCREMENT PRIMARY KEY, series_name VARCHAR(255), tv_id VARCHAR(255), status VARCHAR(255))");
    echo "Database Table Created!";
  }else echo "Database Table Found!";
}
createTable("series",$conn);
?>

query.php (Prüfung & Ausgabe)

<?php
error_reporting(0);
class query{
  const ROOT="https://api.tvmaze.com/shows/";
  const PATH="/episodesbydate?date=";
  public $conn,$table;
  function define_user($c,$t){ $this->conn=$c; $this->table=$t; }
  function check_ep_release_date($id,$name,$status){
    $url=self::ROOT.$id.self::PATH.date("Y-m-d");
    if($ep=json_decode(@file_get_contents($url))){
      if($status!="Released"){
        echo "%$name%".$ep[0]->season."%".$ep[0]->number."%".$ep[0]->name."%";
        mysqli_query($this->conn,"UPDATE `$this->table` SET status='Released' WHERE series_name='$name'");
      }
    }elseif($status!="Pending"){
      mysqli_query($this->conn,"UPDATE `$this->table` SET status='Pending' WHERE series_name='$name'");
    }
  }
  function track_db_entries(){
    $res=mysqli_query($this->conn,"SELECT * FROM `$this->table` ORDER BY id DESC");
    if(mysqli_num_rows($res)>0) while($r=mysqli_fetch_assoc($res)) $this->check_ep_release_date($r['tv_id'],$r['series_name'],$r['status']);
    else echo "No Entry Found!";
  }
}
$conn=mysqli_connect("localhost","root","bot","tvseries");
$q=new query(); $q->define_user($conn,"series"); $q->track_db_entries();
?>

Downloads

Schaltpläne (KiCad)

Automatisiertes Benachrichtigungssystem für TV-Serien & Anime-Veröffentlichungstermine Automatisiertes Benachrichtigungssystem für TV-Serien & Anime-Veröffentlichungstermine Automatisiertes Benachrichtigungssystem für TV-Serien & Anime-Veröffentlichungstermine Automatisiertes Benachrichtigungssystem für TV-Serien & Anime-Veröffentlichungstermine

Fazit

Gerät am Bücherregal befestigt (Heißkleber) – funktioniert hervorragend. Benachrichtigt zuverlässig bei neuen Folgen mit Opening-Song und Farbcode.

Herstellungsprozess

  1. Professionelle Raspberry Pi Universalfernbedienung mit LIRC bauen
  2. RF zu DC mit Raspberry Pi wandeln: Hüllkurvendetektor bauen & troubleshooten
  3. Cycle Chaser: Fahrrad zur nächtlichen Lichtshow mit Raspberry Pi verwandeln
  4. Raspberry Pi Diebstahlmelder bauen – Schritt-für-Schritt-Anleitung
  5. Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
  6. Raspberry Pi Home Automation System für Fernsteuerung bauen
  7. Raspberry Pi 3 B+ – Aktualisierte Features, Specs & Kaufberatung
  8. DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
  9. RasPiRobot Board V2: Raspberry Pi zum leistungsstarken Roboter-Controller erweitern
  10. Windows IoT Core Rover mit Raspberry Pi 2 bauen – Anfänger bis Fortgeschritten