Note
Bonjour et bienvenue dans la communauté Facebook des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 ! Plongez au cœur de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et techniques avec l’aide de notre communauté et de notre équipe.
Apprenez et partagez : Échangez des conseils et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits.
Remises spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et cadeaux : Participez à des tirages au sort et des promotions de vacances.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !
8. Créer une Application Web avec @Anvil
Nous allons développer un projet permettant une communication bidirectionnelle entre le Raspberry Pi Pico W et les serveurs d’Anvil. La température et l’humidité transmises par le Pico W seront affichées en temps réel sur Anvil. En outre, vous pourrez saisir des messages sur Anvil qui s’afficheront sur l’écran LCD I2C 1602 du Pico W.

1. Composants nécessaires
Pour ce projet, nous aurons besoin des composants suivants.
Il est certainement plus pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
|---|---|---|
Kepler Kit |
450+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
SN |
COMPOSANT |
QUANTITÉ |
LIEN |
|---|---|---|---|
1 |
1 |
||
2 |
Câble Micro USB |
1 |
|
3 |
1 |
||
4 |
Plusieurs |
||
5 |
1 |
||
6 |
1 |
||
7 |
1 |
||
8 |
Batterie 18650 |
1 |
|
9 |
Support de batterie |
1 |
2. Monter le circuit
Avertissement
Assurez-vous que votre module de charge Li-po est connecté comme indiqué sur le schéma. Sinon, un court-circuit pourrait endommager votre batterie et le circuit.
3. Créer une Application Anvil
Rendez-vous sur Anvil website et cliquez sur Commencer à créer.
Connectez-vous ou inscrivez-vous.
Créez une Nouvelle Application Vierge.
Sélectionnez le Thème Material Design.
Vous êtes maintenant sur la page d’édition de l’application.
Depuis la boîte à outils, faites glisser un outil Label et placez-le sur Déposez le titre ici.
Vous pouvez remplir le texte de l’étiquette dans le champ texte du menu Propriétés.
De la même manière, glissez une TextBox sur la droite.
Glissez un bouton sur l’extrême droite et modifiez le champ texte. Ce bouton servira à « envoyer » un message au Raspberry Pi Pico W.
Après avoir double-cliqué sur le bouton MONTRER, la page passera du mode Design au mode Code et mettra en surbrillance le code pour le bouton. Vous devez saisir le code suivant, qui sert à appeler une fonction sur le serveur (ici, le Pico W).
anvil.server.call_s("show_message",self.text_box_1.text)
show_messageest la fonction qui sera définie lors de la programmation du Pico W.self.text_box_1.textest le message que vous saisissez dans la boîte de texte, qui sera envoyé comme paramètre àshow_message().
Revenez à la page Design, glissez une autre étiquette et placez-la sous les éléments précédents. Cette étiquette affichera les données du capteur DHT11 provenant du Pico W.
Dans la boîte à outils, cliquez sur Plus de composants et glissez le Timer dans le formulaire.
Avec les Propriétés, définissez le timer sur un intervalle de 3 secondes. Ce délai sera utilisé pour mettre à jour l’écran avec les données de notre capteur.
Double-cliquez sur l’outil Timer pour le programmer. Utilisez la fonction
anvil.server.call_s()pour appeler la fonctionpublish_data()du serveur, obtenir le message à afficher sur l’application Anvil, et l’assigner àself.label_2.textpour finir.data=anvil.server.call_s("publish_data") self.label_2.text=data
15. À ce stade, la partie à programmer sur Anvil est terminée. Vous pouvez trouver plus de détails sur l’utilisation d’Anvil à partir de Anvil Docs. 4. Configuration du Pico W
Pour simplifier la connexion du Raspberry Pi Pico W aux services Anvil, Anvil utilise une image de firmware personnalisée. Le firmware du Pico W est écrit en MicroPython et apparaît comme un lecteur USB contenant deux fichiers (boot.py et main.py). Le Pico W doit être flashé avec ce firmware personnalisé et connecté à notre Wi-Fi avant de pouvoir commencer à coder.
Téléchargez le firmware personnalisé du Raspberry Pi Pico W via firmware from Anvil. Il est recommandé de télécharger la version complète.
Appuyez et maintenez le bouton BOOTSEL sur le Pico W, puis connectez-le à votre ordinateur à l’aide d’un câble micro USB. Relâchez BOOTSEL une fois que le lecteur RPI-RP2 apparaît sur votre ordinateur.
Glissez et déposez le fichier
.uf2que vous venez de télécharger, et le Pico W installera le firmware à ce moment-là. Une fois terminé, le Pico W rechargera le lecteur et vous verrez les fichiersmain.pyetboot.py.Note
Avant de réinstaller le firmware, sauvegardez tous vos fichiers importants stockés dans le Pico W.
Sélectionnez « MicroPython(Raspberry Pi Pico).COMXX » comme interpréteur dans Thonny IDE. Après avoir cliqué sur Affichage -> Fichiers, vous verrez le lecteur local et le disque dur du Raspberry Pi Pico.
Double-cliquez sur le script
boot.pyet renseignez leSSIDetPASSWORDde votre WiFi.
5. Compléter le Code
Téléchargez
dht.pyetlcd1602.pydepuis le cheminkepler-kit-main/libsvers le Raspberry Pi Pico W.
Ouvrez
main.pyet remplacez le code d’origine par le code suivant.import anvil.pico import uasyncio as a from machine import Pin,I2C from lcd1602 import LCD lcd = LCD() from dht import DHT11 sensor = DHT11(Pin(16, Pin.OUT, Pin.PULL_DOWN)) UPLINK_KEY = "<uplink_key_goes_here>" @anvil.pico.callable(is_async=True) async def show_message(text): print(f"show anvil's input message: {text}") lcd.clear() lcd.message(text) return @anvil.pico.callable(is_async=True) async def publish_data(): sensor.measure() return "Temperature: {}, Humidity: {}".format(sensor.temperature, sensor.humidity) # Connecter l'Anvil Uplink. En MicroPython, cet appel bloquera indéfiniment. anvil.pico.connect(UPLINK_KEY) # Vous pouvez faire bien plus avec Anvil sur votre Pico W. # # Voir https://anvil.works/pico pour plus d'informations
Retournez à l’interface Anvil et appuyez sur l’option Uplink dans les paramètres de l’App Browser.
Cliquez sur Activer l’Uplink du serveur Anvil pour cette application pour obtenir la clé uplink.
Copiez-la et remplacez
<uplink_key_goes_here>dansmain.py, ce qui permettra à votre Pico W de se connecter à l’APP Anvil que vous avez créée.
6. Exécuter le Projet
Cliquez sur le bouton Exécuter le script actuel ou appuyez sur F5 pour l’exécuter. Après une connexion réussie, vous verrez un message de connexion réussie dans le Shell.
Lancez Anvil, et vous pourrez voir la température et l’humidité s’afficher depuis l’application Anvil. Si vous cliquez sur le bouton MONTRER après avoir saisi un message dans la boîte de texte, l’I2C LCD1602 affichera le message que vous avez saisi.
Note
Si le caractère que vous avez saisi ne s’affiche pas sur l’I2C LCD1602, vous pouvez tourner le potentiomètre à l’arrière du module pour augmenter le contraste.
6. Publier l’Application
Si vous souhaitez partager votre application, vous pouvez générer un lien de partage en suivant la méthode ci-dessous.
Retournez à la page Anvil et cliquez sur l’option Publier l’application dans les paramètres de l”App Browser.
Dans l’onglet Partager via un lien privé, vous verrez une liste de liens. Toute personne pourra accéder à votre application via ce lien.
Accédez au lien et votre application est prête à être utilisée directement.
Vous pouvez également partager votre application via un lien public, renseignez votre nom de domaine personnalisé et cliquez sur Appliquer pour l’activer.
Comment ça fonctionne ?
Voici la structure de base de main.py, qui forme la base de la communication entre le Pico W et l’application Anvil.
import anvil.pico
import uasyncio as a
UPLINK_KEY = "<uplink_key_goes_here>"
# Connecter l'Anvil Uplink. En MicroPython, cet appel bloquera indéfiniment.
anvil.pico.connect(UPLINK_KEY)
# Vous pouvez faire bien plus avec Anvil sur votre Pico W.
#
# Voir https://anvil.works/pico pour plus d'informations
Configurer le dht11 et lcd1602. Les détails d’utilisation de ces deux composants sont disponibles dans 6.2 Température - Humidité et 3.4 Afficheur à Cristaux Liquides (LCD).
from machine import Pin,I2C
from lcd1602 import LCD
lcd = LCD()
from dht import DHT11
sensor = DHT11(Pin(16, Pin.OUT, Pin.PULL_DOWN))
Dans le code Anvil, nous avons appelé deux fonctions internes du serveur (Pico W).
La première est show_message(), dont la fonction est de faire afficher à l’écran LCD le message saisi par Anvil.
Le décorateur @anvil.pico.callable(is_async=True) rend cette fonction appelable par Anvil.
@anvil.pico.callable(is_async=True)
async def show_message(text):
print(f"show anvil's input message: {text}")
lcd.clear()
lcd.message(text)
return
Ensuite, il y a publish_data(), qui récupère la valeur du dht11 et retourne la température et l’humidité à Anvil.
Encore une fois, il utilise le décorateur @anvil.pico.callable(is_async=True) pour le rendre appelable par Anvil.
@anvil.pico.callable(is_async=True)
async def publish_data():
sensor.measure()
return "Temperature: {}, Humidity: {}".format(sensor.temperature, sensor.humidity)