Auteur Sujet: Passerelle CAN/WiFi-TCP/Serial  (Lu 26603 fois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Passerelle CAN/WiFi-TCP/Serial
« le: novembre 05, 2019, 03:05:08 pm »
Bonjour à tous,

Je viens de finir ma passerelle entre les réseaux CAN et TCP (WiFi) et aussi série sur base d'ESP32. L'ensemble est disponible sur le Github de Locoduino : https://github.com/Locoduino/CAN_WiFi_gateway32

Ce projet avait été initialisé pour Orléans 2018 sur la base d'ESP8266. Ici, il s'agit d'un ESP32 et d'un module CAN SN65HVD230 qui simplifient considérablement le montage et son cout puisque cette passerelle me revient à 6€ au total !

Il est donc possible de lire les trames CAN qui circulent sur un bus avec des applications reliées, soit en WiFi, soit en Ethernet ou soit encore en série. Et il est inversement possible d'envoyer des trames CAN avec ces mêmes applications.

J'avais présenté à l'époque un TCO sous forme de page Web qui, relié avec les 8 satellites du Locoduinodrome, se mettait à jour dynamiquement. J'utilise toujours ce projet qui est visible ici

J'utilise pour cette vidéo un sketch chargé sur un autre Arduino qui envoi en boucle et à raison d'un message par seconde les mêmes messages que les satellites avec les détecteurs d'occupation (consommation et ponctuels). J'ai poussé le débit des messages au rythme de 1 message toutes les 100ms et la réception TCP n'a pas bronchée.

J'avais aussi montré comment il était possible de faire les réglages des satellites à partir d'une page web :

Pour ma part, c'est un outil très important et mes futurs recherches vont aller dans le sens d'une gestion automatisée de mon réseau sur une base de données (qui existe déjà) et qui va être en interaction directe avec les périphériques CAN (satellites).

C'est aussi ce type de passerelle qui pourra être mise en œuvre par ceux qui voudraient interfacer JMRI avec le bus CAN et les satellites par exemple.

Je ne dispose que peu de temps malheureusement pour faire des présentations plus détaillées (voir cependant sur le Github), mais je peux au travers de ce fil apporter des précisions à tous ceux qui souhaiteraient mettre en œuvre une telle architecture.

Je suis intéressé également par toutes les propositions d'amélioration.

Christophe.






Didier44

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #1 le: novembre 06, 2019, 03:40:09 pm »
Merci Christophe et sur ESP32 en plus.
J'essaierais cette passerelle dès que possible car j'en ai bien besoin.
De plus on dirait que le prix de l'ESP32 est en baisse.

A bientôt
Didier

fcot2002

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #2 le: novembre 06, 2019, 07:11:03 pm »
Bonsoir,

Super Christophe !

Quid des "erreurs" liées à un réseau WiFi peu performant/lointain (...) ?

Mon réseau WiFi est trop juste là où est la maquette. A part mettre un répéteur, je n'utilise pas le WiFi dans ma gestion (mauvaise expérience d'une machine qui ne s'arrête pas...).

Mais la qualité du WiFi n'est pas seule génératrice de perturbations etc.

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #3 le: novembre 07, 2019, 10:04:49 pm »
B'hein faut mettre les ESP32 là où la WiFi marche bien, non ? Quelle idée de faire des dioramas qui représentent la Creuse ou la Lozère !

Bon c'est à peine une boutade. Le bus CAN faisant tout le tour du réseau, la ou les passerelles peuvent être placées là où la réception est la meilleure. Mais tout ceci fonctionne aussi avec des cartes Ethernet sur Arduino (filaire donc).

Tout ce que je peux dire, c'est que j'ai fait des tests avec des échanges d'informations un peu fournis et une base de données en TCP et je n'ai pas perdu me messages.
« Modifié: novembre 08, 2019, 04:42:36 pm par bobyAndCo »

fcot2002

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #4 le: novembre 08, 2019, 09:52:22 am »
Salut Christophe

c'est vrai ça pourquoi aller se paumer  :D :D :D :D :D

bon c'était juste pour réagir, je suis un peu frileux quand au WiFi, mais plus à cause de la latence.

mais expérience très intéressante qui ouvre des possibilités  ;) ;) ;)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #5 le: novembre 08, 2019, 05:15:33 pm »
Soyons bien clair, je n'oppose pas une technologie à une autre, en l'occurence le CAN et le WiFI. Bien au contraire. Ce que je présente ici est une passerelle entre les deux types de réseaux. Pour que ce qui fonctionne en CAN reste en CAN et pour que ce qui fonctionne en TCP (et bien souvent ne peut fonctionner qu'en TCP) puisse aussi communiquer avec un bus CAN.

Dans ce que je présente, la latence est un non problème puisque les ports TCP une fois ouverts le restent constamment ! Ce qui influence donc la latence comme la vérification du message ou la performance du réseau n'est pas moins performant qu'en CAN (peut être meilleur même).

CQFD.

Pyk35

  • Full Member
  • ***
  • Messages: 110
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #6 le: février 21, 2020, 01:09:03 pm »
Bravo Christophe et merci pour cette passerelle.

J'ai profité de ton poste pour découvrir le SN65HVD230. Par contre je m'interroge, ce composant peut à lui seul faire le même boulot que les cartes CAN à base MCP2515+ MCP2551 ?
Cela reviendrait à vraiment moins cher que la carte CAN de base.
A+
Cédric

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #7 le: février 22, 2020, 07:11:28 pm »
En réalité, la carte SN65HVD230 ne fait pas le même boulot qu'une carte NiRen par exemple mais il y a sur l'ESP32 une partie du CAN donc la carte SN65HVD230 est complémentaire et simplifiée.

Pyk35

  • Full Member
  • ***
  • Messages: 110
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #8 le: février 27, 2020, 10:38:11 pm »
Je ne savais pour l'ESP32.
Merci pour ta réponse !
A+
Cédric

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3038
  • 100% Arduino et N
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #9 le: février 28, 2020, 08:52:36 pm »
Bonsoir,

Le SN65HVD230 est seulement un amplificateur bi-directionnel (Can Bus Transceiver) comme le MCP2551, rien de plus.

Un certain nombre de micro-contrôleurs intègrent le CAN, c'est à dire l'équivalent du MCP2515 (SAM3X8E ARM Cortex-M3 du Due ou l'ESP32 par exemple, il y en a d'autres...). Mais il faut leur adjoindre un tranceiver de toute façon pour avoir une ligne Can conforme à la norme.
Cordialement,
Dominique

Pyk35

  • Full Member
  • ***
  • Messages: 110
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #10 le: février 28, 2020, 08:54:20 pm »
Merci pour vos informations à tous les 2.
A+
Cédric

Didier44

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : Passerelle CAN/WiFi-TCP/Serial
« Réponse #11 le: avril 06, 2020, 06:30:52 pm »
Bonjour à tous,

Je viens enfin d'essayer la passerelle de Christophe.
Il met à disposition un croquis qui permet d'envoyer des données à partir d'un UNO via le bus CAN vers l'ESP32.
Je pense que le test a été fait avec un Arduino UNO et un module MCP2515 indépendant.

En ce qui me concerne j'utilise le MCP2515 EF02037 CAN BUS Shield Arduino et pour ce faire j'ai du changer une ligne du croquis:

const uint8_t spiCS = 9;  // pour un Uno
par
const uint8_t spiCS = 10;  // pour un Uno

Didier