[RESOLU]Envoi d'un fichier sur serveur FTP hébergé par RaspBerry

Bonjour,

Je dois actuellement envoyer un fichier présent sur la carte SD de mon shield Ethernet sur un serveur FTP que j'ai monté sur une raspberry.

Après de nombreuses recherches, je ne trouve toujours pas comment faire.
J'avais trouvé ceci : Arduino Playground - FTP
Mais impossible de faire fonctionner le programme correctement en remplaçant par mes adresses ip et etc.
Avez-vous des solutions et des idées ?

Pour info, voici le fichier à envoyer :
Nom du fichier : W14.txt
Contenu : date du jour / nombre

Merci.

Herouis:
J'avais trouvé ceci : Arduino Playground - HomePage
Mais impossible de faire fonctionner le programme correctement

Détaille un peu.
Qu'est-ce qui ne fonctionne pas?
Quels sont les erreurs remontées (s'il y en a)?

Voila ce qui s'affiche dans le moniteur de série lorsque j'entre f :

Ready. Press f or r
SD opened
Command connection failed
FTP FAIL

J'ai lu sur un autre post que cela peut venir du firewall mais même après l'avoir désactivé cela ne fonctionne pas.

J'ai mon raspberry serveur connecté sur un switch, l'arduino et mon pc y sont aussi connectés, j'arrive à envoyer des fichiers grâce à FileZilla mais dès que je veux tenter une communication avec l'Arduino, cela ne fonctionne pas.

Le programme ne se bloque pas puisque quand je retape f, cela me remet l'erreur.
J'ai un shield ethernet W5100.

Au niveau des adresses IP je pense avoir les bonnes, les voici :

// this must be unique
 byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x59, 0x67 };  

// change to your network settings
 IPAddress ip( 10, 138, 16, 160 );    
 IPAddress gateway( 10, 138, 0, 6 );
 IPAddress subnet( 255, 255, 255, 0 );

// change to your server
 IPAddress server( 10, 138, 16, 159 );

merci. :slight_smile:

sans regarder trop longtemps,
travaille tu en local ou en distant ?
les adresses local sont du type 192.168.XXX.XXX la plupart du temps
la ca me fait penser a des adresses distantes et qui du coup peuvent être bloquer par le parefeu,
regarde sur ta box pour avoir les ip local

Je travaille en local, c'est un réseau entreprise.
Du coup je n'ai pas accès à la box ni aux serveurs hardware entreprise.

Bonjour,

To mask IP n'est pas correct.
Ce devrait être 255, 255, 0, 0

Bonjour,

J'ai toujours la même erreur dans le moniteur après modification du 255 en 0.

Merci.

Si c'est un serveur d'entreprise, ne pratique-t-il pas un filtrage sur les adresses MAC?

J'en sais rien du tout malheureusement.
Celui qui s'occupe d'une partie de l'informatique de l'entreprise est en déplacement donc je ne peux pas lui demander, cela peut venir de là ?

Salut,

pour savoir si c'est le switch qui pose problème tu peux virer le switch :wink: :

connecte directement le PC et le shield. Si ton PC obtient son adresse IP par DHCP il déconfigurera peut-être son adresse IP lorsque tu le débrancheras du switch. Tu devras alors faire une configuration manuelle de son IP et de son masque réseau, (la passerelle on s'en moque).

Une fois les tests faits, reconfigure la configuration réseau du PC comme à l'origine.

Si ça marche le problème vient du switch.

Si ça ne marche toujours pas c'est soit :

  • de la faute du programme
  • soit un problème de câble Ethernet droit/croisé mais normalement le circuit W5100 embarqué dans certains shield gère automatiquement le type de câble.

Salut,

Pourrais-tu m'expliquer comment faire s'il te plait ?
Je ne connais pas du tout le réseau et je suis totalement perdu là :confused:
Merci.

Après relecture de ton post initial je viens de voir que tu as besoin d'un switch puisque tu as 3 machines (PC, Raspberry, Shield Ethernet).

  • ton serveur FTP est sur la raspberry
  • le client FTP est sur l'arduino
  • a quoi te sert le PC (faire du ssh sur la raspberry ?)
  • sous quel système d'exploitation tourne le PC ?

Je pose ces questions parce que c'est plus simple de n'avoir que 2 machines pour virer le switch et donc il faut en virer une (PC ou raspberry)

Ce que je ferai pour valider le programme client sur l'arduino sans switch :

  1. Installation d'un serveur FTP sur le PC histoire d'éliminer la raspberry PI dans un premier temps
    2 Connexion directe (sans switch) du PC et du shield
    3 Configuration de l'IP manuelle de l'IP du PC
    4 test de la réception du fichier sur le serveur FTP du PC.

Le plus simple est quand même de récupérer un switch basique (sans filtrage en supposant que le problème vienne de là).

Mon PC est branché sur le switch pour avoir une connexion internet et pouvoir faire des recherches en parallèle, je n'ai qu'une prise réseau à ma disposition. Le PC tourne sous W7 entreprise.

J'aimerais quand même garder le serveur ftp sur la RaspBerry puisque c'est cette solution qui doit être mise en œuvre.

j'ai cherché sur le net pour faire un réseau entre mon pc, la raspberry et l'arduino mais j'ai trouvé que de vieux articles de 2005 ou autre année dépassée aujourd'hui.

Peux-tu m'expliquer comment faire pour configurer l'IP manuellement ?

Merci.

Mon organisation se présente comme dans l'image en pièce jointe.
Le système doit être expensible, donc autant de clients que l'on veut mais le serveur ftp sur la raspberry ne doit pas bouger.
Est-ce faisable ?

Oui c'est faisable mais à condition de ne pas avoir un switch filtrant l'adresse MAC de ton arduino (si c'est bien ce qui se passe).

En attendant le retour de l'administrateur réseaux, histoire d'avancer si le switch en place est le problème :

Switch (pour Internet) <- Ethernet -> Windows <- USB -> Arduino <- Ethernet -> Raspberry

Tu élimines le switch entre l'arduino et le raspberry et tu n'as même pas besoin de changer les adresses IP.

J'ai donc suivi ton schéma de montage, j'ai branché directement l'arduino au raspberry via ethernet, les adresses ip sont donc maintenant 169.254.161.140 pour le serveur et j'ai mis 169.254.161.141 pour l'arduino.

Malheureusement le programme ne fonctionne toujours pas. Il bloque au niveau de la connexion au serveur.
Cela ne vient pas du shield ethernet puisque j'ai essayé de la changer, sans succès.

Avez-vous des solutions ?

Merci.

Tu as vérifié avec un ifconfig sur le Raspi que l'adresse est bien celle prévue?
As-tu fait un ping 169.254.161.141 depuis le Raspi pour confirmer que l'Arduino est bien visible sur le réseau?

J'ai fait le ifconfig mais pas le ping, comment faire ?
je n'ai jamais utilisé de raspberry.

dans une console tu tapes:
ping -c8 169.254.161.141
le raspi va envoyer 8 ping à l'adresse indiquée

Merci. Maintenant le programme fonctionne et le fichier s'envoie.
J'ai maintenant essayé de mettre le système sur le réseau, cela ne fonctionne plus, penses -tu que je dois débloquer une adresse ip pour l'arduino et le raspberry ?