Aller au contenu


Photo
- - - - -

NodeMCU Weather Station on Arduino IDE


  • Veuillez vous connecter pour répondre
37 réponses à ce sujet

#1 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 14 septembre 2020 - 04:10

bonjour Mike ,

je vais faire simple ,j'essaye de faire fonctionner une weather station.

https://github.com/T...weather-station

comme tu l'as dit il faut tester une chose à la fois .

j'ai essayer de me connecter depuis chez moi .

j'ai mis la cley API  http://openweathermap.org/

et normalement je devrais avoir voir photo du site .

et moi je n'ai que des points .

joins le code.

merci d'avance .bonne soirée.

3-8.jpg

IMG_1857.JPG



#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
#include <Wire.h>



const char* ssid     = "Your Network Name"; //freboxbabette                // SSID of local network
const char* password = "Your Password";     // FC56BF8323              // Password on network
String APIKEY = "API Key";                  // 8b3016c8fecf7dad2d84dfba699ae0ba              
String CityID = "CityID";                   //  6454924            //Your City ID


WiFiClient client;
char servername[]="api.openweathermap.org";              // remote server we will connect to
String result;

int  counter = 60;                                      

String weatherDescription ="";
String weatherLocation = "";
String Country;
float Temperature;
float Humidity;
float Pressure;

LiquidCrystal_I2C lcd(0x3F, 16, 2);    // Address of your i2c LCD back pack should be updated.

void setup() {
  Serial.begin(115200);
  int cursorPosition=0;
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
  lcd.print("   Connecting");  
  Serial.println("Connecting");
  WiFi.begin(ssid, password);
  
             while (WiFi.status() != WL_CONNECTED) 
            {
            delay(500);
            lcd.setCursor(cursorPosition,2); 
            lcd.print(".");
            cursorPosition++;
            }
  lcd.clear();
  lcd.print("   Connected!");
  Serial.println("Connected");
  delay(1000);
}

void loop() {
    if(counter == 60)                                 //Get new data every 10 minutes
    {
      counter = 0;
      displayGettingData();
      delay(1000);
      getWeatherData();
    }else
    {
      counter++;
      displayWeather(weatherLocation,weatherDescription);
      delay(5000);
      displayConditions(Temperature,Humidity,Pressure);
      delay(5000);
    }
}

void getWeatherData()                                //client function to send/receive GET request data.
{
  if (client.connect(servername, 80))   
          {                                         //starts client connection, checks for connection
          client.println("GET /data/2.5/weather?id="+CityID+"&units=metric&APPID="+APIKEY);
          client.println("Host: api.openweathermap.org");
          client.println("User-Agent: ArduinoWiFi/1.1");
          client.println("Connection: close");
          client.println();
          } 
  else {
         Serial.println("connection failed");        //error message if no client connect
          Serial.println();
       }

  while(client.connected() && !client.available()) 
  delay(1);                                          //waits for data
  while (client.connected() || client.available())    
       {                                             //connected or data available
         char c = client.read();                     //gets byte from ethernet buffer
         result = result+c;
       }

client.stop();                                      //stop client
result.replace('[', ' ');
result.replace(']', ' ');
Serial.println(result);
char jsonArray [result.length()+1];
result.toCharArray(jsonArray,sizeof(jsonArray));
jsonArray[result.length() + 1] = '\0';
StaticJsonBuffer<1024> json_buf;
JsonObject &root = json_buf.parseObject(jsonArray);

if (!root.success())
  {
    Serial.println("parseObject() failed");
  }

String location = root["name"];
String country = root["sys"]["country"];
float temperature = root["main"]["temp"];
float humidity = root["main"]["humidity"];
String weather = root["weather"]["main"];
String description = root["weather"]["description"];
float pressure = root["main"]["pressure"];
weatherDescription = description;
weatherLocation = location;
Country = country;
Temperature = temperature;
Humidity = humidity;
Pressure = pressure;

}

void displayWeather(String location,String description)
{
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(location);
  lcd.print(", ");
  lcd.print(Country);
  lcd.setCursor(0,1);
  lcd.print(description);
}

void displayConditions(float Temperature,float Humidity, float Pressure)
{
 lcd.clear();                            //Printing Temperature
 lcd.print("T:"); 
 lcd.print(Temperature,1);
 lcd.print((char)223);
 lcd.print("C "); 
                                         
 lcd.print(" H:");                       //Printing Humidity
 lcd.print(Humidity,0);
 lcd.print(" %"); 
 
 lcd.setCursor(0,1);                     //Printing Pressure
 lcd.print("P: ");
 lcd.print(Pressure,1);
 lcd.print(" hPa");
}

void displayGettingData()
{
  lcd.clear();
  lcd.print("Getting data");
}




#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 septembre 2020 - 04:40

Tester les choses une par une se fait avec un code qui ne fait qu'une chose : 

 

Est ce que le code ci dessous marche ?


#include <Wire.h>
#include <LiquidCrystal_I2C.h>

                                    

LiquidCrystal_I2C lcd(0x3F, 16, 2);    // Address of your i2c LCD back pack should be updated.

void setup() {

  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,1); 
  lcd.print("Hello World");  
 
}

void loop() {
  
}


Si il ne marche pas, d'où peut venir l'erreur ? ( Que veut dire le seul commentaire qui est écrit ? )


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#3 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 14 septembre 2020 - 05:06

oui Mike ,

tout fonctionne .

voila la photo .

Image(s) jointe(s)

  • IMG_1858.JPG


#4 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 14 septembre 2020 - 05:20

dans l’écran précédent (j'avais Connecting et ..........................)

et dans le Serial 115200 (Connecting)



#5 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 septembre 2020 - 05:35

Et ça maintenant ça fait quoi ? 

 

#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>


const char* ssid     = "Your Network Name"; //freboxbabette            // SSID of local network
const char* password = "Your Password";     // FC56BF8323              // Password on network
                           

LiquidCrystal_I2C lcd(0x3F, 16, 2);    // Address of your i2c LCD back pack should be updated.

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
  lcd.print(" Connecting ...");  
  Serial.println("Connecting...");
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {

  }
  lcd.clear();
  lcd.print("   Connected!");
  Serial.println("Connected");
 
}

void loop() {
  
}


Si ça ne t'affiche pas " connected " cela veut dire que la ligne " WiFi.begin(ssid, password); " ne permet pas de connecter l'esp au wifi du SSID indiqué avec le mot de passe indiqué ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#6 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 14 septembre 2020 - 06:02

elle reste sur (Connecting ...)



#7 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 14 septembre 2020 - 06:06

Quand tu fais tes essais tu changes bien les lignes : 

 

const char* ssid     = "Your Network Name"; 
const char* password = "Your Password";    

en mettant entre guillemets les bonnes informations de nom de wifi et de mot de passe ? En respectant bien les majuscules et minuscules etc ... ?


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#8 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 15 septembre 2020 - 03:50

Bonjour Mike,

j'ai trouvé l'erreur const char* ssid "freeboxbabette" au lieu de "freboxbabette"

maintenant c'est ok .

 

j'ai vu dans Serial {"coord":{"lon":7.25,"lat":43.7},"weather": {"id":801,"main":"Clouds","description":"few clouds","icon":"02d"} ,"base":"stations","main":{"temp":

tu pourrais s'il te plait me dire comment utiliser la longitude et latitude ainsi que le timezone de l API pour pouvoir les afficher , je pense que se sont des valeurs brutes qu'ils faut transformées.

du coup j'ai réussi à faire fonctionner ma station weather de ThingPulse .

je te remerci beaucoup de m'avoir aider .

Bonne soirée.

IMG_1859.JPG

IMG_1860.JPG



#9 Sandro

Sandro

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 650 messages
  • Gender:Male

Posté 15 septembre 2020 - 08:45

Bonsoir,

pour les coordonnées GPS, tu as les coordonnées en degrés décimaux (j'ai vérifié, ça correspond bien à Nice, à  un point à environ 1km à l'ouest de la gare).

A noter que Serial.print n'affiche que 2 décimales par défaut, mais tu les valeurs sont probablement plus précises (tu peux afficher les nombres à virgule avec N chiffres après la virgule en faisant Serial.print(mon_nombre, N)

Avec 2 chiffres après la virgule, tu as une précision d'environ 0.5km.

 

Le format longitude/latitude au format décimal est assez répondu (si tu cherches 43.7N 7.25E dans google maps, il indiquera ta position approximative).

Après, le format le plus répondu est degrés°minutes'secondes''

Dans ce cas, c'est assez simple à convertir : tu prends la partie entière, c'est les degrés. Tu multiplie la partie décimale par 60, et tu obtiens les minutes (à virgule). Tu prends la partie entière des minutes, ça te fait ton nombre de minutes, et la partie décimale multipliée par 60 te donnera les secondes.

(si c'est pas clair ou que tu n'arrives pas à l'implémenter, préviens moi, je peux te donner le code)

 

La timeZone, c'est ton fuseau horaire.

 

La vrai question, c'est de savoir ce que tu veux faire de tes coordonnées GPS et de ton fuseau horaire? Si la station reste chez toi, probablement ça ne t'intéresse pas (tu sais où tu habites, et dans quel fuseau horaire tu te trouve).

Après, si tu veux utiliser ta station météo en rando comme GPS, alors ça peut servir

 

Bonne soirée

Sandro



#10 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 15 septembre 2020 - 11:25

d'après ce que tu as écris à savoir " {"coord":{"lon":7.25,"lat":43.7},"weather": {"id":801,"main":"Clouds","description":"few clouds","icon":"02d"} ,"base":"stations","main":{"temp": " 

Et d'après le code que tu as déjà posté à savoir  :


 

String location = root["name"];
String country = root["sys"]["country"];
float temperature = root["main"]["temp"];
float humidity = root["main"]["humidity"];
String weather = root["weather"]["main"];
String description = root["weather"]["description"];
float pressure = root["main"]["pressure"];

Pour récupérer les données dans ton code tu peux surement tester  quelque chose du genre

 

String longitude = root["coord"]["lon"];
String latitude = root["coord"]["lon"];

// ou 

double longitude = root["coord"]["lon"];
double latitude = root["coord"]["lon"];
// Double utilisé pour avoir plus de résolution qu'un float ... 

Si cela marche bien comme prévu en regardant comment sont rangé les données tu devrais trouver comment récupérer toutes les données que tu vois passez sur le moniteur série. 

Une fois que tu as récupéré tes données, pour les utiliser / afficher, se référer à la remarque de Sandro.


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#11 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 16 septembre 2020 - 07:31

Bonjour, Mike ,Sandro,

dans mon éclairage pour Bonsai ou Aquarium je simule le levée et le couché du jour avec des librairies qui utilise une RTC , timezone, longitude et latitude .

en décodant la trame du json je pourrais exploitée ces données pour mon éclairage sans trop de composants.

j'avais pensée à cette solution ?

bonne ou pas .

merci encore en vous souhaitant une bonne journée.Michel



#12 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 septembre 2020 - 08:06

Pour simuler le levé et couché du soleil il te faut : 


L'heure actuelle où tu es,  ( liée à la time zone )
La date 

et ta position ( latitude longitude ) ( pas forcement l'information la plus importante car ça peut être une simple constante dans le code tant que tu ne fais pas de randonnée avec ton aquarium et ton bonsaï... :P )

 

et 

Une fonction qui en fonction de l'heure , la date  et de ta position te donne la position du soleil. 

Si tu peux extraire toutes les infos nécessaire depuis le json ( et surtout la date et l'heure) alors tu n'as besoin de rien d'autre comme matériel... 

En général pour ce genre d'application c'est le module RTC qui fournit l'info date et heure ... Mais si tu les récupère différemment et que c'est fiable pas de soucis!
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#13 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 16 septembre 2020 - 04:17

BONSOIR Mike;

j'ai vu sur internet ceci : https://itechnofranc...en-micropython/

c'est ce que j'aimerai faire convertir tout ce que j'ai besoin de la cley api pour pouvoir les utilser dans mon programme eclairage .

mais la c'est du python !!!

d'avance merci .



#14 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 16 septembre 2020 - 09:38

Que ce soit du python ou pas c'est pas le problème. 
Il faut découper le problème en différentes étapes : 

A ) Sais tu récupérer les informations?  ( Est tu capable de récupérer le json à l'adresse indiquée ? )
B ) Sais tu extraire les informations dont tu as besoin et qui sont dans le json ? ( voir  https://www.robot-ma...o-ide/?p=111070
C ) Sais tu convertir ces données dans le format que tu as besoin pour tes calculs 
D ) Sais tu utiliser les données ( = faire les calculs ) pour obtenir le résultat que tu cherches ? 

 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#15 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 17 septembre 2020 - 06:48

bonjour, Mike.

je vais essayer en prenant ton exemple .

je te souhaite une bonne journée.



#16 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 17 septembre 2020 - 04:04

bonsoir Mike;

j'ai trouvé un code qui fonctionne .

tu pourrais m’aiguillée  pour Sunset / Sunrise s'il te plait .

d'avance merci .

IMG_1861.JPG

#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
#include <Wire.h>

const char* ssid     = "freeboxbabette";                 // SSID of local network
const char* password = "FC56BF8323";                    // Password on network
String APIKEY = "8b3016c8fecf7dad2d84dfba699ae0ba";                                 
String CityID = "6454924";                                 //Your City ID

WiFiClient client;
char servername[]="api.openweathermap.org";              // remote server we will connect to
String result;

int  counter = 60;                                      

String weatherDescription ="";
String weatherLocation = "";
String Country;
String weatherID;
float Temperature;
float Humidity;
float Pressure;
double Latitude = 0.0;
double Longitude = 0.0;

LiquidCrystal_I2C lcd(0x3F, 20, 4);    // Address of your i2c LCD back pack should be updated.

void setup() {
  Serial.begin(115200);
  int cursorPosition=0;
  lcd.begin();
  lcd.backlight();
  lcd.print("   Connecting");  
  Serial.println("Connecting");
  WiFi.begin(ssid, password);
 
             while (WiFi.status() != WL_CONNECTED)
            {
            delay(500);
            lcd.setCursor(cursorPosition,2);
            lcd.print(".");
            cursorPosition++;
            }
  lcd.clear();
  lcd.print("   Connected!");
  Serial.println("Connected");
  delay(1000);
}

void loop() {
    if(counter == 60)                                 //Get new data every 10 minutes
    {
      counter = 0;
      displayGettingData();
      delay(1000);
      getWeatherData();
    }else
    {
      counter++;
      displayWeather(weatherLocation,weatherDescription);
      delay(5000);
      displayConditions(Temperature,Humidity,Pressure,Latitude,Longitude);
      delay(5000);
    }
}

void getWeatherData()                                //client function to send/receive GET request data.
{
  if (client.connect(servername, 80))   
          {                                         //starts client connection, checks for connection
          client.println("GET /data/2.5/weather?id="+CityID+"&units=metric&APPID="+APIKEY);
          client.println("Host: api.openweathermap.org");
          client.println("User-Agent: ArduinoWiFi/1.1");
          client.println("Connection: close");
          client.println();
          }
  else {
         Serial.println("connection failed");        //error message if no client connect
          Serial.println();
       }

  while(client.connected() && !client.available())
  delay(1);                                          //waits for data
  while (client.connected() || client.available())    
       {                                             //connected or data available
         char c = client.read();                     //gets byte from ethernet buffer
         result = result+c;
       }

client.stop();                                      //stop client
result.replace('[', ' ');
result.replace(']', ' ');
Serial.println(result);
char jsonArray [result.length()+1];
result.toCharArray(jsonArray,sizeof(jsonArray));
jsonArray[result.length() + 1] = '\0';
StaticJsonBuffer<1024> json_buf;
JsonObject &root = json_buf.parseObject(jsonArray);

if (!root.success())
  {
    Serial.println("parseObject() failed");
  }

String location = root["name"];
String country = root["sys"]["country"];
float temperature = root["main"]["temp"];
float humidity = root["main"]["humidity"];
String weather = root["weather"]["main"];
String description = root["weather"]["description"];
float pressure = root["main"]["pressure"];
long time = root["time"];
double latitude = root["coord"]["lat"];
double longitude = root["coord"]["lon"];
weatherDescription = description;
weatherLocation = location;
Country = country;
Temperature = temperature;
Humidity = humidity;
Pressure = pressure;
Latitude = latitude;
Longitude = longitude;
}

void displayWeather(String location,String description)
{
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(location);
  lcd.print(", ");
  lcd.print(Country);
  lcd.setCursor(0,1);
  lcd.print(description);
 
}

void displayConditions(float Temperature,float Humidity, float Pressure,double latitude,double longitude )
{
 lcd.clear();                            //Print Temperature
 lcd.print("T:");
 lcd.print(Temperature,1);
 lcd.print((char)223);
 lcd.print("C ");
                                         
 lcd.print(" H:");                       //Print Humidity
 lcd.print(Humidity,0);
 lcd.print(" %");
 
 lcd.setCursor(0,1);                     //Print Pressure
 lcd.print("P: ");
 lcd.print(Pressure,1);
 lcd.print(" hPa");
 
 lcd.setCursor(0,2);                    //Print Latitude
 lcd.print("Lat:");
 lcd.print(latitude, 2);
 
 lcd.setCursor(10,2);                   //Print Longitude
 lcd.print("Lon:");
 lcd.print(longitude, 2);
}

void displayGettingData()
{
  lcd.clear();
  lcd.print("Getting data");
}



#17 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 17 septembre 2020 - 11:33

est ce que tu as une fonction qui te calcule un sunset et un sunrise ? 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#18 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 18 septembre 2020 - 07:08

Bonjour,Mike

je parler de décoder toujours  la trame json ("sunrise":1600406041,"sunset":1600450573},"timezone":7200,"id":6454924,"name":"Nice","cod":200}

d'avance merci .

il faudrais que je trouve une autre cley api qui me donne d'avantage d'infos ""Moonset,Moonrise" "phase de la lune"

bonne journée.

 



#19 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 856 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 18 septembre 2020 - 04:02

peux tu poster une trame json complète de ce que tu récupères ? 

Car avec ton message précédant je n'avais pas compris que les info sunset et sunrise étaient présentes dans la trame json ... de plus je ne les ais as vu dans la trame donnée à cette adresse :  http://worldtimeapi.org/api/timezone/Europe/Paris ... 

Donc il faut que tu donnes plus de détails sur tes besoins ... 
 

Moi je pensais que tu devais récupérer les info qui te permettent de calculer les sunset sunrise etc ... Grâce à des fonctions de calcul dans des librairies ... 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#20 michel

michel

    Habitué

  • Membres
  • PipPip
  • 171 messages
  • Gender:Male
  • Location:nice

Posté 18 septembre 2020 - 04:34

avec api : api.openweathermap.org.

Connecting
Connected
{"coord":{"lon":7.25,"lat":43.7},"weather": {"id":801,"main":"Clouds","description":"few clouds","icon":"02d"} ,"base":"stations","main":{"temp":27.62,"feels_like":29.2,"temp_min":26.11,"temp_max":28.33,"pressure":1018,"humidity":58},"visibility":10000,"wind":{"speed":2.1,"deg":200},"clouds":{"all":23},"dt":1600443005,"sys":{"type":1,"id":6515,"country":"FR","sunrise":1600406041,"sunset":1600450573},"timezone":7200,"id":6454924,"name":"Nice","cod":200}

Voila toute la trame API sur le Serial port

 






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users