Client d’Arduino Internet (2 / 10 étapes)

Étape 2: Code

Qu’une seule bibliothèque supplémentaire doit être installé dans votre dossier de bibliothèques d’Arduino. C’est la bibliothèque disponible à http://www.pjrc.com/teensy/td_libs_Time.html

Vous aurez besoin de l’adresse mac du fond de votre bouclier Ethernet, mais l’IP, masque de sous-réseau et de passerelle sont tous obtenus throgh DHCP. Vous aurez également besoin de l’adresse de serveur de temps (voir étape suivante)

Le code qui doit être téléchargé sur votre Arduino est comme suit :

exemple de code est née à http://www.openreefs.com/ntpServer
modifié par Steve Spence, http://arduinotronics.blogspot.com

#include < SPI.h >
#include < Ethernet.h >
#include < EthernetUdp.h >
#include < Time.h >

/ * *** Paramètres carte Ethernet *** * /
Cela défini sur votre Mac adresse de la carte Ethernet
la mac de Byte [] = {0x90, 0xA2, 0xDA, 0 x 00, 0 x 23, 0 x 36} ;

/ * *** Les paramètres du serveur NTP *** * /
/ * us.pool.ntp.org le serveur NTP
(Définie sur votre serveur de temps de choix) * /
Adresse IP serveur temporel (216, 23, 247, 62) ;

/ * Mettre sur le décalage (en secondes) à votre heure locale
Cet exemple est GMT - 4 * /
const long timeZoneOffset =-14400 L ;

/ * Synchronisation au serveur NTP toutes les 15 secondes pour le test,
1 heure ou plus pour être raisonnable la valeur * /
unsigned int ntpSyncTime = 3600 ;

/ * MODIFIER CES VARIABLES À VOS PROPRES RISQUES * /
port local pour écouter les paquets UDP
unsigned int localPort = 8888 ;
Horodatage NTP est dans les 48 premiers octets du message
const int NTP_PACKET_SIZE = 48 ;
Tampon pour maintenir les paquets entrants et sortants
packetBuffer Byte [NTP_PACKET_SIZE] ;
Une instance UDP pour nous faire envoyer et recevoir des paquets UDP
EthernetUDP Udp ;
Assure le suivi des depuis combien de temps nous avons mis à jour le serveur NTP
unsigned long ntpLastUpdate = 0 ;
Vérifier la dernière horloge affichée (pas en Production)
time_t prevDisplay = 0 ;

void setup() {}
Serial.Begin(9600) ;

Bouclier Ethernet et configuration NTP
int i = 0 ;
int DHCP = 0 ;
DHCP = Ethernet.begin(mac) ;
Essayez d’obtenir les paramètres dhcp 30 fois avant d’abandonner
tandis que (DHCP == 0 & & j’ai < 30) {}
Delay(1000) ;
DHCP = Ethernet.begin(mac) ;
i ++ ;
}
if (!. DHCP) {}
Serial.println ("DHCP a échoué") ;
for(;;) ; //Infinite boucle car DHCP a échoué
}
Serial.println ("DHCP succès") ;

Essayez d’obtenir la date et l’heure
trys int = 0 ;
while(!getTimeAndDate() & & trys < 10) {}
trys ++ ;
}
}

Ne modifiez pas cette fonction, il est utilisé par le système
int getTimeAndDate() {}
drapeau de l’int = 0 ;
UDP.Begin(localPort) ;
sendNTPpacket(timeServer) ;
Delay(1000) ;
Si (Udp.parsePacket()) {}
UDP.Read(packetBuffer,NTP_PACKET_SIZE) ;  lire le paquet dans la mémoire tampon
unsigned long highWord, lowWord, époque ;
highWord = mot (packetBuffer [40], packetBuffer[41]) ;
lowWord = mot (packetBuffer [42], packetBuffer[43]) ;
EPOCH = highWord << 16 | lowWord ;
EPOCH = époque - 2208988800 + timeZoneOffset ;
drapeau = 1 ;
setTime(epoch) ;
ntpLastUpdate = now() ;
}
retour de drapeau ;
}

Ne modifiez pas cette fonction, il est utilisé par le système
sendNTPpacket long non signé (IPAddress & adresse)
{
memset (packetBuffer, 0, NTP_PACKET_SIZE) ;
packetBuffer [0] = 0b11100011 ;
packetBuffer [1] = 0 ;
packetBuffer [2] = 6 ;
packetBuffer [3] = 0xEC ;
packetBuffer [12] = 49 ;
packetBuffer [13] = 0x4E ;
packetBuffer [14] = 49 ;
packetBuffer [15] = 52 ;
Udp.beginPacket (adresse, 123) ;
UDP.Write(packetBuffer,NTP_PACKET_SIZE) ;
Udp.endPacket() ;
}

Affichage de l’heure de l’heure et la date (base)
void clockDisplay() {}
Serial.Print(Hour()) ;
printDigits(minute()) ;
printDigits(second()) ;
Serial.Print("") ;
Serial.Print(Day()) ;
Serial.Print("") ;
Serial.Print(month()) ;
Serial.Print("") ;
Serial.Print(Year()) ;
Serial.println() ;
}

Fonction utilitaire d’affichage de l’horloge : tirages précédents du côlon et menant 0
void printDigits (int chiffres) {}
Serial.Print(":") ;
if(digits < 10)
Serial.Print('0') ;
Serial.Print(digits) ;
}

C’est là toute la magie opère...
void loop() {}
Mettre à jour l’heure via un serveur NTP aussi souvent que le délai défini au sommet
Si (maintenant ()-ntpLastUpdate > ntpSyncTime) {}
trys int = 0 ;
while(!getTimeAndDate() & & trys < 10) {}
trys ++ ;
}
if(trys<10) {}
Serial.println ("ntp serveur mise à jour succès") ;
}
else {}
Serial.println ("ntp serveur mise à jour a échoué") ;
}
}

Afficher l’heure si elle a changé de plus d’une seconde.
Si (maintenant()! = prevDisplay) {}
prevDisplay = now() ;
clockDisplay() ;
}
}

Articles Liés

Meilleur moyen de connecter l’arduino à internet

Meilleur moyen de connecter l’arduino à internet

Meilleur moyen de connecter l'Arduino à internetShields ici coûteux ! et cela me dérange beaucoup. Il est impossible de construire votre propre système d'automatisation sans boucliers.J'ai trouvé quelques articles sur internet, mais pour ma malchance
L’Arduino Internet Gizmo

L’Arduino Internet Gizmo

The Arduino Internet Gizmo est un périphérique USB, Arduino et RFID pour surfer sur le web.  Le truc fonctionne en plaçant une balise RFID sur le dessus du gizmo.  Le gizmo lit le tag RFID et envoie le numéro de balise via le port USB à un programme
Arduino Internet (sans Wifi bouclier)

Arduino Internet (sans Wifi bouclier)

dans ce instructable je vais vous montrer comment connecter votre arduino à l'internet, il existe plusieurs façons de le faire. On utiliser un bouclier Ethernet mais sa filaire et pas très convinent à utiliser, le deuxième est le wifi c'est peut-être
Lampe de bureau contrôlée d’Arduino Internet

Lampe de bureau contrôlée d’Arduino Internet

il s'agit d'un petit projet que j'ai fait pour contrôler ma lampe de bureau sur internet.Étape 1: Ce que vous aurez besoinUn web-serveur linux avec PHP, un arduino, un relais et quelques autres composants.Étape 2: Télécharger votre code à l'arduinoTé
Client WiFi Arduino NFC

Client WiFi Arduino NFC

La semaine dernière j'ai fait une marmite à pression longue de 10 jours, nous avions besoin d'un module NFC Wifi Client pour un système d'enregistrement pour cette cuisinière. Mais quand j'ai commencé il y avait un problème, le bouclier wifi et un mo
Comment : connecter votre Arduino à Internet comme un serveur Web

Comment : connecter votre Arduino à Internet comme un serveur Web

The INTERNET OF THINGS... < file d'attente éclairs et le tonnerre >C'est ce que tous les enfants cool font ces jours-ci. Pourquoi est-ce qu'ils devraient avoir tout le plaisir ? Nous allons configurer un Arduino comme un serveur Web que n'importe qu
Arduino Internet contrôlé de Led

Arduino Internet contrôlé de Led

SalutDans ce projet je vais diode de creux une pages Web. Vous pouvez ouvrir votre navigateur et la led de contrôle.Le code fourni lorsque téléchargé et connecté à internet, il crée un serveur Web de votre réseau local et vous simplement utiliser l'a
Pour accéder aux Arduino sur internet

Pour accéder aux Arduino sur internet

Cette instructable est juste une autre tentative de connexion votre arduino à internet. Il y a tellement d'instructables similaires qui vous dire comment faire la même chose, c'est la version peu plus détaillée, qui je pense pourrait aider les débuta
Robot de PC Internet iPhone contrôlée en utilisant arduino

Robot de PC Internet iPhone contrôlée en utilisant arduino

robot Arduino Internet PC contrôlé en utilisant iphone SPY Webcam robot sur roues ordinateur portable en utilisant la langue de traitement + arduino... Logiciel - par Francisco Dias
PARTIE 1 - Arduino d’envoyer des données sur le Web (PHP / MySQL / D3.js)

PARTIE 1 - Arduino d’envoyer des données sur le Web (PHP / MySQL / D3.js)

L'objectif de ce projet était d'usage et Arduino pour lire un capteur et envoyez les valeurs pour l'internet, pour être stockés dans un serveur Web et affichées.Elle consiste en un Arduino Uno avec un Shield Ethernet et à une température de DHT 11 /
Maison Internet contrôlé et Robot (domotique)

Maison Internet contrôlé et Robot (domotique)

dans ce instructable je vais vous dire comment connecter votre maison entière (tous les appareils électriques) à internet afin que vous puissiez contrôler votre équipement chaque n'importe où dans le mondeJ'ai fait ce projet de 3 mois en arrière et i
Arduino Ethernet Shield tutoriel

Arduino Ethernet Shield tutoriel

The Arduino Ethernet Shield vous permet de connecter facilement votre Arduino à internet. Ce bouclier permet votre Arduino envoyer et recevoir des données depuis n'importe où dans le monde avec une connexion internet. Vous pouvez l'utiliser pour des
Arduino alimenté Lucky Cat comme Webcounter physique

Arduino alimenté Lucky Cat comme Webcounter physique

tout le monde veut savoir combien de pages vues a votre propre site Web. Mais voir ce qui se passe qu'il faut certains code analytique et des trucs comme ça. Je voulais être raccordé à la quand je suis assis sur mon canapé, alors j'ai branché mon cha
Arduino Powered Home

Arduino Powered Home

J'ai fait quelques mises à jour à cette instructable depuis août 2014 ***J'ai décidé de partager ces informations afin que cela pourrait aider d'autres personnes qui ont eu du mal à faire des choses semblables avec leur Arduino. J'ai récemment obtenu