En suivant ce projet vous saurez :
Attention, ce projet ne vous apprendra pas à installer un serveur Domoticz.
Si jamais votre Wipy a été flashée pour utiliser les services pybytes, il est nécessaire de les enlever (car il ne vont plus servir) et de mettre un firmware stable.Si vous n'avez pas flashé votre Wipy vous pouvez sans doute passer ce chapitre.Pour flasher un firmware stable, il faut tout d'abord récupérer le logciel prévu par Pycom.
Aller sur le site pybytes pour récupérer l'utilitaire de flashage.
Une fois identifié sur votre compte allez dans Devices > Add device to Pybytes et choisir la Wipy
Cocher le réseau Wifi et faire Next
Saisissez ce que vous voulez, de tout façon on n'en a pas besoin, on veut juste récupérer le logiciel de mise à jour de firmware.
Nous y voila, prenez la version pour votre système (Windows dans mon cas) :
Et voila !
Modifier le fichier boot.py pour qu'il se connecte à votre réseau Wifi en changeant le SSID, le passwd et les identifiants de conection FTP
import pycom
import os
import machine
import network
import time
pycom.heartbeat(True)
# initiate network -------------------------------------------------------------
# Duplicate output on UART
uart = machine.UART(0, 115200)
os.dupterm(uart)
# Disable telnet and FTP server before connecting to the network
server = network.Server()
server.deinit()
# Connect to WLAN
wlan = network.WLAN()
wlan = network.WLAN(mode=network.WLAN.STA)
nets = wlan.scan()
for net in nets:
if net.ssid == '<SSID>':
wlan.connect(net.ssid, auth=(net.sec, '<passwd>'), timeout=5000)
while not wlan.isconnected():
machine.idle() # save power while waiting
# Enable telnet and FTP server with new settings
# You will have to update your Atom config with this login an passwd
server.init(login=('micro', 'python'), timeout=600)
# Wait some seconds before continuing
time.sleep(5)
L'envoie de donénes vers un serveur Domoticz implique l'envoie d'une requète en passant des paramètres en JSON.
On peut envoyer ses données au format JSON vers un serveur en utilisant urequests de la façon suivante :
from pysense import Pysense
from LTR329ALS01 import LTR329ALS01
urlDomoticz = "http://<IPServer>:<PortServer>/json.htm"
py = Pysense()
lt = LTR329ALS01(py)
def sendLight():
light = lt.light() # read light data. wil give a tuple with (redLight,blueLight)
lightResult = (int(light[0]) + int(light[1])) / 2
requestJSON = { "type":"command",
"param":"udevice",
"idx":276,
"svalue":lightResult}
Requete = urequests.get(urlDomoticz, requestJSON)
print( Requete.text ) # print the request result returned by the Domoticz server
# ============================================
# Send data in a thread. That's supposed to give user a chance to enter command in the command line (and not to stuck CPU)
_thread.start_new_thread(sendLight,())
Vos données sont correctement reçus dans votre serveur Domoticz ? Alors vous avez terminé ce projet.