| Ligne 1 : | Ligne 1 : | ||
{{Tuto Details | {{Tuto Details | ||
| − | |Main_Picture= | + | |Main_Picture=POCL_Neige_en_station_1000000223.jpg |
|Licences=Attribution (CC-BY) | |Licences=Attribution (CC-BY) | ||
|Description=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. | |Description=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. | ||
| Ligne 52 : | Ligne 52 : | ||
{{Tuto Step | {{Tuto Step | ||
|Step_Title=Raccorder la bande de LED à l'esp32 | |Step_Title=Raccorder la bande de LED à l'esp32 | ||
| + | |Step_Content=Si vous utilisez un bandeau led : | ||
| + | |||
| + | Séparer 3 leds en découpant le ruban. | ||
| + | |||
| + | Les souder entre elles avec des fils en respectant les bornes et les flèches. | ||
| + | |||
| + | L'objectif est de les éloigner pour disposer une led derrière chaque œil et le ventre. | ||
| + | |||
| + | |||
| + | Raccorder l'ensemble de leds à l'ESP 32 : | ||
| + | |||
| + | La borne GND des leds vers une des bornes GND de l'ESP32 | ||
| + | |||
| + | La borne 5V des leds vers la borne VIN | ||
| + | |||
| + | La borne DIN des leds vers la borne 15 de l'ESP32 (voir programme informatique) | ||
| + | |||
| + | <br /> | ||
| + | |Step_Picture_00=POCL_Neige_en_station_decouper_led.png | ||
| + | |Step_Picture_01=POCL_Neige_en_station_20251203_111048.jpg | ||
| + | |Step_Picture_01_annotation={"version":"3.5.0","objects":[{"type":"image","version":"3.5.0","originX":"left","originY":"top","left":0,"top":337.82,"width":2296,"height":4080,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeMiterLimit":4,"scaleX":0.15,"scaleY":0.15,"angle":270,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"crossOrigin":"","cropX":0,"cropY":0,"src":"https://www.wikidebrouillard.org/images/e/ea/POCL_Neige_en_station_20251203_111048.jpg","filters":[]}],"height":338,"width":600} | ||
| + | |Step_Picture_02=POCL_Neige_en_station_raccordement_ESP.png | ||
| + | |Step_Picture_03=POCL_Neige_en_station_20251127_171325.jpg | ||
}} | }} | ||
{{Tuto Step | {{Tuto Step | ||
|Step_Title=Utiliser Thonny pour déposer les programmes sur l'ESP32 | |Step_Title=Utiliser Thonny pour déposer les programmes sur l'ESP32 | ||
| + | |Step_Content=Télécharger le logiciel Thonny. | ||
| + | |||
| + | |||
| + | Raccorder l'ESP 32 à un ordinateur. | ||
| + | |||
| + | |||
| + | Ouvrir Thonny et sélectionner l'ESP 32 avec son port si besoin. | ||
| + | |||
| + | |||
| + | Créer deux fichiers : boot.py et main.py | ||
| + | |||
| + | Copier dedans les codes présents plus bas dans sources et ressources. | ||
| + | |||
| + | |||
| + | Modifier les fichiers : | ||
| + | |||
| + | boot.py | ||
| + | |||
| + | > modifier le nom du wifi et son mot de passe (mettre un wifi accessible pour le POCL sans portail captif) | ||
| + | |||
| + | > modifier les coordonnées géographiques de votre station | ||
| + | |Step_Picture_00=POCL_Neige_en_station_programme_thonny.png | ||
| + | |Step_Picture_01=POCL_Neige_en_station_nom_wifi_code.png | ||
| + | |Step_Picture_02=POCL_Neige_en_station_longi_latitude_code.png | ||
}} | }} | ||
{{Tuto Step | {{Tuto Step | ||
|Step_Title=Tester le programme | |Step_Title=Tester le programme | ||
| + | |Step_Content=Lancer le programme. | ||
| + | |||
| + | Dans le terminal, les tentatives de connexions s'affichent puis la météo récupérée est affichée. | ||
| + | |||
| + | Le bandeau led clignote en rouge puis : | ||
| + | |||
| + | - s'éteint si il ne neige pas | ||
| + | |||
| + | - s'allume en bleu si il neige | ||
| + | |||
| + | - s'allume en rouge si la connexion internet n'est pas établie | ||
| + | |Step_Picture_00=POCL_Neige_en_station_lancer_programme.png | ||
}} | }} | ||
{{Tuto Step | {{Tuto Step | ||
Auteur
CarolineCO | Dernière modification 3/12/2025 par CarolineCO
ESP32, POCL, Open Data, Découpeuse laser, IOT POCL_Neige_en_station_1000000223.jpg
⚠️ 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
Si vous utilisez un bandeau led :
Séparer 3 leds en découpant le ruban.
Les souder entre elles avec des fils en respectant les bornes et les flèches.
L'objectif est de les éloigner pour disposer une led derrière chaque œil et le ventre.
Raccorder l'ensemble de leds à l'ESP 32 :
La borne GND des leds vers une des bornes GND de l'ESP32
La borne 5V des leds vers la borne VIN
La borne DIN des leds vers la borne 15 de l'ESP32 (voir programme informatique)
Télécharger le logiciel Thonny.
Raccorder l'ESP 32 à un ordinateur.
Ouvrir Thonny et sélectionner l'ESP 32 avec son port si besoin.
Créer deux fichiers : boot.py et main.py
Copier dedans les codes présents plus bas dans sources et ressources.
Modifier les fichiers :
boot.py
> modifier le nom du wifi et son mot de passe (mettre un wifi accessible pour le POCL sans portail captif)
> modifier les coordonnées géographiques de votre station
Lancer le programme.
Dans le terminal, les tentatives de connexions s'affichent puis la météo récupérée est affichée.
Le bandeau led clignote en rouge puis :
- s'éteint si il ne neige pas
- s'allume en bleu si il neige
- s'allume en rouge si la connexion internet n'est pas établie
# 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.
Draft
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #