DFPlayer Mini MP3

Introduction

L’objectif de cet article et d’intégrer le module DFPlayer Mini MP3 avec ESPHome et Home Assistant. ESPHome nous permet de connecter des composants électroniques (potentiellement des dispositifs Zigbee non existants) à Home Assistant.

Le module DFPlayer Mini MP3 est un petit module MP3 à faible coût qui peut être directement connecté à un haut-parleur. Ce module peut être utilisé dans tout environnement qui prend en charge l’interaction vocale ou les invites vocales.

ESPHome est un projet open source fondé par Nabu Casa (https://www.nabucasa.com/).

Pour plus de détails, visitez : https://esphome.io/guides/faq.html

DFPlayer

Le DFPlayer Mini MP3 est un module audio compact et économique qui peut être utilisé pour la lecture de fichiers audio MP3, WAV et WMA1. Le module peut lire des fichiers à partir d’une carte micro SD, d’un disque U-disk ou via une interface UART1.

Grâce à sa petite taille et à sa faible consommation d’énergie, le DFPlayer est idéal pour une utilisation dans des projets de domotique, des jouets ou des systèmes embarqués1.

Le DFPlayer dispose également de plusieurs interfaces d’entrée et de sortie qui peuvent être utilisées pour le contrôle externe, l’ajout d’effets sonores ou la connexion à un amplificateur ou à un haut-parleur1.

Caractéristiques techniques

Installation

Les composants nécessaire sont :

1. Câblage

Le câblage est assez simple. Connectez le module DFPlayer Mini MP3 à un microcontrôleur compatible avec ESPHome, comme un ESP01. Vous devrez connecter les broches TX et RX du module aux broches correspondantes du microcontrôleur.

2. Le code

Ensuite, nous écrivons notre code. Dans notre exemple, nous souhaitons lire des fichiers audio à l’aide du module DFPlayer Mini MP3 depuis Home assistant. Nous nous inspirons des codes d’exemple fournis par la communauté et cela nous donne :

esphome:
  name: mp3
  friendly_name: mp3

esp8266:
  board: esp01

logger:

uart:
  tx_pin: GPIO2
  rx_pin: GPIO4
  baud_rate: 9600

dfplayer:
  on_finished_playback:
    then:
      logger.log: 'Playback finished event'

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

captive_portal:
api:
  services:
  - service: dfplayer_next
    then:
      - dfplayer.play_next:
  - service: dfplayer_previous
    then:
      - dfplayer.play_previous:
  - service: dfplayer_play
    variables:
      file: int
    then:
      - dfplayer.play: !lambda 'return file;'
  - service: dfplayer_play_loop
    variables:
      file: int
      loop_: bool
    then:
      - dfplayer.play:
          file: !lambda 'return file;'
          loop: !lambda 'return loop_;'
  - service: dfplayer_play_folder
    variables:
      folder: int
      file: int
    then:
      - dfplayer.play_folder:
          folder: !lambda 'return folder;'
          file: !lambda 'return file;'

  - service: dfplayer_play_loop_folder
    variables:
      folder: int
    then:
      - dfplayer.play_folder:
          folder: !lambda 'return folder;'
          loop: true

  - service: dfplayer_set_device_tf
    then:
      - dfplayer.set_device: TF_CARD

  - service: dfplayer_set_device_usb
    then:
      - dfplayer.set_device: USB

  - service: dfplayer_set_volume
    variables:
      volume: int
    then:
      - dfplayer.set_volume: !lambda 'return volume;'
  - service: dfplayer_set_eq
    variables:
      preset: int
    then:
      - dfplayer.set_eq: !lambda 'return static_cast<dfplayer::EqPreset>(preset);'

  - service: dfplayer_sleep
    then:
      - dfplayer.sleep

  - service: dfplayer_reset
    then:
      - dfplayer.reset

  - service: dfplayer_start
    then:
      - dfplayer.start

  - service: dfplayer_pause
    then:
      - dfplayer.pause

  - service: dfplayer_stop
    then:
      - dfplayer.stop

  - service: dfplayer_random
    then:
      - dfplayer.random

  - service: dfplayer_volume_up
    then:
      - dfplayer.volume_up

  - service: dfplayer_volume_down
    then:
      - dfplayer.volume_down

3. Téléversement du code

Après avoir écrit notre code, nous devons le téléverser sur notre microcontrôleur ESP01. Pour cela, nous avons besoin d’un outil de téléversement comme ESPHome-Flasher. Vous pouvez télécharger ESPHome-Flasher à partir de ce lien : https://github.com/esphome/esphome-flasher/releases

Si ce n’est pas déjà fait, il faut également installer le bon pilote pour notre ESP01. Vous pouvez le trouver ici :

CP2102 (puce carrée) –> https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers CH341: –> https://github.com/nodemcu/nodemcu-devkit/tree/master/Drivers

Plus d’information ici : https://esphome.io/guides/faq.html

4. Ajout des samples MP3

Pour utiliser le module DFPlayer Mini MP3, les fichiers audio doivent être placés dans un dossier spécifique sur la carte SD. Le nom du dossier doit être “mp3” et il doit être situé à la racine de la carte SD. Les fichiers audio eux-mêmes doivent être nommés en utilisant un système de numérotation de 0001 à 9999, par exemple “0001.mp3”, “0002.mp3”, etc.

Il est également possible d’ajouter du texte supplémentaire après le numéro dans le nom du fichier, par exemple “0001hello.mp3”. Cependant, lorsque vous vous référez à ces fichiers dans le code yaml, vous ne devez utiliser que le numéro1.

Il suffit ensuite d’insérer la carte SD dans le module DFPlayer.

5. Intégration avec Home Assistant

Avec les samples MP3 en place sur votre carte SD, vous pouvez maintenant procéder à l’intégration avec Home Assistant. C’est très simple, nous utilisons l’intégration native d’ESPHome et nous entrons l’adresse IP de notre WEMOS2.

6. Lecture des fichiers MP3

Pour tester que tout fonctionne correctement, nous allons utiliser l’onglet “outil de développement” de Home Assistant. Dans les services, nous entrons “ESPHome: mp3_dfplayer_play” et nous mettons le numéro de notre fichier dans “file”. Par exemple, si vous avez mis le fichier “0001.mp3” à la racine de la carte SD, vous devrez mettre 1 dans ‘file’ et cliquer sur “appeler le service”.

Conclusion

Maintenant que vous avez réussi à intégrer le module DFPlayer Mini MP3 avec ESPHome et Home Assistant. Vous pouvez maintenant lire des fichiers audio directement depuis votre Home Assistant, pour configurer par exemple des alertes vocales, des messages de bienvenue ou même créer votre propre système de sonorisation.

Plus d’information sur les automation avec ce service sur le site de Home assistant: https://www.home-assistant.io/integrations/climate/

Si vous voulez plus de scripts Home automations ou sur Domoticz vous pouvez voir mes repos à ce sujet : https://github.com/ravindrajob/


  1. DFPlayer Mini MP3 Player Module Datasheet ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. Home Assistant ESPHome integration ↩︎