Étape 3: Code
Pour le début, vous aurez besoin de ssid et pass de votre réseau, la clé API de OpenWeatherMap et TimezoneDB. Définir les chaînes au début du code.
Après cela, décrivez vos NIP LED et LCD.
Dans la configuration du démarrage écran LCD. communication série entre le PC (pour choisir la ville/pays), Arduino et ESP8266 et Arduino. Aussi commencer la communication SDA/SCL avec votre module RTC. Vitesse de transmission de la dépend du modèle de l’ESP8266. ESP8266 utilisée dans cet exemple utilise 115200 bauds.
S’il y a une donnée en mémoire EEPROM utiliser ces données, si pas en ce qui concerne les nouvelles données.
Connexion de la ESP8266 au réseau en utilisant les commandes AT. Étant donné que les ESP8266 doivent se connecter à deux services web, vous devez envoyer commande AT + CIPMUX = 1 à la ESP8266.
fonction connectWiFi :
Connexion au service OpenWeatherMap :
Connexion au service TimezoneDB :
Services Web retournent des données au format XML ou JSON et il y a une assez bonne bibliothèque pour l’analyse JSON dans Arduino, mais puisqu’il y a un problème avec l’obtention de la chaîne entière respone nous devrions obtenir toutes les données manuellement à l’aide de la fonction find().
Selon les conditions météorologiques données reçues de service OWM LEDs sont allumer ou d’éteindre. Whis est assez délicat pour l’effet de la pluie car LEDs bleues devraient être allumer/éteindre (dans l’exemple chaque seconde) asynchrone vers le reste du programme (ils ne doivent pas bloquer programme). Pour arriver à cet effet, vous pouvez utiliser millis(). Partie du code responsable de tournant LED quand c’est une pluie normale dans une ville choisie :
Fonctions d’enregistrement et obtenir du temps du module RTC proviennent du lien et ils sont légèrement modifiés pour afficher les données à l’écran LCD. Mis à jour le cadre de la fonction returnTime() :
Code complet pour ce projet se trouvent dans une pièce jointe.
J’espère que vous avez apprécié cette Instructable et je vous remercie pour la lecture:) Si vous avez des questions concernant ce projet, n’hésitez pas à me contacter ou à me demander dans les commentaires:)