
[RESOLU] SerialPort et WiFi
Re: SerialPort et WiFi
Faut que tu regardes la doc de ton shield , ca dois pas être bien compliqué, après si tu m'en payes un , je t'aiderais bien mieux 

Re: SerialPort et WiFi
Au niveau de la Doc, j'ai déjà regardé et c'est vraiment très léger : UserManuel Schematic Datasheet
Ils disent simplement que c'est compatible avec "Asynclab wifi shield!"
...
Je suis donc toujours bloqué sur ce problème. Je ne sais pas comment dire à la Arduino de se connecter à mon serveur j'ai pourtant fouiller le Web ...
Ils disent simplement que c'est compatible avec "Asynclab wifi shield!"

Je suis donc toujours bloqué sur ce problème. Je ne sais pas comment dire à la Arduino de se connecter à mon serveur j'ai pourtant fouiller le Web ...

Windows 7 Ultimate 64-Bit | Intel Core i5 CPU 750 @ 2.67GHz | 4,0 GB RAM | Sapphire Vapor-X ATI Radeon HD 4890 | 2,5 TeraOctet 7200 RPM
Re: SerialPort et WiFi
Bon, j'ai un peu avancé mais vu que j'y ai passé la journée autant dire que j'ai quasiment perdu mon temps ...
Tout d'abord, j'ai réussi à connecter le Shield à mon WiFi, elle répond d'ailleurs à la commande Ping dans la CMD donc c'est bon
Cependant, il est a priori impossible de choisir la Arduino comme client et de la connecter à un serveur placer sur PC
J'ai donc créé un serveur sur la Arduino qui génère une page HTML à cette adresse : http://192.168.0.84. Pour tester le serveur j'ai essayé d'allumer la LED placer sur la Arduino (Pin 13) en placant 2 liens sur la page HTML : ON et OFF qui permette l'envoi de la requête qui éteint et allume la LED.
Voici le code du serveur Arduino :
Mais tout ça c'est en théorie ! Et oui, ça ne marche pas sinon ça ne serait pas marant
Alors comment expliquer ce qui se passe ... Lors de l'appui d'un des liens ON ou OFF, la LED 13 scintille très très très faiblement pendant 1 petite seconde puis plus rien
Une idée ?
En tout cas, je pense que cette solution ne sera pas bonne car commander une petite voiture via des requettes HTML c'est pas top
De plus, j'ai vu sur pas mal de code source de drone Arduino les commandes WiFi.init() et WiFi.run() apparaître. Qu'est que c'est que ces commandes ? Impossible de trouver de mon coté. Un exemple pour illustrer mes propos : Tiny Robot Wifi D'après ce que j'en ai compris, c'est un SocketApp mais je ne comprends pas comment cela fonctionne
Voici un des codes source disponible en bas du lien : (Je ne vois pas où les transitions WiFi sont effectuées ...)
Merci d'avoir pris le temps de lire et merci d'avance si vous pouvez m'aider 

Tout d'abord, j'ai réussi à connecter le Shield à mon WiFi, elle répond d'ailleurs à la commande Ping dans la CMD donc c'est bon



J'ai donc créé un serveur sur la Arduino qui génère une page HTML à cette adresse : http://192.168.0.84. Pour tester le serveur j'ai essayé d'allumer la LED placer sur la Arduino (Pin 13) en placant 2 liens sur la page HTML : ON et OFF qui permette l'envoi de la requête qui éteint et allume la LED.
Voici le code du serveur Arduino :
Code : Tout sélectionner
/*
* A simple sketch that uses WiServer to serve a web page
*/
#include <WiServer.h>
#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2
// Wireless configuration parameters ----------------------------------------
unsigned char local_ip[] = {
192,168,0,84}; // IP address of WiShield
unsigned char gateway_ip[] = {
192,168,0,254}; // router or gateway IP address
unsigned char subnet_mask[] = {
255,255,255,0}; // subnet mask for the local network
const prog_char ssid[] PROGMEM = {
"JPPW"}; // max 32 bytes
unsigned char security_type = 2; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2
// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {
"0123456789"}; // max 64 characters
// WEP 128-bit keys
// sample HEX keys
prog_uchar wep_keys[] PROGMEM = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3
};
// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi device
unsigned char wireless_mode = WIRELESS_MODE_INFRA;
unsigned char ssid_len;
unsigned char security_passphrase_len;
// End of wireless configuration parameters ----------------------------------------
// This is our page serving function that generates web pages
boolean sendMyPage(char* URL) {
// Check if the requested URL matches "/"
if (strcmp(URL, "/") == 0) {
// Use WiServer's print and println functions to write out the page content
links ();
// URL was recognized
return true;
}
else if (strcmp(URL, "/on") == 0) {
digitalWrite(13, HIGH); // turn Left on
links ();
// URL was recognized
return true;
}
else if (strcmp(URL, "/off") == 0) {
digitalWrite(13, LOW); // turn Right on
links ();
// URL was recognized
return true;
}
// URL not found
return false;
}
void links () {
WiServer.print("<html>");
WiServer.print("<center>[ <a href=\"/on\">ON</a> ]<br />");
WiServer.print("[ <a href=\"/off\">OFF</a> ]</center>");
WiServer.print("</html>");
}
void setup() {
// Initialize WiServer and have it use the sendMyPage function to serve pages
WiServer.init(sendMyPage);
pinMode(13, OUTPUT);
// Enable Serial output and ask WiServer to generate log messages (optional)
Serial.begin(57600);
WiServer.enableVerboseMode(true);
}
void loop(){
// Run WiServer
WiServer.server_task();
}



Une idée ?
En tout cas, je pense que cette solution ne sera pas bonne car commander une petite voiture via des requettes HTML c'est pas top

De plus, j'ai vu sur pas mal de code source de drone Arduino les commandes WiFi.init() et WiFi.run() apparaître. Qu'est que c'est que ces commandes ? Impossible de trouver de mon coté. Un exemple pour illustrer mes propos : Tiny Robot Wifi D'après ce que j'en ai compris, c'est un SocketApp mais je ne comprends pas comment cela fonctionne

Voici un des codes source disponible en bas du lien : (Je ne vois pas où les transitions WiFi sont effectuées ...)
Code : Tout sélectionner
// Tiny Robot Wifi Control Program
// November 9th, 2009
// Robert Svec
#include <WiShield.h>
#include <Servo.h>
#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2
Servo LeftServo;
Servo RightServo;
Servo IRServo;
unsigned char local_ip[] = {192,168,1,220};
unsigned char gateway_ip[] = {192,168,1,1};
unsigned char subnet_mask[] = {255,255,255,0};
const prog_char ssid[] PROGMEM = {"Airwavers"};
unsigned char security_type = 3; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2
const prog_char security_passphrase[] PROGMEM = {"testwpakey"};
prog_uchar wep_keys[] PROGMEM = {};
unsigned char wireless_mode = WIRELESS_MODE_INFRA;
unsigned char ssid_len;
unsigned char security_passphrase_len;
char mybuff[20], sendbuff;
int myintbuff, objdist1, objdist2, objdist3;
void setup()
{
WiFi.init();
LeftServo.attach(5);
RightServo.attach(6);
IRServo.attach(7);
RightServo.write(90);
delay(20);
LeftServo.write(90);
delay(20);
IRServo.write(100);
delay(20);
myintbuff = 0;
Serial.begin(9600);
}
void loop()
{
WiFi.run();
myintbuff = atoi(mybuff);
if (myintbuff == 1)
{
MoveForward();
mybuff[0] = '9';
}
if (myintbuff == 2)
{
TurnLeft();
mybuff[0] = '9';
}
if (myintbuff == 3)
{
TurnRight();
mybuff[0] = '9';
}
if (myintbuff == 4)
{
MoveBackward();
mybuff[0] = '9';
}
if (myintbuff == 5)
{
AutoRoam();
mybuff[0] = '9';
}
if (myintbuff == 6)
{
IRLeft();
mybuff[0] = '9';
}
if (myintbuff == 7)
{
IRRight();
mybuff[0] = '9';
}
if (myintbuff == 8)
{
IRFront();
mybuff[0] = '9';
}
else
{
LeftServo.write(90);
RightServo.write(90);
}
// objdist1 = analogRead(0);
// sendbuff = char(objdist1);
}
// ==========================
// ===== AUTO ROAMING =====
// ==========================
void AutoRoam()
{
for (int i = 1; i < 20; i++)
{
objdist1 = analogRead(0);
if (objdist1 <= 400)
{
MoveForward();
delay(200);
}
else
{
IRLeft();
objdist2 = analogRead(0);
delay(200);
IRFront();
IRRight();
objdist3 = analogRead(0);
delay(200);
IRFront();
if (objdist2 < objdist3)
{
TurnLeft();
}
if (objdist3 <objdist2)
{
TurnRight();
}
if (objdist2 == objdist3)
{
MoveBackward();
TurnRight();
TurnRight();
TurnRight();
TurnRight();
}
}
}
}
// =================================
// ===== MOTOR SERVO CONTROL =====
// =================================
void TurnLeft()
{
LeftServo.write(0);
RightServo.write(0);
delay(500);
// LeftServo.write(90);
// RightServo.write(90);
}
void TurnRight()
{
LeftServo.write(180);
RightServo.write(180);
delay(500);
// LeftServo.write(90);
// RightServo.write(90);
}
void MoveForward()
{
LeftServo.write(180);
RightServo.write(0);
delay(500);
// LeftServo.write(90);
// RightServo.write(90);
}
void MoveBackward()
{
LeftServo.write(0);
RightServo.write(180);
delay(300);
// LeftServo.write(90);
// RightServo.write(90);
}
// ======================================
// ===== INFRARED SERVO CONTROL =====
// ======================================
void IRRight()
{
// IR Right
IRServo.write(30);
delay(200);
}
void IRFront()
{
// IR Front
IRServo.write(100);
delay(200);
}
void IRLeft()
{
// IR Left
IRServo.write(170);
delay(200);
}

Windows 7 Ultimate 64-Bit | Intel Core i5 CPU 750 @ 2.67GHz | 4,0 GB RAM | Sapphire Vapor-X ATI Radeon HD 4890 | 2,5 TeraOctet 7200 RPM
Re: SerialPort et WiFi
A cause de vous je vais pas beaucoup dormir, j'ai eu le malheur d'aller feuilleter ce site. Et de fil en aiguille il est bientôt 3h..
C'est juste passionnant. un rêve de gosse aussi ça, créer une machine, la piloter et lui faire adopter des comportements.

C'est juste passionnant. un rêve de gosse aussi ça, créer une machine, la piloter et lui faire adopter des comportements.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: SerialPort et WiFi
Désolé
Mais comme tu dis pour l'instant ce n'est qu'un reve. Je suis toujours bloqué
Je pense que la solution serait de faire un SocketApp qui permet de communiquer entre 2 appareils branchés sur un même réseau. L'inconvénient c'est que je n'arrive pas à comprendre son fonctionnement surtout qu'il est question de "Buffer" et que je ne sais pas concrètement ce que c'est mis à part une "zone" mémoire.


Windows 7 Ultimate 64-Bit | Intel Core i5 CPU 750 @ 2.67GHz | 4,0 GB RAM | Sapphire Vapor-X ATI Radeon HD 4890 | 2,5 TeraOctet 7200 RPM