Montre Connectée / Projet ESP32- ARDUINO / TTGO Watch 2020 V2
Hello,
Je suis sur un petit projet de montre connectée pour afficher des données du bord.
C'est à base d'une montre Lilygo TTGO Watch 2020 V2 qui est en fait un ESP32 que j'ai programmé avec l'IDE classique Arduino.
Ca fait suite au projet d'afficheur que je voulais mettre dans une cabine pour pouvoir consulter les paramètres du bateau pendant un quart ou la nuit. Mais l'écran TFT que j'avais avait un affichage trop lent et il n'était pas tactile.
La montre affiche une dizaine de paramètres, essentiellement en rouge sur fond noir pour une lecture de nuit.
En deux mots:
L'émetteur est une Arduino Méga avec un shield CAN-BUS branché sur le réseau NMEA2000 du bord et sur un émetteur Bluetooth HC-05. Il récupère certains PGN NMEA2000 et en renvoie en BlueTooth certaines données.
La montre les capte et les affiche. Son écran est tactile ce qui permet de feuilleter les pages.
Je vais voir pour ajouter d'autres pages comme une page de navigation avec une rosace et les infos de navigation (BTW, TTG, WCV, ETA...)
Voici quelques photos. Comme je ne suis pas à bord aujourd'hui les données affichées sont (heureusement) factices.
Amicalement.
Fx
Enorme!!! Je ne pensais pas que cela pouvait être réalisable mais j'en rêve depuis quelques temps. Hâte de voir la suite! Bravo
Hello,
Voilà la nouvelle page du type navigation que je viens d'ajouter qui donne
- la vitesse du bateau,
- le cap
- le temps restant au waypoint
- l'heure d'arrivée
- le gisement du waypoint
- la distance au waypoint.
La flèche bleue donne le vent apparent.
Pour une montre à 40€, il ne fallait pas s'en priver 😉.
En prime, la silhouette du bateau est la forme réelle de notre SunLight 31.
Amicalement.
FX
Alors là je suis sur le c..
Les grandes marques électronique du nautisme vont te maudire tu viens de leurs mettre une petites claque.
Chapeau super boulot
Le Moko
Super travail !!! Je verrai bien cette montre pour gérer un pypilot (affichage et commandes)...
Quelques interrogations cependant:
Quelle autonomie est-il possible d'espérer ? ( je n'ai pas su trouver cette info)
La visibilité est-elle acceptable montre au poignet et en plein soleil ?
raaa je suis trop jaloux ! le design est vraiment chouette, j'en suis très loin :)
Pour ma part, j'utilise le wifi(udp), car déjà présent à bord..mais le bluetooth est un meilleur choix car bien moins gourmand en énergie..
Pour être sûr de lire des données récentes sur le cadran de la montre, la couleur des valeurs passent au rouge si elles ont plus de 3 secondes.Fxvt, comment gères tu un éventuel problème de liaison BT qui feraient que tes données affichées seraient obsolètes ?
Je mets mon code ( en cours de développement ) en pj si ça intéresse..
@Tanagra:je me suis créé 3 phrases NMEA personnalisées pour gérer mon pilote auto (TP10 modifié):
$ECAPSWITCH start stop le pilote
$ECMINOR -5 deg
$ECMAJOR +5 deg
le pilote auto est gérè par un autre ESP32 qui fait aussi multiplexeur mais la montre pourrait très bien envoyer les trames nmea nécessaires..
Hello,
Pour l'autonomie ça ne va pas bien loin, mais je n'ai pas fait d'essai prolongé déconnecté de la prise USB.
Pour ce que je veux en faire cette autonomie me suffira, juste consulter de temps en temps les paramètres du bateau pendant les quarts. C'est à dire quelques minutes par jours. Un peu comme on le fait avec une montre.
Je ne me suis pas encore bien penché sur les paramètres d'alimentation qui permettent surement de réduire sensiblement la conso (passage en mode veille, extinction temporisée de l'écran, diminution de la fréquence du processeur...). Mais je pense que, même réglé au mieux, je ne pense pas que cette petite montre soit utilisable comme un véritable instrument de navigation continuellement allumé.
Pour ma part, j'ai activé le minimum de fonctions, justement pour limiter la conso. Seul l'écran et l Bluetooth sont activés, (pas le GPS ni la Wifi ou l'accéléromètre).
Pour ce qui est du Bluetooth, j'ai utilisé du Bluetooth Classic, pas du BLE (BlueTooth Low Energy) car l'émetteur BT que j'avais (HC-05) ne fait que du Classic. A l'occasion j'essayerai avec un HM-10 qui est BLE. Ca peut-être intéressant étant donné que la montre gère aussi le BLE. Ce sera peut-être une manière d'augmenter l'autonomie.
Pour la visibilité c'est correct au soleil, mais pas directement sur l'écran, là c'est comme tout appareil qui n'est pas vraiment fait pour le plein air. Par ailleurs, si on augmente la luminosité la conso augmente aussi.
Amicalement.
FX
Hello,
Je suis en train de rajouter un autre page à la montre.
Contrairement aux autres pages elle est en noir sur fond blanc, justement pour avoir un fort contraste.
En effet elle n'est pas faite pour être lue de nuit comme les précédentes pages, mais justement en plein jour et à l'extérieur.
C'est pour m'aider quand on est en train de mouiller.
En général je suis à l'avant avec la télécommande et mon amie est à la barre. Et souvent je lui demande "combien au sondeur ?".
Là au moins je saurais la profondeur et accessoirement la vitesse, savoir si on se déplace ou pas. Parfois on ne sens pas bien si quand on met les gaz arrière pour accrocher si on recule vraiment ou pas.
La page n'est pas finie. Je vais voir pour rajouter une flèche de tendance à la profondeur, rouge ou verte, savoir si ça monte ou ça descend.
Une fois de plus, les données de la photo sont factices car je ne suis pas au bateau, car naviguer à 13kts quand il y a 2m de fond, c'est pas mon genre. ;-)
Amicalement.
FX
Super projet, qui pourrait ouvrir d'autres perspectives, comme celles de remplacer les télécommandes.
Ainsi on pourrait envisager de commander directement le guindeau, ou d'agir sur les consignes du PA.
Sinon, une petite remarque sur ta dernière réalisation, prends-tu la vitesse du loch ou celle du GPS? Pour la med, c'est relativement égal, mais dans les zones à courant, la vitesse sur l'eau ne fournira pas la bonne info.
Jean
Super projet.
N'as tu pas envisagé d'utiliser tes idées pour faire un serveur web wifi avec un esp32 ? Cela permettrait d'utiliser n'importe quelle tablette ou téléphone étanche plutôt que la montre.
Bravo pour ce travail.
Bravo, tous ces affichages possibles c est tres bien , tellement pratique et economique pour le portefeuille et flexible..... nul doute que beaucoup de plaisanciers vont s inscrire pour eux aussi l adopter.... Pouvez vous dans le cadre de cette realisation lister le ou les montres compatible, quels type de bus (CAN 2000 furuno / ou proprio 2K des autres comme NKE simrad etc qui sont K mais avec une variante qui les rend tres ou trop proprietaires sils ne sont pas compatible avec votre developpement et bien sur cette passerelle nmea2000 /BT economique en energie.
vraiment genial.....
je suppose que c est adaptable vers une tablette basique ?
Hello Alex.Blais,
Voici le fichier image que j'ai complié. C'est le SL31160NB. SL31 ça veut dire SUNLIGHT31 et 160 car il fait 160 pixels de haut, en noir et blanc.
Il est dessiné ligne 384 par la fonction/
_ ttgo->tft->drawXBitmap(92, 40, SL31160NBxbm, SL31160NBwidth, SL31160NBheight, TFTBLACK, TFTWHITE);_
Je me suis beaucoup servi du site:
projetsdiy.fr[...]rduino/
projetsdiy.fr[...]t_espi/
TTGO-N2KDISPLAY est le programme pour la montre. Dans le même répertoire il faut y mettre le fichier de police de caractère FREE_FONTS et le fichier image du bateau.
Le second .INO est le sketch de l'émetteur. Il récupère les PGN nmea2000 et envoie 18 données sous un format simple:
__
Si tu essayes le sketch TTGO-N2KDISPLAY, il va bloquer au début car il ne va pas arriver à se connecter au bluetooth, pour passer il faut toucher le centre de l'écran plusieurs fois. Sinon tu mets en commentaire de la ligne 293 à 322.
Si tu décommentes les ligne 1083 et suivantes, tu passes en mode simulation qui génère des données aléatoires, c'est pratique et joli pour les tests;
J'ai commenté le sketch pour qu'il soit compréhensible. Il reste plein de lignes de debugage, il y a encore des mises au point à faire.
En photo la dernière version de l'écran avec la tendance de la profondeur.
Amicalement.
FX
Hello Alex.Blais,
La profondeur sous forme graphique (voir image), on a ça à bord sur les Triton de B&G, mais on ne s'en sert pas.
Avant d'acheter ces afficheurs cette représentation m'avait semblée astucieuse, mais à l'usage ce n'est pas si terrible. Il faut vraiment avoir le nez dessus ou bien naviguer en essayant de suivre une ligne de sonde ce que nous ne faisons jamais. Par ailleurs l'autonomie de la montre n'est pas faite pour une utilisation prolongée comme suivre une ligne de sonde.
C'est pour cela que sur la montre j'ai préféré un indicateur simple qu'on lit d'un coup d'oeil avec de gros chiffres et une flèche rouge ou verte montante ou descendante.
Mais techniquement ce graphique est intéressant à concevoir. Il faut faire un système avec plusieurs échelles de profondeurs qui s'ajuste pour avoir la meilleure visibilité. un peu comme sur les sondeurs à éclats, et ajuster le dessin du graphique à cette échelle. Par exemple 100-0, 50-0, 20-0 pour que la pseudo courbe reste lisible et exploitable.
Ravi que la silhouette du bateau te convienne et fonctionne.
Sinon, en 2 mots, pour le mode d'emploi c'est simple:
Le cadran de la montre est divisé en matrice de 9 cases (3 lignes/3 colonnes) et on teste dans quel zone on touche l'écran. Si on touche au milieu à gauche on recule d'un écran, si on touche au milieu à droite on avance d'un écran.
Sur l'écran de réglage de luminosité on touche la glissière pour la régler. C'est sauvegardé en sotie d'écran. Pas compliqué.
Une pression courte sur le bouton utilisateur fait arrête la montre (et pas les 6 secondes habituelles) , une re-pression la fait redémarrer la montre en 5 secondes.
Quand j'aurais le temps, les prochaines évolutions seront:
- de changer de police sur certains écrans pour une meilleure lisibilité
- et de pouvoir entrer/sortir en mode veille légère (éteindre l'écran et baisser la fréquence du processeur) en touchant le centre de l'écran ou en tournant le poignet.
Amicalement.
FX
Hello,
Je reviens sur l'idée d'une page pour la montre connectée montrant une courbe pour la profondeur comme sur le Triton de B&G.
Etant donné que dans cet écran on n'affiche pas que des données à un instant t mais un historique il ne faut pas qu'il y ait de rupture dans le temps si par exemple pendant un moment on passe sur un autre écran. Par conséquent il me semble que pour ce genre d'appli il va falloir utiliser un système comme FreeRTOS pour que les tâches puissent se dérouler quasiment en parallèle.
A l'occasion quand j'aurais du temps (l'hiver prochain ?) je verrai pour re-écrire le petit programme de ma montre connecté en RTOS.
Sinon, juste pour fignoler, j'ai ajouté un écran au lancement. Il ne sert qu'à faire joli, et bien sûr la silhouette du voilier correspond à un SunLight 31.
Autres changements mineurs dans le code:
- les temporisations ne sont plus gérées par "delay" mais par "millis", car delay stopperait tout, y compris la réception des phrases sur le port Bluetooth.
- Correction des flèches de tendances de la profondeur qui buggait
- Modification des polices de caractères pour une meilleure lisibilité
- Ajout de la fonction d'accéléromètre permettant d'éteindre l'affichage par 2 tapes sur la montre et pas forcement l'écran.
Amicalement.
FX
Vivement la commercialisation car je suis bien incapable d’un projet comme celui là !
Bonjour,
Je viens de chercher Lilygo sur l'internet et effectivement, on trouve cela pour une bouchée de pain de l'ordre de 40 à 50 €, délai de livraison 10 jours (mais modèle plus récent je crois, site chinois).
Cela ne fait pas cher l'aventure !
Merci d'avoir partagé les fichiers, je suis tout aussi incapable de programmer, mais il semble assez simple de commander une Lily et essayer d'installer cela ! Le seul hic, c'est que je n'ai pas encore de réseau à bord ! :( Je vais regarder à changer divers équipements, capteurs et mettre en route un OpenCpn sur quelque chose, résolution pour 2022 !
Bonsoir Fx,
j'ai dans mon bateau un système un peu similaire avec un afficheur extérieur composé de deux petits écrans côte à côte 1,6" transflectif(lisible en plein soleil) pour afficher les données de navigation, le serveur intérieur(esp32 connecté au nmea2000) a aussi son écran qui affiche les données dont j'ai besoin ainsi que la quantité d'eau restante et la production du déssalinisateur.
Si ça t’intéresse d'ajouter une fonction performance, qui t'indique la vitesse cible en fonction du vent et de tes polaires, je partage mon programme sur github. github.com[...]display
Le programme partagé n'est pas à jour, je vais le faire ce soir.
Je n'ai pas de photo du boitier extérieur.
Chapeau aussi .
Ca met effectivement un coup de pied aux fesses aux cadors de l'électronique embarquée
Est tu capable de relayer une alarme NMEA sous forme d'un signal sonore sur la montre ?
Hello,
Voici une petite vidéo en situation réelle.
La luminosité n'est pas mauvaise.
L'autonomie n'est pas suffisante. Je vais garder ce gadget comme prévu à l'origine, pour consulter quelques paramètres durant la nuit dans la cabine en dehors des quarts.
Il y a une petite erreur sur la vidéo où AWA et TWA sont à zéro, corrigée depuis.
En photo, petit clin d'oeil qu'on ne voit pas sur la vidéo, c'est l'écran avec le logo du forum
Superbe réalisation, avec une ergonomie digne des plus grandes marques (sans le prix...ni l'autonomie apparemment ;-))
bravo!
combien d'autonomie estimée du coup , avec quel ratio veille/affichage?