Avez-vous déjà voulu tenir un registre détaillé de vos voyages nautiques ? Nous aussi ! Et le mieux, c’est que nous l’avons fait en combinant des outils modernes comme Node-RED, SQLite et un Raspberry Pi 4. Dans cet article, nous vous expliquons étape par étape comment nous avons créé un système complet pour gérer les entrées de navigation, du matériel au logiciel. Préparez-vous à embarquer dans le monde du développement !
Le cœur de notre projet est un Raspberry Pi 4, un petit mais puissant appareil qui agit comme le cerveau du système. Avec sa faible consommation d'énergie et sa capacité à exécuter des applications web, il est parfait pour des projets embarqués comme celui-ci.
Système d'exploitation : Raspberry Pi OS (basé sur Debian), léger et optimisé pour la RPi.
Connectivité : Wi-Fi et Bluetooth intégrés pour communiquer avec d'autres appareils.
Base de Données : Nous avons utilisé SQLite3, une base de données embarquée idéale pour les petits ou moyens projets.
Node-RED est un outil de programmation visuelle basé sur des flux. Il est parfait pour connecter des API, des bases de données et des capteurs sans avoir besoin d'écrire beaucoup de code. Voici comment nous l'avons utilisé :
Réception de Données NMEA :
Nous avons créé des points de terminaison pour gérer les entrées du journal :
Nous avons utilisé HTML, CSS et JavaScript pour créer une interface conviviale où :
La base de données est l'ancre de notre système. Nous avons utilisé SQLite3 pour stocker toutes les entrées du journal. Voici un aperçu de la table principale :
CREATE TABLE entradas (
id INTEGER PRIMARY KEY AUTOINCREMENT,
estado_navegacion TEXT,
categoria TEXT,
ocurrio_hace TEXT,
estado_mar TEXT,
visibilidad TEXT,
nubosidad INTEGER,
mensaje TEXT,
posicion TEXT,
velocidad REAL,
rumbo REAL,
tipo_entrada TEXT,
fecha DATETIME DEFAULT CURRENT_TIMESTAMP
);
Voici un arbre de la structure de fichiers que nous avons utilisée. Elle est simple mais efficace pour garder le projet organisé.
/Diario/
├── frontend/
│ ├── index.html # Page principale : liste des entrées
│ ├── add-entry.html # Formulaire pour ajouter/modifier des entrées
│ ├── edit-entry.html # Formulaire pour modifier des entrées
│ └── css/
│ └── styles.css # Styles personnalisés
├── static/
│ ├── assets/
│ │ └── bootstrap.min.css # Bootstrap pour un design responsive
│ └── js/
│ ├── main.js # Scripts généraux
│ ├── list-entries.js # Logique pour lister les entrées
│ └── add-entry.js # Logique pour ajouter/modifier des entrées
└── diario.db # Base de données SQLite
Entrées Automatiques Grâce au récepteur GPS, nous pouvons enregistrer automatiquement des données telles que la position, la vitesse et le cap.
Ce projet est un exemple parfait de la façon de combiner matériel et logiciel pour résoudre des problèmes réels. Avec un Raspberry Pi 4, Node-RED et SQLite, nous avons créé un système robuste et évolutif qui peut s’adapter à différents besoins.