POCL Neige en station

Auteur avatarCarolineCO | Dernière modification 3/12/2025 par CarolineCO

POCL Neige en station Pingouin2.png
Création d’un petit objet connecté qui va chercher la météo sur internet et indique en temps réel s’il neige dans ta station de ski préférée.
Licence : Attribution (CC-BY)

  • Fichiers

Étape 1 - Réunir le matériel




Étape 2 - Préparer l'ESP 32

⚠️ Attention, ton ESP32 doit avoir été flashé avec micropython !

Tutoriel pour le faire : Installation de micropython

ou directement

⚠️ Cela fonctionne uniquement sur Google Chrome et Microsoft Edge.

Rendez-vous en bas de la page d'accueil :

https://dblocadata.debrouillonet.org/~test/#flash

Étape 3 - Raccorder la bande de LED à l'esp32

Étape 4 - Utiliser Thonny pour déposer les programmes sur l'ESP32

Étape 5 - Tester le programme

Étape 6 - Découper l'objet

Étape 7 - Assembler l'objet et l'électronique

Éléments pédagogiques


Sources et ressources

# Programme boot.py :

from machine import Pin
import time
try:
  import urequests as requests
except:
  import requests
try:
  import ujson as json
except:
  import json
import network
import neopixel
import esp
esp.osdebug(None)
import gc
gc.collect()

ssid = 'Nom_Wifi'
password = 'Mot_de_passe_wifi'
valeur_main = None

NB_LED = 2
np=neopixel.NeoPixel(Pin(15),NB_LED)
np[0] = (10, 0, 0)
np.write()

bleu = (248, 248, 255)
noir = (0, 0, 0)
rouge = (255, 0, 0)
  
def allumer_couleur(couleur):
    for i in range(NB_LED):
        np[i]=couleur
    np.write()



station = network.WLAN(network.STA_IF)
# se connecte
station.active(True)
station.connect(ssid, password)

while not station.isconnected() :
    allumer_couleur(rouge)
    time.sleep(1)
    print('Non connecté')

print('Connection successful')
#écrit les configurations de la connection
#print(station.ifconfig())

#Ville : Station Autrans 45°13'49.1"N 5°34'55.9"E
lat = '45.2302778'
long = '5.58194'



# Récupération données
api_key = '1e3c7b8ac112252a6250d681373bc7ed'
#https://api.openweathermap.org/data/2.5/weather?lat=44.866669&lon=-0.61667&appid=1e3c7b8ac112252a6250d681373bc7ed
weather_url = 'https://api.openweathermap.org/data/2.5/weather?lat=' + lat + '&lon=' + long + '&appid=' + api_key
#va chercher main dans la première case du tableau weather
json_path = ['weather', 0, 'main'] 

# Weather Description
#weather = extract_Weather(json_path, weather_url)
#description = 'Description: ' + weather
#print(description)

#Programme main.py :

def extract_Weather(list, url) :
    weather_data = requests.get(url)
    #print(weather_data.json())
    #transforme tout le json en dictionnaire
    data = json.loads(weather_data.text)
    # pour n qui parcourt chaque élément de list soit json_path dans le code avec n qui prendra main puis pressure
    for n in list:
        if(n != ""):
            data = data[n]
    return str(data)

valeur_main = extract_Weather(json_path, weather_url)
print("Temps actuel : " + valeur_main)
if valeur_main == "Snow":
    print("ca marche")
    allumer_couleur(bleu)
else :
    allumer_couleur(noir)
time.sleep(7)

Dernière modification 3/12/2025 par user:CarolineCO.

Commentaires

Draft