Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue167:python [2021/04/01 11:27] – d52fr | issue167:python [2021/04/04 15:38] (Version actuelle) – andre_domenech |
---|
Now, on to the Raspberry Pi Pico board. Yes it did come in. The darn thing is so tiny, and I’m so old with bad eyesight, that it was hard for me to solder the pins for the breadboard. I did it, without any shorts (or melting the board), but it took me twice as long as it would have 4 years ago. It worked pretty well, I must say. There are lots of possibilities for the RP2040 chipset and I can see many powerful microcontroller boards coming out in the future based on it. As they say in Texas, “They done did GOOD!” (I don’t say that, but ‘they’ do). ** | Now, on to the Raspberry Pi Pico board. Yes it did come in. The darn thing is so tiny, and I’m so old with bad eyesight, that it was hard for me to solder the pins for the breadboard. I did it, without any shorts (or melting the board), but it took me twice as long as it would have 4 years ago. It worked pretty well, I must say. There are lots of possibilities for the RP2040 chipset and I can see many powerful microcontroller boards coming out in the future based on it. As they say in Texas, “They done did GOOD!” (I don’t say that, but ‘they’ do). ** |
| |
Commençons par le commencement. Le mois dernier, je vous ai donné un rapide aperçu de la carte RTK.GPIO ; j'ai pensé alors vous donner une rapide mise à jour. J'ai essayé quelques tests de type « normaux » sur les GPIO, et ils ont bien fonctionné. Cependant, lorsque j'ai essayé un programme I2C vers un simple périphérique I2C, il n'a pas fonctionné. Je vais essayer de continuer à jouer et je vous tiendrai au courant. | Commençons par le commencement. Le mois dernier, je vous ai donné un rapide aperçu de la carte RTK.GPIO ; j'ai pensé maintenant vous donner une rapide mise à jour. J'ai essayé quelques tests de type « normaux » sur les GPIO, et ils ont bien fonctionné. Cependant, lorsque j'ai essayé un programme I2C vers un simple périphérique I2C, il n'a pas fonctionné. Je vais essayer de continuer à jouer et je vous tiendrai au courant. |
| |
Maintenant, passons à la carte Raspberry Pi Pico. Oui, elle est arrivée. Cette satanée chose est si petite, et je suis si vieux avec une mauvaise vue, qu'il était difficile pour moi de souder les broches pour le circuit d'essai. Je l'ai fait, sans court-circuit (ou sans faire fondre la carte), mais cela m'a pris deux fois plus de temps qu'il y a 4 ans. Cela a plutôt bien fonctionné, je dois dire. Il y a beaucoup de possibilités pour le chipset RP2040 et j'imagine de nombreuses cartes de microcontrôleurs puissants sortant à l'avenir sur cette base. Comme on dit au Texas, « Ils ont fait du bon travail ». (Je ne dis pas ça, mais « eux » le disent). | Maintenant, passons à la carte Raspberry Pi Pico. Oui, elle est arrivée. Cette satanée chose est si petite, et je suis si vieux avec une mauvaise vue, qu'il était difficile pour moi de souder les broches pour le circuit d'essai. Je l'ai fait, sans court-circuit (et sans faire fondre la carte), mais cela m'a pris deux fois plus de temps qu'il m'aurait fallu il y a 4 ans. Cela a plutôt bien fonctionné, je dois dire. Il y a beaucoup de possibilités pour le chipset RP2040 et j'imagine de nombreuses cartes de microcontrôleurs puissants basées dessus sortant à l'avenir. Comme on dit au Texas, « Ils ont VRAIMENT fait du bon travail ». |
| |
| |
Ce mois-ci, nous allons revenir sur les API météo gratuites sur Internet. Pourquoi ? Eh bien, beaucoup d'entre elles ont fermé ou sont passées à un modèle entièrement payant, de sorte que les choix ont changé. Lorsque je suis assis dans mon salon, je veux pouvoir vérifier le temps qu'il fait dehors et obtenir les prévisions pour mon emplacement. Comme j'habite en appartement, il m'est impossible d'installer une station météorologique autonome ; je dois donc m'en remettre à une source extérieure. | Ce mois-ci, nous allons revenir sur les API météo gratuites sur Internet. Pourquoi ? Eh bien, beaucoup d'entre elles ont fermé ou sont passées à un modèle entièrement payant, de sorte que les choix ont changé. Lorsque je suis assis dans mon salon, je veux pouvoir vérifier le temps qu'il fait dehors et obtenir les prévisions pour mon emplacement. Comme j'habite en appartement, il m'est impossible d'installer une station météorologique autonome ; je dois donc m'en remettre à une source extérieure. |
| |
J'ai fait une vérification rapide l'autre jour et j'ai trouvé un site qui a un plan auquel je peux me référer. Il s'agit de Weather API, dont vous pouvez visiter la page d'accueil à l'adresse https://www.weatherapi.com/. Il propose 5 plans, dont un gratuit. Leur plan gratuit permet de passer 1 000 000 d'appels par mois, soit plus de 2 000 appels par jour. C'est suffisant pour obtenir une source d'information raisonnable. | J'ai fait une vérification rapide l'autre jour et j'ai trouvé un site qui a un plan que je peux accepter. Il s'agit de Weather API et vous pouvez voir la page d'accueil à l'adresse https://www.weatherapi.com/. Il propose 5 plans, dont un gratuit. Leur plan gratuit permet de passer 1 000 000 d'appels par mois, soit plus de 2 000 appels par jour. C'est suffisant pour obtenir une source d'information raisonnable. |
| |
Les retours de données sont au format XML ou JSON. Nous allons explorer les deux formats, ainsi que certaines des données qui sont renvoyées. | Les retours de données sont au format XML ou JSON. Nous allons explorer les deux formats, ainsi que certaines des données qui sont renvoyées. |
http://api.weatherapi.com/v1/current.json?key=xxxxxxxxxxxxxxxxxxx&q=78748** | http://api.weatherapi.com/v1/current.json?key=xxxxxxxxxxxxxxxxxxx&q=78748** |
| |
Avant de pouvoir obtenir quoi que ce soit, vous devez vous inscrire pour obtenir une clé API gratuite. Dirigez votre navigateur préféré vers https://www.weatherapi.com/signup.aspx, et vous serez connecté à la page d'inscription. C'est très simple. Il suffit de saisir deux fois votre adresse électronique, de créer un mot de passe et de le saisir deux fois, de cliquer sur la case « Je ne suis pas un robot », puis d'accepter les conditions générales. Enfin, cliquez sur le bouton « Sign Up ». Vous recevrez un courrier électronique vous demandant de vérifier votre adresse électronique, et vous recevrez une clé. Veillez à enregistrer cette clé quelque part, car vous en aurez besoin pour toute requête adressée au système. | Avant de pouvoir obtenir quoi que ce soit, vous devez vous inscrire pour avoir une clé API gratuite. Dirigez votre navigateur préféré vers https://www.weatherapi.com/signup.aspx, et vous serez connecté à la page d'inscription. C'est très simple. Il suffit de saisir deux fois votre adresse mail, de créer un mot de passe et de le saisir deux fois, de cliquer sur la case « Je ne suis pas un robot », puis d'accepter les conditions générales. Enfin, cliquez sur le bouton « Sign Up ». Vous recevrez un courrier électronique vous demandant de vérifier votre adresse mail, et vous recevrez une clé. Veillez à enregistrer cette clé quelque part, car vous en aurez besoin pour toute requête adressée au système. |
| |
Comme nous l'avons fait auparavant, cette API vous demande de construire la requête http avec le type de requête, l'emplacement souhaité et votre clé API. Voici à quoi ressemble le format le plus simple (avec ma clé API masquée)... | |
| |
| Comme nous l'avons fait auparavant, cette API vous demande de formuler la requête http avec le type de requête, l'emplacement souhaité et votre clé API. Voici à quoi ressemble le format le plus simple (avec ma clé API masquée) : |
http://api.weatherapi.com/v1/current.json?key=xxxxxxxxxxxxxxxxxxx&q=78748 | http://api.weatherapi.com/v1/current.json?key=xxxxxxxxxxxxxxxxxxx&q=78748 |
| |
Paramètres supplémentaires (le cas échéant) | Paramètres supplémentaires (le cas échéant) |
| |
L'URL peut facilement être construite à partir de variables et d'une « f-string »... | L'URL peut facilement être créée à partir de variables et d'une « f-string »... |
| |
Base = ‘http://api.weatherapi.com/v1/’ | Base = ‘http://api.weatherapi.com/v1/’ |
Pour le compte API gratuit, vous pouvez avoir une prévision pour un maximum de 3 jours. Le nombre de jours dépend du niveau de compte auquel vous avez souscrit. | Pour le compte API gratuit, vous pouvez avoir une prévision pour un maximum de 3 jours. Le nombre de jours dépend du niveau de compte auquel vous avez souscrit. |
| |
Les principaux changements par rapport à notre précédente requête de météo actuelle sont donc la chaîne "forecast.json" au lieu de "current.json", l'ajout de jours, aqi=yes (aqi signifie indice de qualité de l'air) et les alertes=yes. Il existe également une option de langue que vous pouvez utiliser, mais vous devez consulter la documentation pour obtenir le paramètre correct. | Les principaux changements par rapport à notre précédente requête de météo actuelle sont donc la chaîne « forecast.json » au lieu de « current.json », l'ajout de jours, aqi=yes (aqi signifie indice de qualité de l'air) et les alertes=yes. Il existe également une option de langue que vous pouvez utiliser, mais vous devez consulter la documentation pour obtenir le paramètre correct. |
| |
Lorsque nous envoyons cette requête à l'API, nous obtenons en retour une GRANDE quantité de données. Je vais juste en coller une partie ici (ci-dessous). | Lorsque nous envoyons cette requête à l'API, nous obtenons en retour une GRANDE quantité de données. Je vais en coller juste une partie ici (ci-dessous). |
| |
| |
It’s a lot of data – which is why I used JSON format for the ease of picking out what I want on any call.** | It’s a lot of data – which is why I used JSON format for the ease of picking out what I want on any call.** |
| |
Vous obtenez les informations de localisation et les informations sur les conditions actuelles, tout comme lorsque nous avons effectué la demande des conditions actuelles. En plus de cela, vous obtenez également les informations sur la qualité de l'air, puisque nous l'avons demandé (en bas à gauche). | Vous obtenez les informations de localisation et les informations sur les conditions actuelles, tout comme lorsque nous avons effectué la demande des conditions actuelles. En plus de cela, vous obtenez les informations sur la qualité de l'air, puisque nous les avons demandées (en bas à gauche). |
| |
Viennent ensuite les informations sur les prévisions. Sous l'en-tête général ['forecast'], vous obtenez un groupe de données pour chacun des jours que vous avez demandés (3 dans ce cas), chacun d'entre eux commençant par « date » et « date_epoch », puis donnant un aperçu du jour suivi des données astronomiques pour ce jour (lever, coucher du soleil, etc.), puis 24 heures de données groupées par heure. Le processus se répète ensuite pour chaque jour supplémentaire que vous avez demandé, avec, à la fin, toutes les données d'alerte qui ont pu être émises. Chacun de ces groupes de données est à peu près identique aux données sur les conditions actuelles. | Viennent ensuite les informations sur les prévisions. Sous l'en-tête général ['forecast'], vous obtenez un groupe de données pour chacun des jours que vous avez demandés (3 dans ce cas), chacun d'entre eux commençant par « date » et « date_epoch », puis donnant un aperçu du jour suivi des données astronomiques pour ce jour (lever, coucher du soleil, etc.), puis 24 heures de données groupées par heure. Le processus se répète ensuite pour chaque jour supplémentaire que vous avez demandé, avec, à la fin, toutes les données d'alerte qui ont pu être émises. Chacun de ces groupes de données est à peu près identique aux données sur les conditions actuelles. |
| |
Cela fait beaucoup de données - c'est pourquoi j'ai utilisé le format JSON pour faciliter la sélection de ce que je veux à chaque appel. | Cela fait beaucoup de données, c'est pourquoi j'ai utilisé le format JSON pour faciliter la sélection de ce que je veux à chaque appel. |
| |
| |
Le code | Le code |
| |
Nous pouvons maintenant nous concentrer sur le code. Heureusement, il est très similaire à la logique que nous avons utilisée auparavant. Comme toujours, nous commençons par nos importations... | Nous pouvons maintenant nous concentrer sur le code. Heureusement, il est très similaire à la logique que nous avons utilisée auparavant. Comme toujours, nous commençons par nos importations : |
| |
import requests | import requests |
Lorsque nous exécutons le programme, la sortie ressemblera à l'illustration de droite. | Lorsque nous exécutons le programme, la sortie ressemblera à l'illustration de droite. |
| |
C'est tout. Très simple et facilement modifiable pour ajouter ou supprimer des éléments comme vous le souhaitez - pour adapter le résultat à vos besoins. | C'est tout. Très simple et facilement modifiable pour ajouter ou supprimer des éléments comme vous le souhaitez, pour adapter le résultat à vos besoins. |
| |
J'ai placé le code sur mon dépôt github à https://github.com/gregwa1953/FCM-167. | J'ai placé le code sur mon dépôt github à https://github.com/gregwa1953/FCM-167. |
As always, until next time; stay safe, healthy, positive and creative!** | As always, until next time; stay safe, healthy, positive and creative!** |
| |
Une dernière chose. Le mois dernier, j'ai promis que je donnerais mes premières impressions sur le microcontrôleur Raspberry Pi Pico. J'avais initialement prévu de faire cette mise à jour ici, mais avant même d'avoir reçu la carte Pico, j'étais tellement enthousiaste que j'ai parlé à Ronnie de la possibilité de créer une autre série d'articles sous un titre distinct. Il m'a dit que ce n'était pas un problème, donc je vais maintenant essayer de faire deux articles par mois, un sur le « Python standard » et un sur le travail avec les microcontrôleurs en utilisant MicroPython et CircuitPython. Je suis sûr que de temps en temps, il y aura un projet croisé qui occupera les deux. | Une dernière chose. Le mois dernier, j'ai promis que je donnerais mes premières impressions sur le microcontrôleur Raspberry Pi Pico. J'avais initialement prévu de faire cette mise à jour ici, mais avant même d'avoir reçu la carte Pico, j'étais tellement enthousiaste que j'ai parlé à Ronnie de la possibilité de créer une autre série d'articles avec un titre distinct. Il m'a dit que ce n'était pas un problème ; ainsi, je vais maintenant essayer de faire deux articles par mois, un sur le « Python standard » et un sur le travail avec les microcontrôleurs en utilisant MicroPython et CircuitPython. Je suis sûr que de temps en temps, il y aura un projet croisé qui occupera les deux. |
| |
| |