Écoute du signal d'un Babyphone via RTL-SDR

Introduction

Depuis quelque semaines j’ai la chance d’être l’heureux “possesseur” d’un bébé. Pour surveiller le petit bonhomme, nous avons investi dans un babyphone tout ce qu’il y a de plus classique, c’est-à-dire avec un émetteur et un récepteur. Vu que je n’ai plus beaucoup l’occasion de dormir, qu’une RTL-SDR trainait sur le bureau, et que je ne connais pas très bien GNURadio. Je me suis fixé pour objectif de créer un circuit virtuel à l’aide de GNURadio Companion afin d’avoir un récepteur virtuel pour le babyphone avec les mêmes “fonctionnalités”. Néanmoins, avant de rentrer dans le vif du sujet, on va éclaircir quelques termes.

T-Watch 2020: TV-B-Gone

La dernière fois, nous avons vu comment obtenir un environnement pour la T-Watch2020 avec Micropython et LVGL. Cette fois, nous allons jouer avec l’emeteur infrarouge de la montre afin de voir s’il est possible d’en faire un TV-B-Gone.

Qu’est ce qu’un TV-B-Gone

Vu que Wikipedia l’écrit très bien sur la page dédiée au TV-B-Gone, nous allons reprendre sa présentation :

Le TV-B-Gone est une télécommande universelle dont l’unique fonction est d’éteindre et d’allumer les téléviseurs. Le concept a été réalisé en open source et est commercialisé par Mitch Altman, ingénieur dans la Silicon Valley. Il s’agit d’un détournement de la télécommande universelle : le TV-B-Gone parcourt les différentes fréquences utilisées par les différentes marques en émettant pour chacune d’entre elles le signal correspondant à la commande d’arrêt du téléviseur à l’aide d’une diode infrarouge. Cette télécommande a été pensée pour permettre d’éteindre les téléviseurs dans les lieux publics afin de ne plus subir en permanence la publicité ou les émissions télévisées, notamment dans les fast-foods, les magasins ou encore les files d’attente. Ce gadget provoque l’engouement des activistes anti-télévision ou antipub, qui organisent régulièrement des « raids » dans les magasins d’électroménager pour éteindre en quelques pressions des murs entiers de téléviseurs en démonstration.

T-Watch 2020 : Micropython + LVGL

Lors de mon dernier article sur la twatch, je vous présentais comment installer MicroPython sur la TTGO T-Watch 2020. L’environnement déployé était plutôt “rustique” et ne permettait pas de profiter pleinement des fonctionnalités que propose la T-Watch. Depuis, les choses ont un peu bougé, et il est maintenant possible d’avoir un environnement bien plus développé avec notamment le support de LVGL pour avoir une interfaces graphiques qui dépote.

Qu’est ce que LVGL ?

LVGL est une bibliothèque permettant de facilement créer des interfaces graphiques pour de l’embarqué. Le tout semble plutôt léger et propose tout un tas de widget bien pratique. Par exemple voici le type de rendu que l’on peut avoir :

Micropython sur TTGO T-Watch 2020

Il y a quelque temps, j’ai eu l’occasion de me procurer une smartwatch Lilygo T-Watch 2020. Il s’agit d’une montre totalement programmable avec un prix plutôt accessible, aux alentours de 30€. Son principal interêt, c’est les différents composants qu’elle embarque, à savoir :

  • Un chip ESP32
  • Un Module RTC PCF8563 (pour une montre c’est mieux)
  • Un écran LCD tactile
  • Un accéleromètre
  • Un vibreur
  • Un haut-parleur
  • Un emetteur infrarouge
  • Un chip WiFi 802.11 b/g/n
  • Un chip Bluetooth 4.2 et BLE

Du coup, c’est plutôt interessant à bricoler et les possibilités de “hack” sont assez importante. Bien que la montre se programme principalement en C++ à l’aide de l’éditeur Arduino, il semble possible de programmer en Python dessus via MicroPython. Du coup, c’est parti.