ENC28J60 & requète GET

Bijour
Je me tourne vers vous suite à un problème que je n’arrive pas résoudre, je voudrai enregistrer des valeurs dans une bdd mysql en passant par un script php

Le coté mysql/php marche trés bien, et le problème et que je n’arrive pas à envoyer les valeurs du coté “ENC28J60” arduino.

L’arduino est bien connecté à mon réseau (quand je ping j’ai une réponse) mais rien n’est envoyé au serveur apache

Voici le script c (dans cet exemple j’ai utilisé une valeur de 69.69 pour testé)

#include <EtherCard.h>

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)


byte mymac[] = { 0x74,0x69,0x69,0x2D,0x31,0x31 };
static byte myip[] = { 192,168,2,233 };
static byte gwip[] = { 192,168,2,1 };

char website[] PROGMEM = "192.168.2.211";

static uint32_t timer;
byte Ethernet::buffer[700];


static void my_callback (byte status, word off, word len) {
  Serial.println(">>>");
  Ethernet::buffer[off+300] = 0;
  Serial.print((const char*) Ethernet::buffer + off);
  Serial.println("...");
}

void setup ()
{
    Serial.begin(57600);    
    
    if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) 
    Serial.println( "Failed to access Ethernet controller");
    
    
    ether.staticSetup(myip);
}

void loop () {
ether.packetLoop(ether.packetReceive());

	if (millis() > timer) {
	    timer = millis() + 5000;
		Serial.println();
	    Serial.print("<<< REQ ");
		ether.browseUrl(PSTR("/add.php?"), "dht11temp=69.69", website, my_callback);
	}	
}

Merci

Salut,

Rien dans ton log ?

B@tto: Salut,

Rien dans ton log ?

Le log apache ?

Yes

B@tto: Yes

J'ai vérifié, aucun accès et aucune erreur, ce qui veut dire qu'un ou plusieurs paramètre sont faux

Hello aucune piste ?

Quand tu dis que tu ping, c'est depuis l'Arduino ou d'un autre accès ?

B@tto: Quand tu dis que tu ping, c'est depuis l'Arduino ou d'un autre accès ?

Depuis le pc, ce qui veut dire que l'arduino est connecté au réseau local

Et en console série tu obtiens quoi ?

La réponse de cette lige

B@tto:
Et en console série tu obtiens quoi ?

La réponse de cette ligne
Serial.print("<<< REQ ");

Je serai toi je ferais un diag complet en reprenant d’autres code, en particulier l’attribution de l’IP. Tu es sûr de vouloir fonctionner en IP statique ?

B@tto: Je serai toi je ferais un diag complet en reprenant d'autres code, en particulier l'attribution de l'IP. Tu es sûr de vouloir fonctionner en IP statique ?

je crois que tout est ok sauf cette ligne :

ether.browseUrl(PSTR("/add.php?"), "dht11temp=69.69", website, my_callback);

T'as essayé de pas mettre en flash website ?

B@tto:
T’as essayé de pas mettre en flash website ?

flash website ? c-a-d ?

J’ai refais un autre test avec une autre librairie en utilisant le code de ce tuto ici

voici mon code

#include <UIPEthernet.h> // Used for Ethernet

// **** ETHERNET SETTING ****
// Arduino Uno pins: 10 = CS, 11 = MOSI, 12 = MISO, 13 = SCK
// Ethernet MAC address - must be unique on your network - MAC Reads T4A001 in hex (unique in your network)
byte mac[] = { 0x73,0x69,0x69,0x2D,0x31,0x31 };                                      
IPAddress myIP(192,168,2,217);

EthernetClient client;
char server[] = "192.168.2.211"; // IP Adres (or name) of server to dump data to
int  interval = 5000; // Wait between dumps

void setup() {

	Serial.begin(9600);
	Ethernet.begin(mac, myIP);

	Serial.print("IP Address        : ");
	Serial.println(Ethernet.localIP());
	Serial.print("Subnet Mask       : ");
	Serial.println(Ethernet.subnetMask());
	Serial.print("Default Gateway IP: ");
	Serial.println(Ethernet.gatewayIP());
	Serial.print("DNS Server IP     : ");
	Serial.println(Ethernet.dnsServerIP());
}

void loop() {

  if (client.connect(server, 80)) {
	  	Serial.println("-> Connected");

	    client.print( "GET /add.php?");
	    client.print("dht11temp=56.78");
	    client.println( " HTTP/1.1");
	    client.print( "Host: " );
	    client.println(server);
	    client.println( "Connection: close" );
	    client.println();
	    client.println();
	    client.stop();
	}else{
	    // you didn't get a connection to the server:
	    Serial.println("--> connection failed/n");
	}

delay(interval);
}

en série j’ai un retour sur l’ip gateway ect et quand je ping l’ip de l’arduino j’ai un retour ce qui veut dire qu’il est connecté

ça bloque au niveau de cette ligne
if (client.connect(server, 80)) {
server et l’adresse de mon apache RPi
j’ai aussi consulté les logs apache, aucun accès venant de l’arduino, je suis vraiment perdus …

T'es sûr de l'ip de ton serv ?

B@tto: T'es sûr de l'ip de ton serv ?

oui, voici le lien complet de test http://192.168.2.211/add.php?dht11temp=22.22

Hello
J’ai finalement trouvé après une semaine de casse tête. fallait supprimer les anciennes librairies ethernet et ajouter la librairie <SPI.h> au code.