[PYTHON] Visualisons la pièce avec tarte aux râpes, partie 1

introduction

Processus de production

Ringo qui a rejoint une entreprise Web pour une raison quelconque à partir d'avril J'ai fini par toucher Laravel, MySQL et Ansible, que je n'avais jamais touchés lors de la formation. Donc, après avoir étudié, je vais visualiser la pièce à l'aide de la tarte aux râpes et du capteur qui se trouvaient dans la pièce. Il semble que vous ayez fait quelque chose de similaire avec le titre Créer un robot de surveillance de la température avec ESP8266 et Raspberry Pi.

Déterminer les spécifications

J'essaierai de répondre à peu près aux conditions suivantes.

--Moniteur de température, d'humidité et de pression ――Je veux pouvoir voir de l'extérieur comme de l'intérieur de la maison ――Je souhaite afficher graphiquement non seulement les données actuelles, mais également les changements dans la journée.

Constitution

Quoi utiliser

--Razpai, 3b + a été utilisé dans cet article

structure globale

image.png

Considérez la configuration en fonction des spécifications. Le capteur et l'OLED sont connectés par communication I2C en perçant la maquette. Les données acquises seront enregistrées dans Raspeye et envoyées à l'instance configurée sur CONOHA. La procédure de traitement est la suivante.

  1. Acquisition et traitement des données du capteur
  2. Affichage sur LCD
  3. Enregistrer au format csv
  4. Jetez les données dans le cloud
  5. Enregistrer dans la base de données
  6. Affichage sur la page Web

Je vais faire un processus selon la procédure de. Dans cet article, je vais expliquer 1-3.

capteur

câblage

Comme il s'agit d'une communication I2C, connectez simplement SDI et SCK, et le module est de 3,3 V, alors soyez prudent. ʻI2cdetect -y 1` S'il est confirmé et reconnu, ça va image.png

Dans l'image, il existe d'autres connexions, mais 0x3C est l'adresse OLED et 0x76 est l'adresse BME280.

Dans I2C, il y a diverses choses telles que le pull-up est nécessaire, mais je vais continuer en supposant que c'est sur la carte du côté du capteur. Cependant, la communication I2C elle-même n'est pas résistante au bruit, il peut donc être préférable de ne pas trop l'étirer.

Obtenez de la valeur

La bibliothèque a utilisé l'exemple SWITCH CIENCE. SWITCHSCIENCE/BME280 Il est écrit pour Python2, je vais donc le modifier un peu. Comme un changement

Le code modifié sera ici. Vous aurez également besoin de smbus pour l'exécuter. image.png

J'ai pu confirmer l'acquisition de la valeur sur le terminal.

Affichage sur LCD

Le cristal liquide utilisé est un module OLED équipé du SSD1306. Je ne peux pas écrire parce que je ne me souviens pas où je l'ai acheté, mais je pense que c'est presque la même chose, peu importe où je l'ai acheté. J'ai utilisé la bibliothèque publiée par Adafruit. adafruit/Adafruit_Python_SSD1306

J'ai besoin de quelques conseils pour le déplacer. Déplacez l'exemple de code de l'écran EL organique avec Raspeye Reportez-vous à l'article ci-dessus et installez les bibliothèques nécessaires sur pyenv afin de pouvoir utiliser OLED. Ajoutez le traitement de bme280 en vous référant à Adafruit_Python_SSD1306 / examples / stats.py.

#Écran propre
draw.rectangle((0,0,width,height), outline=0, fill=0)
sensor_data = bme280.readData() #Acquisition des données du capteur
temp = "%6.2f" % (sensor_data[0])
draw.text((x, top), "Temp =" + temp + " °C", font = font, fill = 255)
press = "%7.2f" % (sensor_data[1])
draw.text((x, top + 8), "Press = " + press + " hPa", font = font, fill = 255)
hum = "%6.2f" % (sensor_data[2])
draw.text((x, top + 16), "Hum =" + hum + " %", font = font, fill = 255)
#Écran d'affichage
disp.image(image)
disp.display()

Extrait le traitement dans la boucle while. Quant au contenu du processus, les données sont acquises à partir du capteur et affichées ligne par ligne.

image.png

J'ai pu afficher les données acquises sur l'OLED.

Enregistrer dans csv

J'ai dit enregistrer dans le cloud, mais je vais l'enregistrer en csv pour le moment.

#Processus d'écriture de fichier
date = str(datetime.date.today())
nowtime = datetime.datetime.now()
#Écraser s'il y a un fichier
if(os.path.exists(path + date +".csv")):
    f = open(path + date +".csv", 'a')
    f.write(str(nowtime.hour) + ':' + str(nowtime.minute) + ':' + str(nowtime.second) + ',')
    f.write(temp + ',' + press + ',' + hum + ' \n')
    f.close()
#Générer sinon
else:
    f = open(path + date +".csv", 'w')
    f.write("date,Temp,Press,Hum\n")
    f.write(str(nowtime.hour) + ':' + str(nowtime.minute) + ':' + str(nowtime.second) + ',')
    f.write(temp + ',' + press + ',' + hum + ' \n')
    f.close()

J'ai écrit le processus pour séparer par date et enregistrer dans csv. Lorsque le graphique de sortie est affiché dans Excel, il ressemble à ceci.

image.png

en conclusion

Le programme final est publié sur gist. raspi_logger.py La prochaine fois, j'essaierai de créer une API à l'aide de Laravel et du cloud et d'afficher le graphique sur le navigateur.

Recommended Posts

Visualisons la pièce avec tarte aux râpes, partie 1
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~
Essayez d'utiliser le processeur à 4 cœurs du Raspberry Pi 2 avec Parallel Python
Essayez L Chika avec raspberrypi
Essayez de déplacer 3 servos avec Raspeye
Jouez avec le module de caméra Raspberry Pi Zero WH Partie 1
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Essayez de pêcher le Wakasagi avec Raspberry Pi
Essayez rapidement de visualiser votre ensemble de données avec des pandas
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Essayez de résoudre le diagramme homme-machine avec Python
Comment essayer l'algorithme des amis d'amis avec pyfof
Observez le groupe de météores Futago avec RaspberryPi4
Connectez-vous à MySQL avec Python sur Raspberry Pi
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Fabriquez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 3
J'ai tweeté l'éclairement de la pièce avec Raspberry Pi, Arduino et un capteur optique
[Vérification] Essayez d'aligner le groupe de points avec la fonction d'optimisation de pytorch Partie 1
Essayez de résoudre le livre des défis de programmation avec python3
IoT facile pour démarrer avec Raspeye et MESH
Essayez de résoudre le problème d'affectation du médecin de formation avec Python
Comment utiliser Raspeye Relay Module Python
Essayez de déboguer Python sur Raspberry Pi avec Visual Studio.
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Mesurez la température et l'humidité avec Raspberry Pi3 et visualisez avec Ambient
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
Essayez d'obtenir le contenu de Word avec Golang
[Neo4J] ④ Essayez de gérer la structure du graphe avec Cypher
Quand j'ai essayé de faire une communication socket avec Raspberry Pi, le protocole était différent
J'ai parlé à Raspberry Pi
Présentation de PyMySQL à Raspberry pi3
Introduction facile au piratage domestique avec Raspberry Pi et discord.py
Mettre à jour Raspberry Pi Python vers 3.7 ou version ultérieure avec pyenv
Essayez de jouer avec l'uprobe qui prend directement en charge Systemtap
[Part.2] Exploration avec Python! Cliquez sur la page Web pour vous déplacer!
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Changer le message affiché lors de la connexion à Raspberry Pi
Essayez de déchiffrer les caractères déformés dans le nom du fichier joint avec Python
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Je voulais faire fonctionner le moteur avec une tarte à la râpe, alors j'ai essayé d'utiliser la carte de commande du moteur de Waveshare
Notez ce que vous voulez faire à l'avenir avec Razpai
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom
Essayez de visualiser les nutriments des flocons de maïs que le champion de M-1 Milkboy a dit avec Python
Portez FreeRTOS vers Raspberry Pi 4B
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Utilisez vl53l0x avec RaspberryPi (python)
Raspberry pi 1 modèle b, partie rouge noeud 17
Commande de servomoteur avec Raspberry Pi