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

L'équipage
27 nov. 2021
27 nov. 2021
28 nov. 2021

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


28 nov. 2021

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


alex.blais:Bonjour Fx, je galère un peu a générer le sprite de mon kelt, tu pourrais me donner le fichier qui contient la silhouette du ton bateau ?·le 12 déc. 2021 10:20
28 nov. 2021

Excellent ! C’est vraiment un super projet, bravo !


28 nov. 2021

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


28 nov. 2021

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 ?


29 nov. 2021

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..



fxvt:Bonjour Alex.Blais,Je ne me suis pas encore vraiment penché sur les fonctions "annexes" comme les connexions, l'économie d'énergie, les alarmes... Pour la BlueTooth, c'est encore très rudimentaire car je débute dans le domaine.Si la chaine des données reçue est vide, à considérer que ce soit le signe d'une liaison BT coupée, alors le pictogramme bluetooth qui est affiché en haut de certains écrans passe en rouge au lieu de bleu. Je n'ai pas inclu de réelle fonction de test en continue pour savoir si la liaison BT est active ou pas. La seule manière que j'avais trouvée n'était pas exploitable à chaque itération car elle était lente, bloquait le processus, je pense qu'elle devait faire des retry en boucle. Si qqun a une idée je suis preneur.Je n'ai pas inclus non plus de fonction de re-appairage BT à chaud en cas de perte de liaison . Mais ce n'est pas vraiment gênant car en cas de perte de liaison un appuie sur le bouton fait rebooter rapidement et re-appairer.Merci d'avoir mis ton sketch, c'est toujours très enrichissant de regarder comment les autres codent.Amicalement.FX·le 29 nov. 2021 11:12
Jeann'ho:Le TP10 modifié, c'est intéressant ! ! J'envisageais de passer à un modèle supérieur et plus cher pour gérer le GPS etc. mais si on peut le modifier, c'est encore mieux ! ! C'est dans ce sens que tu l'as modifié ? Est-ce jouable pour un bricoleur moyen ? Félicitations !·le 18 déc. 2021 19:35
alex.blais:Bonjour Jeann'ho,Oui tout a fait,tu peux rechercher "Navico Simrad TP 10" sur le forum, le 1er résultat de la recherche pointe sur un fil..tu peux lire les dernières contributions de celui-ci, voici le lien www.hisse-et-oh.com[...]d-tp-10 J'ai eu de la chance, sur mon modèle, seul un dé pontage a été nécessaire.+ 2 soudures pour nmea+ et nmea -bonne bricole :)·le 19 déc. 2021 10:05
Jeann'ho:Merci Alex !·le 19 déc. 2021 12:17
29 nov. 2021

Super boulot!
A suivre attentivement.


29 nov. 2021

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


tanagra:@fxvt et alex.blais: merci de vos retours. Je suivrai l'avancée de vos travaux avec plaisir !!·le 29 nov. 2021 13:45
03 déc. 2021

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


03 déc. 2021

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


fxvt:Hello,C'est la SOG, la vitesse fond du GPS.J'ai fait ce choix, pas parce qu'effectivement c'est celle qu'on doit considérer lors d'un mouillage pour savoir si ça glisse ou pas, mais parce qu'à bord c'est encore la donnée la plus fiable.J'ai une sonde DST800 pour la Vitesse sur l'eau, mais malgré un étalonnage fin ce n'est pas super précis. Et comme on est en Méditerranée on s'en moque un peu.En ce qui concerne l'idée de transformer la montre en télécommande, c'est théoriquement envisageable. Mais pour moi cette montre reste un gadget. Et je ne sais pas si j'oserai m'en servir pour commander un appareil à bord (guindeau, pilote,...). Si peut-être pour commander la guirlande de Noêl. ;-)Amicalement.FX·le 03 déc. 2021 17:25
jeec:Reste à espérer la sortie de versions de montres plus robustes, ce qui n'est pas impossible si le concept se développe... Jean·le 04 déc. 2021 12:50
03 déc. 2021

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.


fxvt:Hello Jean-MarcC'est à dire que j'ai eu cette idée de montre car celles qui existent dans le commerce n'affichent pas ce que je voulais et en plus sont très chères. Donc ce qui m'a motivé c'est de bricoler un truc qui n'existe pas encore, de le fabriquer comme j'ai envie et d'essayer de voir jusqu'où on peut aller quand on est un peu bricoleur par rapport à ce qui se fait dans le commerce. En deux mots c'était ça m'a motivation. Et comme des émetteurs nmea-wifi il en existe déjà des tonnes, pour pas bien cher et très aboutit, c'est moins amusant d'essayer de réaliser ce type d'appareil.Mais c'est un fait que ce type de montre n'est pas adaptée à la navigation, trop fragile et pas étanche. C'est une des limites. L'autre limite par rapport à un produit manufacturé c'est que je n'ai pas les compétences pour développer proprement et avec des bibliothèques plus pro comme LVGL.Amicalement.FX·le 04 déc. 2021 12:10
04 déc. 202104 déc. 2021

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 ?


12 déc. 2021

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



alex.blais:merci Fx, je n'ai pas encore essayé le code mais la silhouette du bateau est déjà sur la montre,ça en jete :)Je ne recupere pas encore la profondeur dans mes infos de navigation ( ma sonde n'est pas nmea ) mais lorsque ce sera le cas, je l'afficherai sous forme de graphique en courbe, je pense que c'est une bonne alternative pour avoir une idée de la tendance (si les fonds remontent ou pas..)·le 14 déc. 2021 06:12
13 déc. 2021

Très intéressant !
Merci pour ce partage d'expérience.


14 déc. 2021

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


23 déc. 2021

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


Now:Hello,Bravo pour ton projet très sympa. Pour garder l'historique même quand tu navigue sur d'autres pages et sans utiliser d'OS temps réel (même si c'est très bien les OS temps réel, il faut un peu de pratique) il suffit de faire la réception des données sous interruption logicielle. Attention, ne pas passer trop de temps sous interruption, tu réceptionne et tu stock dans un buffer, c'est tout (en gérant quand même le buffer tournant pour ne pas déborder en mémoire). Le traitement des données et l'affichage ne se fait que quand tu est dans la page qui va bien, et la tu retrouve ton buffer avec toutes les données historiques bien sagement rangées. ·le 23 déc. 2021 14:18
23 déc. 2021

Vivement la commercialisation car je suis bien incapable d’un projet comme celui là !


23 déc. 2021

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 !


24 déc. 2021

Bravo et merci pour le partage


27 déc. 2021

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.


fxvt:Hello Lost,Merci pour le partage, c'est toujours enrichissant de d'étudier de nouveaux sketchs.En tout cas les 2 jauges sur la photo sont sympa, c'est quel écran celui-ci ?Je ne pense pas ajouter la fonction performance dont tu parles, en tout cas pas sur la petite montre TTGO Watch, car elle est supposée être utilisée quand je suis dans une cabine, sans vue sur les afficheurs du cockpit ou du traceur. C'est juste pour avoir quelques mesures.Amicalemant.FX·le 28 déc. 2021 16:16
Lost:Bonjour, l'écran est un 4 pouces ST7796S·le 28 déc. 2021 16:42
J-Marc:Bonjour et merci Merci Lost pour ce partage.·le 28 déc. 2021 22:47
31 déc. 2021

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 ?


fxvt:Hello PCG,Oui et non. Non en fin de compte.Techniquement c'est envisageable en utilisant le modèle de montre TTGO 2020 V3 qui a un petit haut-parleur, la version 2020 V2 que j'ai utilisé n'a qu'un vibreur haptique trop faible pour une alarme.Mais ça ne serait pas viable à cause de la faible autonomie (3-4h) de la montre si on est en liaison Bluetooth ou wifi en permanence.Amicalement.FX·le 31 déc. 2021 10:26
pcg:le vibreur haptique d'un téléphone portable quand il est en contact avec la peau c est deja tres efficace !·le 01 jan. 2022 23:07
06 fév. 2022

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


06 fév. 2022

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?


2013-06-01 - VillaHavn (Norvège)

Phare du monde

  • 4.5 (97)

2013-06-01 - VillaHavn (Norvège)

2022