Mot de passe perdu? ENREGISTREZ VOUS! Pseudo: mot de passe: Se souvenir de moi
Accueil Bricolage Débutants GlowBot Upload Faq Contact

 
Menu Principal
Membres
En ligne
17 utilisateur(s) en ligne (11 membre(s) connecté(s) sur Forum CBB)

Membre(s): 0
Invité(s): 17

Plus ...
Newsletter
Rentrez votre adresse email ci-dessous pour adhérer à la newsletter.
Diverses stats
Bienvenue à robi71

13462 membres enregistrés ( Liste )

5 fichiers en téléchargement
(4273 Downloads)

152 sites référencés
(8312 Sites Visités)

30 Forums (136224 Posts,11296 Sujets,26928502 Lectures)

- ENREGISTREZ VOUS! - Connexion

Sponsors
Document sans titre
Clio _3_180x150
Ban santé 120x90
Piste3_120x60
Sponsor
Annonceurs

   Tous les messages (vince34)

 Bas   Précédent   Suivant



Re: nuelectronics Ethernet Shield
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Pas de shield ethernet pour moi. Je suis basé sur les composants/modules ETT, dispos chez futurlec.

A mon avis, pas la peine de se prendre la tete avec des machines à états TCP. Il faut rester simple, surtout avec l'arduino et sa mémoire. just répondre aux requetes HTTP en 1 page et envoyer brut de fonderie les données en UDP.

J'oubliais: pour voir le résultat c'est là: http://thinselin.homeftp.net/secret
Et pour la commande UDP, celle ci-dessus, en changeant l'IP. Amusez-vous à changer l'état en UDP et à visualiser en HTTP :)

Avec cette adresse, vous arrivez la-dessus:
Open in new window

On voit bien le module stamp, le module ethernet, et sur la droite de la plaquette le DS1307 (avec son quartz) et DS1631.

Le tout est derrière un routeur. J'utilise le compilo winAVR (version portable sur clef USB) + AVRLib

Voila !

Posté le : 08/10/2008 14:17
Transférer la contribution vers d'autres applications Transférer


Re: nuelectronics Ethernet Shield
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Ca y est
J'y suis aussi arrivé de mon coté:
Pour le moment, j'ai un serveur HTTP sur le port 80, un serveur UDP sur le port 1201 pour savoir la version du chip, et un sur le port 1200 pour controler une sortie:

En ligne de commande pour l'UDP:

F:\Projects\udpcom\win>udpcom-XP.exe -p 1200 secr,t=? 192.168.2.26
II: data: secr,t=?, ip: 192.168.2.26 port: 1200
OK: 192.168.2.26: e=invalid_pw

F:\Projects\udpcom\win>udpcom-XP.exe -p 1201 version 192.168.2.26
II: data: version, ip: 192.168.2.26 port: 1201
OK: 192.168.2.26: ver=B4

F:\Projects\udpcom\win>udpcom-XP.exe -p 1200 secret,t=? 192.168.2.26
II: data: secret,t=?, ip: 192.168.2.26 port: 1200
OK: 192.168.2.26: t=1

F:\Projects\udpcom\win>udpcom-XP.exe -p 1200 secret,t=0 192.168.2.26
II: data: secret,t=0, ip: 192.168.2.26 port: 1200
OK: 192.168.2.26: t=0

F:\Projects\udpcom\win>udpcom-XP.exe -p 1200 secret,t=1 192.168.2.26
II: data: secret,t=1, ip: 192.168.2.26 port: 1200
OK: 192.168.2.26: t=1

F:\Projects\udpcom\win>udpcom-XP.exe -p 1200 secret,t=? 192.168.2.26
II: data: secret,t=?, ip: 192.168.2.26 port: 1200
OK: 192.168.2.26: t=1

Et sur le port 80:

Output is: ON [refresh status]

Switch off


version 2.10, tuxgraphics.org

Merci tuxgraphics pour le code !!

Moi qui pensais m'occuper de la partie ethernet plsu tard, je crois que je vais m'y mettre de suite :)

voici l'init du prog de test qui m'a aidé à debugger ce satané chipset (OK, je n'avais pas cablé le CS comme il fallait....):


INIT I2C
INIT TEMP
DS1631 initialized
DS1631 Config register: 152
DS1631_CONFIG_1SHOT: 0
DS1631_CONFIG_R0: 0
DS1631_CONFIG_R1: 1
DS1631_CONFIG_POL: 0
DS1631_CONFIG_DONE: 1
DS1631_CONFIG_TLF: 0
DS1631_CONFIG_THF: 0
DS1631_CONFIG_NVB: 1
INIT RTC
DS1307 detected
1 23/10/75 14:30:00
ENC28J60 revision: 4

Et le temps de réponse du bestiau:
F:\Projects\udpcom\win>ping 192.168.2.26

Pinging 192.168.2.26 with 32 bytes of data:

Reply from 192.168.2.26: bytes=32 time=9ms TTL=64
Reply from 192.168.2.26: bytes=32 time=9ms TTL=64
Reply from 192.168.2.26: bytes=32 time=8ms TTL=64
Reply from 192.168.2.26: bytes=32 time=8ms TTL=64

Ping statistics for 192.168.2.26:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 8ms, Maximum = 9ms, Average = 8ms

Honnete, et le tout stable depuis hier soir.
A noter la taille du code, juste avec stack TCP/UDP, I2C (RTC + temp), printf, uart :
Size after:
text data bss dec hex filename
0 16486 0 16486 4066 enc28j60tst.hex

Donc ca bouffe pas mal. Mais c'est optimisable (chaines de car en RAM, pour les tests....)


Je suis tout content

Posté le : 08/10/2008 12:32
Transférer la contribution vers d'autres applications Transférer


Re: nuelectronics Ethernet Shield
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Citation :

pseudoblogeus a écrit:
Citation :

Goldfish a écrit:
N'étant pas pro là dedans je vais peut être dire une conn.rie, mais ne vaudrait-il pas mieux que l'Arduino soit le serveur et dans ce cas là c'est une autre application installé soit en serveur local ou distant qui viendrait lire dans l'arduino pour ensuite mettre à jours les informations consultable à distance.

Notez que je suis tout ça avec intérêt .


A mon avis c'est pas le mieux.
Je m'explique.

Lorsque l'arduino agit en tant que serveur, il est passif. C'est à dire qu'il ne fait rien d'autres que de répondre aux requêtes des clients (en envoyant les pages web dans leur navigateur). Si l'on veut que les infos de l'arduino soient régulièrement mise en ligne, et que des alertes emails soient envoyés dans le cas d'un problème (exemple T° trop élevée), il faut que le client consulte régulièrement le serveur ARDUINO.
Plusieurs solutions : L'aquariophile passe son temps devant une page web en appuyant sur le bouton de mise à jour , soit il y a un script qui tourne sur un PC et qui consulte régulièrement l'ARDUINO. La seule solution que je vois c'est un script type CGI qui s'exécute a intervalle régulier sur un serveur internet. J'ai regardé un peu comment faire et d'1 ça n'a pas l'air simple, de 2 je ne suis pas certain que tout le monde disposera d'un seveur acceptant les scripts CGI.
Les désavantgaes sont :
* Automatisation des tâches difficiles
* Interface Web très pauvre (car les pages sont stockées dans l'arduino)
* Les fonctionnalités seront très limitées (envoie de mail ????)

=> ça ne me parait donc pas une très bonne idée.

Lorsque l'arduino agit en tant que client (c'est ce que j'essaye de faire en ce moment), c'est lui qui prend l'initiative d'envoyer régulièrement les infos à un serveur. Il est très facile de dire à l'arduino d'envoyer ses infos toutes les secondes, les minutes ou toutes les heures. Suffit juste de mettre une tempo.... Côté serveur distant, il ne faut pas grand chose. juste un serveur PHP. Celui-ci répond aux requêtes de l'ARDUINO en récupérant les infos et en les stockant dans l'espace mémoire du serveur. Je vous laisse imaginer la puissance de cette solution.
* Espace disque illimité (en regard de la quantité de données envoyée par l'ARDUINO)
* Une interface Web qui peut être soignée (vu que le code de la page web se trouve sur le serveur et non sur l'ARDUINO)
* des fonctionnalités intéressantes quasi immédiate (l'envoi de mail sera quelque chose d'extrêmement simple a faire en PHP, l'affichage de graphique sera facile a faire grâce a des bibliothèques PHP, securisation de l'accès , ...)

=> ça me parait être une très très très bonne idée

J'espère avoir convaincu tout le monde ....


Un mix des deux serait l'idéal. C'est du reste ce que je vais faire: une page minimaliste en "serveur" qui donne l'état de toutes les E/S + possibilité de faire on/off + envoi périodique (en UDP par exemple) des données.
Le problème du mode client tel que tu le décrit: comment l'arduino mets-t-il les E/S à jour vu qu'il ne fait qu'envoyer des infos. Il doit bien en recevoir ? don cun mode serveur est tout de même nécessaire, sans avoir a retourner de pages. L'arduino donc donc écouter sur un port TCP/UDP.

Posté le : 07/10/2008 13:25
Transférer la contribution vers d'autres applications Transférer


Re: Résumé sur le matériel et l'environnement de développement
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Citation :

pseudoblogeus a écrit:
Citation :

vince34 a écrit:
Pour la partie matérielle, je fais "bande à part".

Par contre, pour la partie CAO, je suis sous KiCAD. J'ai regardé du coté d'eagle, cadstar et autres.... trop de limitation sur les versions "light". Avec KiCAD, tout baigne. Ma V0.9 est sur le point de partir.....
la carte processeur est en double face 100x100, et le reste en simple face (puissance/alim et LCD+boutons)

Voila voila

D'ailleurs t'utilises quoi ? pas l'arduino ?

Citation :


Je pars sur une base d'ATMega128, monté sur un support DIP.
Il a assez d'E/S pour tout faire, et 128K de mémoire. J'ai pas envie de m'embeter a rajouter des circuits de partout (I2C I/O, I2C PWM, etc etc), et de me limiter en code (interface, config, etc etc....).

Posté le : 04/10/2008 16:30
Transférer la contribution vers d'autres applications Transférer


Re: Résumé sur le matériel et l'environnement de développement
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Pour la partie matérielle, je fais "bande à part".

Par contre, pour la partie CAO, je suis sous KiCAD. J'ai regardé du coté d'eagle, cadstar et autres.... trop de limitation sur les versions "light". Avec KiCAD, tout baigne. Ma V0.9 est sur le point de partir.....
la carte processeur est en double face 100x100, et le reste en simple face (puissance/alim et LCD+boutons)

Voila voila

Posté le : 29/09/2008 21:39
Transférer la contribution vers d'autres applications Transférer


Re: xxx - Interface pH et CO2
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
En partant sur du relais, que ca soit du 12/24/220 ca ne pose pas de probleme tant que la carte puissance est bien pensée: juste comme un interrupteur

Posté le : 29/09/2008 21:24
Transférer la contribution vers d'autres applications Transférer


Re: [µShark] Pulse Width Modulation
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Pour le moment, j'ai deux sorties PWM: 1 pour les LEDs normales, 1 pour le lune. Je définis la puissance (0-100) tous les 1/4 heures. Après,on peut envisager une pondération de la lune en fonction de la date de l'horloge RTC.

V.

Posté le : 29/09/2008 21:22
Transférer la contribution vers d'autres applications Transférer


Re: DS1307 RTC I2C
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Il réponds bien aux demandes I2C ton ds1307 ?

Je n'ai pas eu de problèmes avec le DS1307. J'ai d'abord utilisé le mini module d'ETT (via futurlec) et en ce moment l'échantillon gratos de maxim est sur ma plaqee d'essai avec juste son petit quartz cylindrique, acheté au magasin d'elec de ma ville.
En pull-up j'ai mis du 10K, comme sur la carte ETT.

Je suis parti d'une lib, que j'ai mise au format "AVRLib" de Pascal Stang.

le fichier .h:
#ifndef DS1307_H_
#define DS1307_H_

#define DS1307_I2C_ADDR 0xD0

#define BCD2DEC(x) ((((x >> 4) & 0x0F)*10) + (x & 0x0F))
#define DEC2BCD_HI(x) ((x)/10)
#define DEC2BCD_LO(x) ((x)%10)
#define DEC2BCD(x) (((DEC2BCD_HI(x)) << 4) + (DEC2BCD_LO(x)))

typedef struct {
u08 sec ;
u08 min ;
u08 hr ;
u08 day ;
u08 dat ;
u08 mon ;
u08 yr ;
} time_t;

char ds1307_settime(u08 i2cAddr,time_t time);
char ds1307_gettime(u08 i2cAddr,time_t* time);

char ds1307_enable(u08 i2cAddr);
char ds1307_disable(u08 i2cAddr);

char ds1307_24hmode(u08 i2cAddr);
char ds1307_12hmode(u08 i2cAddr);
// 1 means 12 hours mode
// 0 means 24 hours mode
char ds1307_get1224mode(u08 i2cAddr);

#endif /*DS1307_H_*/

Le .c:
/*! \file ds1307.c \brief Dallas DS1307 RTC Driver Library. */
//*****************************************************************************
//
// File Name : 'ds1307.c'
// Title : Dallas DS1307 RTC Driver Library
// Author :
// Created :
// Revised :
// Version : 0.1
// Target MCU : Atmel AVR Series
//
//*****************************************************************************

#include <avr/io.h>
#include <avr/interrupt.h>

#include "global.h"
#include "timer128.h"
#include "i2c.h"
#include "ds1307.h"
#include "rprintf.h"

char ds1307_settime(u08 i2cAddr, time_t time) {
u08 retval= I2C_OK;
uint8_t msgbuf[8];

msgbuf[0] = 0x00; // start address
msgbuf[1] = DEC2BCD(time.sec);
msgbuf[2] = DEC2BCD(time.min);
msgbuf[3] = DEC2BCD(time.hr);
msgbuf[4] = DEC2BCD(time.day);
msgbuf[5] = DEC2BCD(time.dat);
msgbuf[6] = DEC2BCD(time.mon);
msgbuf[7] = DEC2BCD(time.yr);
/*
rprintf("SET sec:%d secBCD:%d\n",time.sec,DEC2BCD(time.sec));
rprintf("SET min:%d minBCD:%d\n",time.min,DEC2BCD(time.min));
rprintf("SET hr :%d hrBCD :%d\n",time.hr,DEC2BCD(time.hr));
rprintf("SET day:%d dayBCD:%d\n",time.day,DEC2BCD(time.day));
rprintf("SET dat:%d datBCD:%d\n",time.dat,DEC2BCD(time.dat));
rprintf("SET mon:%d monBCD:%d\n",time.mon,DEC2BCD(time.mon));
rprintf("SET yr :%d yrBCD :%d\n",time.yr,DEC2BCD(time.yr));
*/
retval=i2cMasterSendNI(i2cAddr, 8, msgbuf);
if (retval == I2C_OK) {
return true;
} else {//I2C_ERROR_NODEV
return false;
}
}

char ds1307_gettime(u08 i2cAddr, time_t* time) {

uint8_t msgbuf[7];
u08 retval= I2C_OK;

// send the "set position"
msgbuf[0]=0x00;
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the results
retval=i2cMasterReceiveNI(i2cAddr, 7, msgbuf);
/*
rprintf("\nDS1307 GET BCDsec :%d sec :%d\n",msgbuf[0],BCD2DEC(msgbuf[0]));
rprintf("DS1307 GET BCDmin :%d min :%d\n",msgbuf[1],BCD2DEC(msgbuf[1]));
rprintf("DS1307 GET BCDhr :%d hr :%d\n",msgbuf[2],BCD2DEC(msgbuf[2]));
rprintf("DS1307 GET BCDday :%d day :%d\n",msgbuf[3],BCD2DEC(msgbuf[3]));
rprintf("DS1307 GET BCDdate:%d date :%d\n",msgbuf[4],BCD2DEC(msgbuf[4]));
rprintf("DS1307 GET BCDmon :%d mon :%d\n",msgbuf[5],BCD2DEC(msgbuf[5]));
rprintf("DS1307 GET BCDyr :%d yr :%d\n",msgbuf[6],BCD2DEC(msgbuf[6]));
*/
time->sec = BCD2DEC (msgbuf[0]);
time->min = BCD2DEC (msgbuf[1]);
time->hr = BCD2DEC (msgbuf[2]);
time->day = BCD2DEC (msgbuf[3]);
time->dat = BCD2DEC (msgbuf[4]);
time->mon = BCD2DEC (msgbuf[5]);
time->yr = BCD2DEC (msgbuf[6]);

if (retval == I2C_OK) {
return true;
} else {//I2C_ERROR_NODEV
return false;
}
}

char ds1307_enable(u08 i2cAddr) {

u08 retval= I2C_OK;
uint8_t msgbuf[2];
msgbuf[0]=0x00;
// set the position register
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the secs field, contains the CH bit
retval=i2cMasterReceiveNI(i2cAddr, 1, msgbuf);

// Write new value to 0x00 only if needed
if ( !(msgbuf[0] & _BV(7)) ){
msgbuf[1]=msgbuf[0];
//rprintf("DS1307 already enabled:%d\n",msgbuf[1]);
}
else{
msgbuf[1] = msgbuf[0] &~_BV(7);
//rprintf("DS1307 needs to be enabled:%d\n",msgbuf[1]);
}
msgbuf[0]=0x00;
retval=i2cMasterSendNI(i2cAddr, 2, msgbuf);
if (retval == I2C_OK) {
return true;
} else {//I2C_ERROR_NODEV
return false;
}
}

char ds1307_disable(u08 i2cAddr) {

u08 retval= I2C_OK;
uint8_t msgbuf[2];

// Get the existing conf
msgbuf[0]=0x00;
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the secs field, contains the CH bit
retval=i2cMasterReceiveNI(i2cAddr, 1, msgbuf);

// Write new value to 0x00
msgbuf[1] = msgbuf[0] | _BV(7);
msgbuf[0]=0x00;
retval=i2cMasterSendNI(i2cAddr, 2, msgbuf);

if (retval == I2C_OK) {
return true;
} else {//I2C_ERROR_NODEV
return false;
}}

char ds1307_24hmode(u08 i2cAddr){
u08 retval= I2C_OK;
uint8_t msgbuf[2];

// set the position register
msgbuf[0]=0x02;
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the hours field, contains the 12/24 bit (6th bit in register)
retval=i2cMasterReceiveNI(i2cAddr, 1, msgbuf);
// Write new value to 0x02 : clear bit 6
msgbuf[1] = msgbuf[0] &~( ( 1 ) << 6);
msgbuf[0]=0x02;
//rprintf("Sending 24h mode byte %d\n",msgbuf[1]);
retval=i2cMasterSendNI(i2cAddr, 2, msgbuf);
if (retval == I2C_OK) {
return true;
}
else {//I2C_ERROR_NODEV
return false;
}
}

char ds1307_12hmode(u08 i2cAddr){
u08 retval= I2C_OK;
uint8_t msgbuf[2];

// set the position register
msgbuf[0]=0x02;
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the hours field, contains the 12/24 bit (6th bit in register)
retval=i2cMasterReceiveNI(i2cAddr, 1, msgbuf);
// Write new value to 0x02: set bit 6
msgbuf[1] = msgbuf[0] | ( 1 ) << 6;
msgbuf[0]=0x02;
//rprintf("Sending 12h mode byte %d\n",msgbuf[1]);
retval=i2cMasterSendNI(i2cAddr, 2, msgbuf);
if (retval == I2C_OK) {
return true;
}
else {//I2C_ERROR_NODEV
return false;
}
}


// 1 means 12 hours mode
// 0 means 24 hours mode
char ds1307_get1224mode(u08 i2cAddr){

u08 retval= I2C_OK;
uint8_t msgbuf[2];

// set the position register
msgbuf[0]=0x02;
retval=i2cMasterSendNI(i2cAddr, 1, msgbuf);
// read the hours field, contains the 12/24 bit (6th bit in register)
retval=i2cMasterReceiveNI(i2cAddr, 1, msgbuf);
return msgbuf[0]&_BV(6);
}



Et pour finir, l'init de l'automate:

void ds1307start(void) {
time_t time;
if (ds1307_enable(DS1307_I2C_ADDR)) {
time = ds1307update();
ds1307_24hmode(DS1307_I2C_ADDR);
#ifdef DEBUG_TIME
rprintf ("Mode: %d\n",ds1307_get1224mode(DS1307_I2C_ADDR));
#endif
ds1307_settime(DS1307_I2C_ADDR, time);
rprintfProgStr(PSTR("DS1307 detected"));
rprintfCRLF();
} else {
rprintfProgStr(PSTR("Cannot detect DS1307 !"));
rprintfCRLF();
return;
}
}

Je peut pas faire plus. En ce moment je me prends la tete sur la partie ethernet et je suis dans le

Posté le : 29/09/2008 21:14
Transférer la contribution vers d'autres applications Transférer


Re: nuelectronics Ethernet Shield
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Ce que tu peut faire, c'est router un port (et non une IP) vers une IP locale. Tu n'es joignable que sur ton @IP publique, qui est accrochée à ton routeur, sur son coté externe. En interne tu es dans une zone privée (192.168.xxx.yyy ou 10.xxx.yyy.zzz).
Ce qu tu peut dire à ta box (je connais pas la 9box, je susi free), c'est: si tu recois une requete sur le port 8092 alors, fait suivre cette requete sur le réseau interne à l'adresse 192.168.1.2
C'est du "port forwarding" pour les anglophones.

Autre solution plus violente: l'option DMZ (si elle existe): tout traffic entrant est renvoyé vers l'adresse IP privée que tu veux.... ca peut servir pour etre sur que le problème ne vient pas des ports utilisés.

a+

Posté le : 18/09/2008 16:34
Transférer la contribution vers d'autres applications Transférer


Re: nuelectronics Ethernet Shield
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
L'adresse MAC n'est utilisée que pour les connexions "locales"
. L'adresse MAC de ton PC / shield ethernet ne sort jamais de chez toi. C'est celle de ton routeur qui se ballade jusqu'au routeur suivant, etc etc.....

Bref. Pour ce qui est de l'envoi de mail, il faut causer le protocole SMTP avec le serveur en face , avec ses variantes sécurisées, selon le fournisseur en face. Les serveurs SMTP ont des @IP fixes (smrp.free.fr, smtp.gmail.com, ...) donc codables en dur (ou mieux, en eeprom). Donc pas de soucis. Le problème avec SMTP, et autres, c'est la place en mémoire du code pour gérer tout ça ! L'arduino est assez limité (et le Mega128 sur lequel je travaille aussi..... c'est pour dire).

Mon orientation: l'automate envoi en UDP brut de fonderie des messages en broadcast (à tout le monde) sur le réseau local. Chaque machine du réseau (un PC, un NAS, un autre autoamte) peut alors écouter et faire ce qu'il veut: envoyer un mail, archiver els données, etc etc....

Mon rêve: un automate qui réponde aux requetes SNMP (protocole utilisé pour interroger un équipement sur son état actuel. Très utilisé pour surveiller des équipemetns réseau/télécom.... voir résultats avec mrtg, cacti, .....). Mais la aussi il faut implémenter le SNMP. Microchip donne un exemple pour son ENC28J60 sur lequel je me base, mais bon. On va commencer soft avec le broadcst UDP....

En ce moment, je bosse sur mes PCB:
- Un principal avec le µP, la partie pH, et des connecteurs vers els autres cartes (double face, 95mm*95mm)
- Un qui suporte LCD + boutons (simple face)
- Un qui supporte les relais + alims (+5,-5,+12) en simple face

Je vérifie tout, j'adapte aux composants que j'ai en stock, j'optimise encore un peu le placement/routage et j'envoi la fabrication du proto 1 !!

A+

Posté le : 18/09/2008 16:26
Transférer la contribution vers d'autres applications Transférer


Re: Proto
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Il s'agit d'un forum electronique pour les automates gérant les bacs, donc je suis bien ou il faut ! Il ne s'agit ni de l'automate a base d'arduino, ni du glowbit. Juste de mon automate en cours de réalisation.

Concernant Proteus, je ne l'ai pas essayé. J'ai regardé du coté d'Eagle et de CadStar mais la version "light" est trop limitée (taille PCB pour eagle, nbr de composants/trous pour cadstar). KiCAD est gratuit et sans limites (GPL) et possède de nombreuses librairies. Seul l'autorouteur est moyen (je fasi mieux que lui en simple-face). Ayant totu fait sosu KiCAD je n'en changerai pas maintenant. Peut-etre pour un autre projet... à voir.


A+

Posté le : 08/09/2008 09:31
Transférer la contribution vers d'autres applications Transférer


Proto
Aspirant
Inscrit:
03/03/2008 14:16
De 34130
Groupe :
Utilisateurs enregistrés
Automaticien
Messages: 95
Niveau : 8
HP : 0 / 193
MP : 31 / 3754
EXP : 73
Hors Ligne
Bonjour !

Bon, marre de faire du C .... :)
Je fais mes premiers pas avec KiCAD et c'est assez rigolo. Voici mes premiers résultats. L'autorouteur est nul en simple-face. A la mano ca le fait bien. Par contre, sur le double-face c'est OK.
Il me reste à faire un belle alim +5/-5 : des suggestions ?
Vous voyez des problèmes potentiels sur le design ?

Pour réaliser les PCB double-face, idéalement trou métal, vous faites ca chez qui ?

V.

Attacher un fichier:


zip Boards.zip Taille: 162.77 KB; Hits: 225

Posté le : 07/09/2008 13:45
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 2 (3) 4 5 6 ... 8 »




AquaSquale.com © 2004 - Pascal Coulougnon - Déclaré auprès de la Cnil sous le n°1028419
Http://www.aquasquale.com>