bonjours je suis actuellement en train de développer une interface graphique pour pouvoir contrôlé un arduino à distance sans utilisé arduino ide mais j'ai une colle déjà le matériel j'utilise pour le moment un arduino uno et un shield ethernet 2 . le problèmes est que j'ai besoins de téléversé un code arduino présent sur la carte sd a la place du code actuel (en gros il faut que le que le code actuelle permette de téléversé un autre code à ça place) pour cela j'ai plusieurs piste pour réécrire le programme je vais utiliser le bootloader pour reprogrammer le uno ensuite il faut aussi que le code qui est sur la carte sd soit temporairement dans la mémoire flash du arduino pour reprogramme merci à vous . le code:
#include <Ethernet.h>
#include <SD.h>
#include <avr/boot.h>
byte macSerre[] = {0x08, 0x0E, 0x0B, 0x10, 0x50, 0x00};
IPAddress IPSerre(172,16,41,13);
EthernetServer serveurHTTP(80);
void setup() {
Ethernet.begin(macSerre, IPSerre);
serveurHTTP.begin();
Serial.begin(115200);
// Initialisation de la carte SD
if (!SD.begin(4)) {
Serial.println("Erreur lors de l'initialisation de la carte SD !");
return;
}
}
void loop() {
EthernetClient client = serveurHTTP.available();
if (client) {
if (client.connected()) {
String reception;
while (client.available()) {
char carLu = client.read();
if (carLu != 10) {
reception += carLu;
} else {
break;
}
}
Serial.println(reception);
if (reception.startsWith("GET / HTTP/1.1")) {
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println(F("Connection: close"));
client.println();
// Lecture du fichier depuis la carte SD
File fichier = SD.open("espoire.hex", FILE_READ);
if (fichier) {
while (fichier.available()) {
client.write(fichier.read());
}
fichier.close();
// Redémarrer Arduino pour activer le bootloader
delay(100);
asm volatile (" jmp 0x7E00"); // Adresse de démarrage du bootloader
} else {
Serial.println("Erreur lors de l'ouverture du fichier !");
}
}
client.stop();
}
}
}
`