Création d'un système de contrôle de température avec tarte aux framboises et ESP32 (3) Réception d'un fichier Python

spécification

Enregistrez les données ESP32 envoyées à la tarte aux framboises dans SQLite

-Exécuter UDP reçu le fichier python au démarrage ・ Installez Apache sur la tarte aux framboises ・ Activez SQLite -Créer un fichier php. Rendez-le visible dans le navigateur

Je viens d'apprendre le php, donc je prévois de faire quelque chose d'horriblement simple.

organisation des fichiers

home/pi/   └SQLiteHTMLShow/      ├UDP_SQLite.py      └ db/        └data.db

Réception UDP → enregistrement SQLite

Créez un fichier python qui reçoit UDP et enregistre les données dans SQLite.

python UDP_SQLite.py



# -*- coding: utf-8 -*-
import socket #Transmission UDP
import struct #Pour la conversion de chaîne nombre → octet
from contextlib import closing #Pour avec

import sqlite3
import time
import datetime

import sys

UDP_IP = "" #C'est bien comme ça
UDP_PORT = 1234 #Recevoir le numéro de port
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #Génération de socket

sock.bind((UDP_IP, UDP_PORT)) #Enregistrer la prise
#Spécifiez la base de données
dbname = '/home/pi/SQLiteHTMLShow/db/data.db'

with closing(sock): #Fermer automatiquement le socket lorsque le programme se termine
    
  while True: #boucle infinie
    try:
      data, addr = sock.recvfrom(1024) #Recevoir
      
      #print ( data ) #Afficher la chaîne d'octets telle quelle
      #print(addr[0]) #Affichage de l'adresse IP
      #print(addr[1]) #Affichage du port source
      
      #Le nom de la table dans la base de données
      ESP32 =addr[0].split('.')
      print('dbtable = ' + 'ip' + str(ESP32[2] + ESP32[3]))#Adresse IP 192.Utilisez 168 ou moins comme nom de table
      dbtable = 'ip' + str(ESP32[2] + ESP32[3])
      
      #Connectez-vous à SQLite
      conn = sqlite3.connect(dbname)
      c = conn.cursor()
   
      #Vérifiez s'il existe une table dans SQLite
      checkdb = conn.execute("SELECT * FROM sqlite_master WHERE type='table' and name='%s'" % dbtable)

      #S'il n'y a pas de table, créez-en une nouvelle
      if checkdb.fetchone() == None:
          create_table = '''create table ''' + dbtable + '''(id integer primary key autoincrement, time text,
                    ip text, port integer, temp text, humi text)'''
          print(create_table)

          c.execute(create_table)#Courir
          conn.commit()

      #Enregistrez la température, l'humidité et les horodatages.
      sql = 'insert into ' + dbtable + '(time,ip,port,temp,humi) values (?,?,?,?,?)'
      
      todaydetail = datetime.datetime.today()
      time = todaydetail.strftime("%Y/%m/%d %H:%M:%S")
      ip = addr[0]
      port=addr[1]

      print(str(data))
      #Décomposer les chaînes de numéro de périphérique, de température et d'humidité envoyées ensemble
      val=str(data).replace('b','').replace("'",'').split(',')
      
      print(float(val[0]),float(val[1]))
      
      data= (time,ip,port,float(val[0]),float(val[1]))
      c.execute(sql, data)
      conn.commit()
      #Déconnecter
      conn.close()
    except:
      print(sys.exc_info())

Avec cela, l'adresse IP spécifiée dans ESP32 devient le nom de la table tel quel et est enregistrée dans SQLite.

Si les adresses IP d'ESP32 sont définies individuellement, un tableau séparé sera créé.

Je pense que lorsque je l'utilise pour le travail, il occupera largement l'adresse IP de l'entreprise, je n'utiliserai donc qu'une seule adresse IP.

Recommended Posts

Création d'un système de contrôle de température avec tarte aux framboises et ESP32 (3) Réception d'un fichier Python
Production de système de contrôle de température avec tarte aux framboises et ESP32 (1)
Production d'un système de contrôle de température avec tarte aux framboises et ESP32 (2) Production d'un appareil de transmission
Créer un fichier power simple avec Python
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
[Python + PHP] Créez un moniteur de température / humidité / pression avec Raspberry Pi
Obtenez la température et l'humidité avec DHT11 et Raspberry Pi
Mesurer la température du processeur de Raspeye avec Python
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Mesurez la température et l'humidité avec Raspberry Pi3 et visualisez avec Ambient
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Installez pyenv sur Raspberry Pi pour gérer Python
Contrôlez la lecture de musique sur un smartphone connecté à Raspberry Pi 3 et Bluetooth avec AVRCP
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Débutant Python s'ouvre et se ferme avec Raspberry Pi
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Mesurez et comparez les températures avec Raspberry Pi et générez automatiquement des graphiques
getrpimodel: Reconnaître le modèle Raspberry Pi (A, B, B +, B2, B3, etc.) avec python
Créez facilement un TweetBot qui vous informe de la température et de l'humidité avec Raspberry Pi + DHT11.
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Commande de servomoteur avec Raspberry Pi
Créer un système de recommandation avec python
Utiliser une webcam avec Raspberry Pi
Classique de Noël (?) Éclairage d'un arbre de Noël avec Raspberry Pi et Philips Hue
Créez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 4
Faire une boussole d'affichage kanji avec Raspberry Pi et Sense Hat
[Remarque] Utilisation d'un écran LCD à 16 caractères à 2 chiffres (1602A) de Python avec Raspeye
Comment télécharger des fichiers sur Cloud Storage à l'aide de Python [Créer une caméra à point fixe avec Raspberry PI # 1]
Construire un environnement distribué avec la série Raspberry PI (Partie 2: Analyse PiServer et conception de système alternatif)
Contrôle exclusif avec fichier de verrouillage en Python
Lire et formater des fichiers csv mélangés avec des tabulations de virgule avec des pandas Python
[Raspberry Pi] Ajouter un thermomètre et un hygromètre
Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3!
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Un mémo contenant Python2.7 et Python3 dans CentOS
Créez un convertisseur Ethernet LAN sans fil et un routeur simple avec Raspberry Pi
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Application de notification de message Rabbit MQ avec Growl en Python ~ avec Raspeye et Julius ~
Faire une minuterie de lavage-séchage avec Raspberry Pi
Faites fonctionner l'oscilloscope avec le Raspberry Pi
Détectez la température à l'aide de python sur Raspberry Pi 3!
Créez un compteur de voiture avec Raspberry Pi
J'ai créé un fichier de configuration avec Python
Travailler avec le GPS en Python pour Raspberry Pi 3
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --2 introduction PHP
Compilation croisée de Raspberry Pi et création d'un environnement de développement de débogage à distance avec VS Code
Créons un système de réception simple avec le framework sans serveur Python Chalice et Twilio
Source compilez Apache2.4 + PHP7.4 avec Raspberry Pi et créez un serveur Web ―― 1. Introduction à Apache
[Pour les débutants] J'ai fait un capteur humain avec Raspberry Pi et notifié LINE!
Utilisation du capteur de température numérique à 1 fil DS18B20 avec Raspberry Pi de Python
Création d'un environnement distribué avec la série Raspberry PI (Partie 3: Installation et configuration de dnsmasq)
Utilisez le capteur de température analogique Raspberry Pi Python vers TMP36 et le convertisseur MCP3008 AD
Raspberry Pi 3 x Julius (fichier de lecture et fichier de grammaire)
Comment lire un fichier CSV avec Python 2/3
Discord bot raspberry pi zéro avec python [Note]
Construire un environnement python avec virtualenv et direnv
Procédure de création d'un LineBot réalisé avec Python
J'ai essayé L-Chika avec Razpai 4 (édition Python)