Envoyer des données sur son propre server

Envoyer des données sur son propre server

Envoyer des données sur son propre server

Comme tout objet connecté il est possible d'envoyer ses données vers sont propre serveur sans passer par un site tierce.
100% Complete

Objectifs pédagogiques

En suivant ce projet vous saurez :

  • Flasher votre Wipy,
  • Connecter votre Wipy sur votre réseau Wifi.
  • Envoyer les données collectées par une Pysense vers votre serveur Domoticz

Attention, ce projet ne vous apprendra pas à installer un serveur Domoticz.

Flasher votre Wipy

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.

Download du logiciel Pycom upgrade

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

Screenshot - 12_05_2019 , 22_39_48

Cocher le réseau Wifi et faire Next

Screenshot - 12_05_2019 , 22_42_25

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.

Screenshot - 12_05_2019 , 22_44_12

Nous y voila, prenez la version pour votre système (Windows dans mon cas) :

Screenshot - 12_05_2019 , 22_46_30

Flashage du firmware stable avec "Pycom upgrade"

Screenshot - 12_05_2019 , 22_49_07
Screenshot - 12_05_2019 , 23_01_36
Screenshot - 12_05_2019 , 23_02_45

Et voila !

Connecter la Wipy sur son réseau Wifi

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)

Envoyer ses données vers un serveur Domoticz

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.

Copyright © 2015 Alex-design.fr All rights reserved.