Cartographie faible coût et partagée à base de raspberry Pi et Opencpn

 

Partage écrans

Photo de la cartographie partagée depuis un raspberry Pi entre un PC une tablette et un écran connecté au rapberry Pi

 

Le système est basé sur le logiciel libre OpenCpn implanté sur un raspberry pi3 B (avec interface Wifi intégrée). La solution présentée a été testée avec

  • un Raspberry Pi 3B avec une carte µSD de 32 Goctets et le système d’exploitation raspbian buster desktop (2019-09-26-raspbian-buster )

  • Un convertisseur DC/DC 12V–> 5V 3A pour l’alimentation du raspberry. On trouve ce type de composant chez les vendeurs d’accessoires de caravaning ou chez les grands vendeurs en ligne

  • une connexion GPS+AIS existante ( Pour ma part j’utilise le matériel existant de mon RM: Furuno 32–>VHF RO4800 –> convertisseur RS232/USB Prolific

  • OpenCPN 5.0

  • Cartographie Atlantique+ Iles Britanniques OSenc 

  • fichiers marée et courant de Merak 56

Pour l’installation vous aurez besoin d’une connexion internet suffisamment performante. Il vous faut aussi le SSID et le mot de passe de votre box. Sur le PC d’installation

 

Voici la procédure à suivre:

Installer le Raspberry Pi.

  • De nombreux tutoriels existent suivant que vous avez un écran et un clavier (facile) ou pas (plus difficile).

  •  –  Dans le premier cas vous trouverez la méthode à suivre avec le lien ci-dessous

                           https://raspbian-france.fr/installer-raspbian-premier-demarrage-configuration/

      –  Dans le deuxième cas vous pouvez suivre la méthode du lien ci-dessous

                              https://raspbian-france.fr/raspberry-pi-sans-ecran-sans-clavier/

        Dans ce dernier cas il faut écrire le fichier « wpa_duplicate.conf » à la racine cela  permet de réaliser la connexion automatique du raspberry  à votre box au démarrage. Le fichier « ssh » qui ne contient rien est aussi absolument indispensable. Il faut disposer d’un utilitaire de connexion SSH fonctionnant sur le PC: putty est excellent .

Configurer le raspberry pi

On se connecte par la connexion SSH. En utilisant putty ( https://www.putty.org/) ) après avoir repéré l’adresse IP du raspberry sur la box si on a pas affecté d’adresse IP statique (On trouve l’adresse IP en allant à l’adresse de la box http://192.168.1.1 avec un navigateur quelconque et en repérant l’hôte raspberrypi) .

putty

fenêtre de connexion putty

 On obtient la fenêtre console suivante:

 

A la première connexion l’identifiant est : pi  et le mot de passe est raspberry. Lorsque qu’on est connecté en mode console on peut finir l’installation du raspberry Pi. Pour cela il faut taper la commande sudo raspi-config dans la console. On obtient  le menu suivant

  1. La première ligne permet de changer le mot de passe si besoin
  2. Inutile de modifier quoi que ce soit
  3. Boot options: choisir la dernière option :démarrage automatique du desktop sans login
  4. localisation options: choisir  fr_FR.UTF-8 UTF-8  et choisir la zone paris pour la « time zone »
  5. Interfacing options: P3 VNC activer cette option.

Il faut maintenant redémarrer le raspberry que l’on pourra contrôler depuis un PC avec VNC viewer.

Installer VNC viewer sur le PC

Pour contrôler le raspberry depuis un PC (c’est inutile si on a un écran et un clavier connectés au raspberry) on utilise realVNC viewer   (https://www.realvnc.com/fr/connect/download/viewer/). A la connexion on donne l’adresse IP du raspberry (à relever sur la box) et on est invité à se connecter au raspberry avec les identifiant et mot de passe du raspberry ( pi et raspberry par défaut). On obtient alors un écran comme celui ci et on peut travailler avec le raspberry directement. 

  • Installer Opencpn sur le raspberry

Rien de bien extraordinaire. On suit les instructions données sur le site de OpenCpn (Il faut que le RPI soit connecté à Internet)

https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:opencpn_user_manual:getting_started:opencpn_installation:raspberrypi_rpi2

Pour installer les plug-ins vous pouvez suivre la méthode du wiki .

Une fois Opencpn et ses plug-ins installés on peut lancer Opencpn à partir du groupe Education (??) et tout fonctionne (comme d’hab pour ceux qui l’utilisent déjà) 

  • Installer les cartes O-charts (facultatif)

Si vous avez CM93 la seule chose à faire est d’indiquer à Opencpn le répertoire des cartes.

Vous pouvez utiliser des cartes mises à jour à un tarif raisonnable (~30€ pour la France Atlantique+ Iles britanniques) proposées par oeSENC Charts. https://o-charts.org/shop/index.php

Suivez les instructions du site pour l’installation. Il vous faudra au préalable installer le plugin Osenc pour OPenCpn en tapant l’instruction suivante dans une fenêtre console.

sudo apt-get install oesenc-pi

Pour les marées et courants on peut suivre les fichiers de Merak56.

Quand tout cela fonctionne on peut visualiser la carto sur son PC alors qu’elle tourne sur le Raspberry.

  • Installer le serveur WiFi

Si vous êtes chez vous où dans une zone desservie par un WIFi connu la méthode précédente suffit. Ce n’est évidemment pas le cas sur un bateau. Dans ce cas c’est le raspberry lui-même qui servira de hotspot WiFi . Pour créer le hotspot la méthode suivante fonctionne parfaitement  

https://raspbian-france.fr/creer-un-hotspot-wi-fi-en-moins-de-10-minutes-avec-la-raspberry-pi/ 

qui reprend la méthode décrite sur le site de Billz https://github.com/billz/raspap-webgui

Notez que la seule instruction à utiliser en mode console est:

wget -q https://git.io/voEUQ -O /tmp/raspap && bash /tmp/raspap

Une fois le hotspot créé et après redémarrage du Raspi vous devez voir le SSID raspi-webgui dans la liste des réseaux Wifi visibles par votre PC (ou tablette ou smartphone). Le mot de passe par défaut est: ChangeMe . Vous trouverez la façon de le changer sur le site de Billz 

Voilà votre système de cartographie partagée est prêt. Si vous voulez que Opencpn soit lancé au démarrage il vous suffit d’ouvrir une console et de taper

sudo nano  /etc/xdg/lxsession/LXDE-pi/autostart

pour éditer le fichier autostart qui s’exécute au boot de la machine. Il faut rajouter la ligne

@opencpn

à la fin du fichier l’écrire par CTRL-O et sortir par CTRL-X

Votre cartographie sera lancée à chaque démarrage du Raspi.

Utiliser la cartographie

On peut maintenant utiliser la cartographie sur tous les appareils disposant de realVNC (existe sous Apple, et Android) connectés sur le réseau raspi-webgui et avec le VNC configuré à l’adresse

10.3.141.1

Attention ne pas oublier de se connecter au réseau raspi-webgui (ou le nom que vous lui avez donné)

et voici mon écran de connexion:

 

Bon courage et bonne navigation 

Raymond sur  Planedenn 2, RM 10.60 n°38

12 Commentaires

  1. Pierre et Dolores

    Bonjour Raymond,
    Cela fait plaisir de voir quelqu’un qui maîtrise la Framboise. par manque de temps et surtout une tres grande appréhension vu mon niveau nul je n’ais pas franchis le pas.
    Maintenant que nous avons un spécialiste il me viens l’envie de me lancer dans ce projet pour la prochaine saison.
    Merci et a bientôt

  2. Matteo

    Un grand merci Raymond pour ce tuto super clair! Je sens que je vais essayer!

    Concernant le prérequis GPS+AIS, mon équipement Garmin fournit un WiFi mais à destination uniquement de l’App Garmin, peut-être sur son blog Francis Fustier propose-t-il des liaisons NMEA-2000 –> WiFi qui pourraient être utilisées.

    Deux points concernant les Raspberry:
    – Le 3B est de plus en plus difficile à trouver (délais très longs) maintenant que le 4 est sorti. Mais je ne vois rien dans le tuto qui soit spécifique au 3B, donc je suppose (mais à tester) qu’un 4 ferait aussi bien l’affaire.
    – La faiblesse habituelle des Raspberry est la qualité de leur alim (tension et connecteur). Il existe des supports de Raspberry qui résolvent ce problème (par exemple: Bistscope Blade Uno, https://fr.farnell.com/bitscope/bb01b/bitscope-lame-uno/dp/2546576?ost=BB01B+BITSCOPE+LAME+UNO&cfm=true&ddkey=https%3Afr-FR%2FElement14_France%2Fsearch).

    Pour Pierre: pas de soucis particuliers avec le Raspberry, c’est simplement un Linux sur une carte pas chère.
    Pour Raymond: pourquoi as-tu choisi cette version de Linux plutôt que celle distribuée par raspberrypi.org (Stretch si je suis à jour?)

    1. Raymond (Auteur de l'article)

      Bonsoir, Merci pour ces commentaires
      Je confirme un raspberry pi 4 ferait l’affaire. La distribution buster est la dernière c’est pourquoi je l’ai installée. Concernant la fiabilité de tout ça et notamment de l’alimentation je suis en train de faire quelques tests ( pour l’instant une semaine de fonctionnement non stop sans plantage). Je vous tiendrai au courant à la fin
      Amicalement

  3. Lavpat

    Bonjour,

    J »utilise maintenant depuis un an et demi l’alimentation suivante :
    https://www.amazon.fr/HitCar-Convertisseur-chargeur-Micro-USB-t%C3%A9l%C3%A9phone/dp/B00U2DGJD2/ref=sr_1_fkmr0_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=HitCar+Convertisseur+pour+chargeur+de+voiture+DC+12+V+vers+Mini%2FMicro-USB+5+V+3%2C5+A+Pour+GPS%2Ftablette%2Ft%C3%A9l%C3%A9phone%2Fcam%C3%A9ra&qid=1575041559&sr=8-1-fkmr0
    Alumé casiment sans discontinuer pendant 4 mois, il répont toujours présent !
    Pour avoir opencpn sur raspberry j’ai utilisé openplotter (https://docs.sailoog.com/openplotter-v1-x-x/v/francais/getting-started). Tous les plug in sont prés installé ainsi que tout ce qui nécessaire pour faire fonction la « framboise »
    Bonne navigation
    Patrick

  4. Matteo

    Juste un oubli dans mon post précédent: faire aussi régulièrement une sauvegarde de la carte SD. Si j’en crois internet, cette techno est faite pour des photos au départ, donc beaucoup de lectures mais relativement peu d’écritures. Or nous faisons beaucoup d’écritures en fonctionnement normal et énormément pendant les phases de boot.

    1. Raymond (Auteur de l'article)

      Effectivement il est prudent de faire une sauvegarde. De plus quand on utilise OPenCPN sur raspberry avec les cartes O-charts il est prudent d’acheter le dongle physique (https://o-charts.org/shop/fr/hardware/38-usb-key-dongle.html) car si on est amené à réinstaller l’OS du raspberry la licence sera perdue (expérience vécue)

  5. Raymond (Auteur de l'article)

    Un petit complément à l’article. Le test du raspberry pi avec son alimentation sur le bateau est concluant (le tout consomme 0,3 A) à un petit détail près: le raspberry n’étant pas connecté à Internet et ne disposant pas d’une horloge temps réel, il perd l’heure et la date lorsqu’il n’est plus alimenté – c’est gênant pour les heures de marée sur OpenCPN-. Pour remédier à ça trois solutions sont possibles
    – la plus simple: mettre à jour la date et l’heure à chaque fois qu’on met le raspberry sous tension. Pour cela il faut ouvrir une fenêtre console et taper la date avec le format ci-dessous.
    sudo date -s « vendredi 27 décembre 2019, 12:30:28 (UTC+0100) »
    Il vous faudra taper votre mot de passe et le tour est joué
    – Avec un deuxième GPS si disponible on peut récupérer la date (tests en cours)
    – Avec un circuit d’horloge temps réel. Cette solution réclame un peu de « bidouille » (hack en anglais) électronique.

  6. Raymond (Auteur de l'article)

    Le test de la cartographie OpenCPN sur raspberry Pi fonctionne correctement à un détail près. Lorsqu’on éteint le raspberry on perd la date et l’heure car le raspberry ne dispose pas d’une horloge temps réel sauvegardée et sur le bateau il n’est pas connecté à l’internet. Attention donc à remettre le raspberry à l’heure lorsqu’on le rallume. On le fait dans une console en tapant l’instruction
    sudo date -s « 01JAN2020 14:00:00 »
    rentrer le mot de passe
    Le format est le suivant « ddmmmyyyy hh:mm:ss » où
    dd est la date du jour
    mmm les 3 premières lettres du mois (en anglais)
    yyyy l’année
    hh l’heure
    mm les minutes
    ss les secondes
    Une méthode de mise à jour automatique à partir du GPS est en cours de test et sera publiée dès qu’elle aura été testée avec succès

  7. Tinou

    Merci pour ce retour d’expérience.
    Nous sommes en train de mettre en place un système complet de navigation à base d’un raspberry pi4, avec Raspbian (bluster, la dernière version) et Opencpn. Dessus seront branchés l’AIS/GPS.
    On se fait la main sur le PI, avec branchement d’un petit module météo (pour suivre la pression), l’ajout d’un bouton poussoir arrêt. Et quand on aura reçu un gps (sur port usb), on pourra tester la récupération de l’heure à partir du GPS et évidemment OpenCpn .
    Pour l’instant on a surtout eu deux types de surprises :
    – le PI n’arrive pas à se connecter à la freebox via la wifi. Par contre il se connecte à internet avec un partage de connexion wifi de n’importe quel téléphone. Malgré pas mal de recherches et de propositions de solutions sur internet, rien n’a marché…
    – le Pi plante dès qu’on lui branche qqe chose sur un port usb alors qu’il a déjà démarré. Pareil si l’appareil est branché sur l’usb avant le démarrage du PI mais non allumé électriquement. Si on l’allume après le boot du PI, celui-ci plante systématiquement. pas bon du tout pour lui… On ne sait pas trop si ça vient de l’alim ou pas. Même si à terme, une fois installé à bord, on aura peu d’occasions de brancher quelque chose en +, c’est pas pratique en phase de tests, et me parait pas très normal.

    1. Raymond (Auteur de l'article)

      Bonjour Tinou,
      Content de voir que la solution proposée vous intéresse. Quelques suggestions vis à vis de vos problèmes.
      – connexion au Wifi de la freebox. Voyez vous le raspberry dans les adresses IP de la box (on y a accès en tapant 168.192.1.1 dans un navigateur) . Sinon il y a peut être un problème de configuration de la box. Si l’accès à internet est possible à partir du partage Wifi du téléphone c’est que le Wifi du raspberry fonctionne.
      – Il y a de fortes chances que le plantage du raspberry à la connexion d’un appareil usb soit due à l’alimentation. En ce qui me concerne j’ai branché la sortie USB de mon Emetteur AIS, sans qu’il y ait de problème.
      – J’ai tenté de nombreuses solutions pour récupérer l’heure à partir du GPS sans succès à ce jour -les mystères de l’informatique ???
      Bon courage pour la suite

  8. pl

    Bonjour,
    Je m’interroge sur la pertinence de passer par une conversion RS232 / USB pour la connexion du GPS dans la mesure où le Raspberry Pi dispose d’un port série (UART PL011) accessible via les connexions GPIO 14 (TXD) et GPIO 15 (RXD) (après configuration qui élimine le Blue Tooth). Peut-être avez-vous la réponse ?
    Bien cordialement
    PL

  9. Raymond (Auteur de l'article)

    Bonjour PL,
    Effectivement on peut directement se connecter en UART. Je suis passé par l’USB car le raspberry est maintenant connecté sur la sortie GPS de mon émetteur AIS (Digital yacht AIT1500) qui est en USB alors que pendant les tests je l’avais connecté sur la sortie UART de ma VHF. Je n’ai pas testé la connexion directe en UART sur le Pi.
    Bien cordialement

Laisser un commentaire

Connexion
Connexion

Connexion