[PYTHON] Fabriquez un climatiseur intégré à un ordinateur personnel "airpi" avec Raspberry Pi 3!

introduction

Je m'appelle Ryosuke Kamei et je suis consultant en informatique basé sur l'idée du "doux IT"! Actuellement, mon travail est en amont, axé sur l'analyse et la définition des exigences, mais j'écris aussi des programmes! Dans le cadre de nos activités informatiques conviviales, nous présenterons les programmes de biens et services créés avec «Raspberry Pi 3» (communément appelé «Raspberry Pi 3»), qui a pour philosophie de «fournir des PC bon marché qui peuvent être programmés pour l'éducation»!

spécification

Rejoignez le concours Razzpie 2016! J'ai demandé à ma fille d'écrire une proposition ~ Le nom est "Airpi intégré à l'ordinateur personnel airpi"!

C'est fait

Le moteur était faible et il n'y avait pas beaucoup de vent (rires) Cela peut être pratique si vous changez le boîtier ou augmentez la tension pour rendre le ventilateur plus fort.

apparence

エアコン一体型パソコンairberry.png (C'est une tarte à la râpe, et je l'ai écrite avec de la peinture tux.)

spécification

Climatiseur avec capteur pour refroidir la pièce automatiquement Réglage de la température 27 ° C (la température peut être réglée avec une tarte à la râpe) Quand il fait chaud

  1. La température monte
  2. Le capteur attrape
  3. Tarte aux framboises lit
  4. Amenez la pièce à 27 ° C

Quand il fait froid

  1. La température baisse
  2. Le capteur attrape
  3. Tarte aux framboises lit
  4. Arrêtez-vous une fois

charme Quand j'utilise un ordinateur, le vent souffle et il fait plus frais.

la mise en oeuvre

En fait, je voulais que ma fille fasse tout, mais comme je vis loin, mon père prendra le relais d'ici.

référence

[Magazine Razpai - Numéro de juin 2016 Dossier spécial 1 Schéma de câblage des pièces populaires d'Akiba Best 17](https://www.amazon.co.jp/ Magazine Razpai - Numéro de juin 2016-Nikkei BP PC Best Mook- Nikkei Linux-ebook / dp / B01EH2RX42 / ref = as_li_ss_tl? ie = UTF8 & dpid = 61P3o6Agz + L & dpSrc = sims & prest = OU09__BG0,0,0,0_FMpng_AC_UL160_SR120,160 & psc = 1 & refRID = 31SKG5E0DGKBSF9BWNGV & linkCode = LV1 & tag = sr2smail-22 & linkid = 18fd04738627edef8d6fffd6c9b8f9c2) [Razpai Magazine-Août 2016 Special Feature 1 Basic Patterns of Electronic Work 12](https://www.amazon.co.jp/%E3%83%A9%E3%82%BA%E3%83%91 % E3% 82% A4% E3% 83% 9E% E3% 82% AC% E3% 82% B8% E3% 83% B3-2016% E5% B9% B48% E6% 9C% 88% E5% 8F% B7 -% E6% 97% A5% E7% B5% 8CBP% E3% 83% 91% E3% 82% BD% E3% 82% B3% E3% 83% B3% E3% 83% 99% E3% 82% B9% E3% 83% 88% E3% 83% A0% E3% 83% 83% E3% 82% AF-% E6% 97% A5% E7% B5% 8CLinux / dp / 4822237710 / ref = as_li_ss_tl? Ie = UTF8 & qid = 1471057119 & sr = 8-4 & mots-clés =% E3% 83% A9% E3% 82% BA% E3% 83% 91% E3% 82% A4 & linkCode = ll1 & tag = sr2smail-22 & linkId = c42c3f78bd8af3af1414020a400090fe)

procédure

Il utilise le capteur de température numérique "ADT7410" et un pilote de moteur.

  1. [Préparation] Installez libi2c-dev
  2. [Préparation] Ecrire dans le fichier de configuration
  3. [Préparation] Configurer pour utiliser I2C
  4. [Préparation] Vérifiez si I2C peut être utilisé
  5. Schéma de circuit du capteur de température numérique
  6. Obtenez la valeur du capteur de température numérique digital_temperature_sensor.py
  7. Exécutez le programme du capteur de température numérique
  8. Schéma de circuit avec pilote de moteur et moteur
  9. Un programme qui contrôle la marche / arrêt du climatiseur en fonction de la température réglée airpi.py
  10. Déplacer airpi

1. [Préparation] Installez libi2c-dev

Pour utiliser le capteur de température numérique "ADT7410", vous devez installer libi2c-dev!

libi2c-installer dev


$ sudo apt-get install libi2c-dev

2. [Préparation] Ecrire dans le fichier de configuration

bash:/etc/modprobe.d/i2c.Écrire les paramètres dans la configuration


$ sudo sh -c 'echo "options i2c_bcm2708 combined=1" >> /etc/modprobe.d/i2c.conf'

3. [Préparation] Configurer pour utiliser I2C

Menu → Paramètres → Paramètres de framboise → Onglet Interface → I2C est "activé" → Cliquez sur "OK"

[Commentaire vidéo sur les paramètres I2C cliquez sur →](http://www.youtube.com/watch?v=5S- w_pb1XS0)

4. [Préparation] Vérifiez si I2C peut être utilisé

Confirmé avec i2cdetect (il semble être 0 selon la version partielle de 1)


$ sudo /usr/sbin/i2cdetect -y 1
I2Cを使えるかどうかの確認.png

5. Schéma de circuit du capteur de température numérique

circuit.png

6. Obtenez la valeur du capteur de température numérique digital_temperature_sensor.py

Le programme est [Razpai Magazine - Numéro de juin 2016 Special Feature 1 Akiba's Popular Parts Wiring Diagram Best 17 ⑥ Digital Temperature Sensor](https://www.amazon.co.jp/ Razpai Magazine-June 2016 Issue- Nikkei BP PC Meilleur Mook - Nikkei Linux-ebook / dp / B01EH2RX42 / ref = as_li_ss_tl ie = UTF8 & dpid = 61P3o6Agz + L & dpSrc = sims & prest = OU09__BG0,0,0,0_FMpng_AC_UL160_SR120,160 & psc = 1 & refRID = 31SKG5E0DGKBSF9BWNGV & linkCode = LV1 & tag = sr2smail-22 & linkid = 18fd04738627edef8d6fffd6c9b8f9c2 ) A été mentionnée.

La source est téléchargée sur GitHub, veuillez donc l'utiliser comme vous le souhaitez.

Cloner avec git


$ git clone https://github.com/RyosukeKamei/raspberrypi3.git

digital_temperature_sensor.py


#Préparation
# $ sudo apt-get install libi2c-dev 
# $ sudo sh -c 'echo "options i2c_bcm2708 combined=1" >> /etc/modprobe.d/i2c.conf'

#Bibliothèque qui contrôle GPIO
import wiringpi
#Bibliothèque de minuterie
import time
#Appelez les bibliothèques nécessaires pour lire à partir du périphérique I2C
import os
import struct
#Obtenir des arguments
import sys

#Spécification d'argument
param = sys.argv
set_temperture = int(param[1])
print("Température préréglée", set_temperture)

#Créer une instance d'I2C
wiringpi.wiringPiSetup()
i2c = wiringpi.I2C()

#Paramètres I2C
#Spécifiez l'adresse I2C de l'appareil à communiquer
temperture_dev = i2c.setup(0x48)

#Obtenez des données 16 bits pour la température
#Autres Défini pour enregistrer 0x03
i2c.writeReg8(temperture_dev, 0x03, 0x80)

while True:
    #Lire 2 octets de capteur de température
    temperture_data = struct.unpack('2B', os.read(temperture_dev, 2))

    #La valeur est divisée en 2 octets, alors combinez-les en un seul.
    temperture = ( ( temperture_data[0] << 8 ) + temperture_data[1] )

    #Convertir les nombres en valeurs négatives
    if ( temperture_data[0] >= 0x80 ):
        temperture = temperture - 65536

    #Calculez la température en divisant la valeur acquise par 128
    temperture = temperture / 128

    #Affichage de la température
    print ( "Température" , temperture , "C" )
    
    if ( temperture > set_temperture ):
        print ( "Allumez le climatiseur car la température ambiante est supérieure à la température réglée" )
    else:
        print ( "Éteignez le climatiseur car la température ambiante est inférieure à la température réglée" )

    #Chaque seconde
    time.sleep(1)

7. Exécutez le programme du capteur de température numérique

Régler la température à 28 ° C


$ sudo python3 digital_temperature_sensor.py 28
ラズパイ温度計.png

8. Schéma de circuit avec pilote de moteur et moteur

J'ai ajouté un pilote de moteur (TA7291P) et un moteur pour contrôler le moteur au schéma de circuit (maquette) plus tôt. circuit_final.png

9. Un programme qui contrôle la marche / arrêt du climatiseur en fonction de la température réglée airpi.py

airpi.py


#Préparation
# $ sudo apt-get install libi2c-dev 
# $ sudo sh -c 'echo "options i2c_bcm2708 combined=1" >> /etc/modprobe.d/i2c.conf'

#Bibliothèque qui contrôle GPIO
import wiringpi
#Bibliothèque de minuterie
import time
#Appelez les bibliothèques nécessaires pour lire à partir du périphérique I2C
import os
import struct
#Obtenir des arguments
import sys

#Paramètres du terminal GPIO
motor1_pin = 23
motor2_pin = 24

#Réglez le mode de sortie GPIO sur 1
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode( motor1_pin, 1 )
wiringpi.pinMode( motor2_pin, 1 )

#Spécification d'argument
param = sys.argv
set_temperture = int(param[1])
print("Température préréglée", set_temperture)

#Créer une instance d'I2C
i2c = wiringpi.I2C()

#Paramètres I2C
#Spécifiez l'adresse I2C de l'appareil à communiquer
temperture_dev = i2c.setup(0x48)

#Obtenez des données 16 bits pour la température
#Autres Défini pour enregistrer 0x03
i2c.writeReg8(temperture_dev, 0x03, 0x80)

while True:
    #Lire 2 octets de capteur de température
    temperture_data = struct.unpack('2B', os.read(temperture_dev, 2))

    #La valeur est divisée en 2 octets, alors combinez-les en un seul.
    temperture = ( ( temperture_data[0] << 8 ) + temperture_data[1] )

    #Convertir les nombres en valeurs négatives
    if ( temperture_data[0] >= 0x80 ):
        temperture = temperture - 65536

    #Calculez la température en divisant la valeur acquise par 128
    temperture = temperture / 128

    #Affichage de la température
    print ( "Température" , temperture , "C" )
    
    if ( temperture > set_temperture ):
        print ( "Allumez le climatiseur car la température ambiante est supérieure à la température réglée" )
        wiringpi.digitalWrite( motor1_pin, 1 )
        wiringpi.digitalWrite( motor2_pin, 0 )
    else:
        print ( "Éteignez le climatiseur car la température ambiante est inférieure à la température réglée" )
        wiringpi.digitalWrite( motor1_pin, 0 )
        wiringpi.digitalWrite( motor2_pin, 0 )
    #Chaque seconde
    time.sleep(1)

10. Déplacer airpi

La température de consigne est de 28 ℃


$ sudo python3 airpi.py 28

Mouvement

plan du site

Configuration du Raspberry Pi 3

Installation du Raspberry Pi 3 → LAN sans fil → Entrée / sortie japonaise → opération depuis Mac

Créez un environnement Python + MySQL avec Docker sur Raspberry Pi 3!

Installer Docker sur RaspberryPi3 Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3![Construction facile] Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3![Essai et erreur]

Fabriquez un climatiseur intégré à un ordinateur personnel "airpi" avec Raspberry Pi 3!

Faire un climatiseur intégré à l'ordinateur "airpi" avec Raspberry Pi 3!

Enfin ... Créez un contrôleur radio en utilisant python sur Raspberry Pi 3!

Le moteur se déplace en appuyant sur le bouton Le moteur se déplace tout en rapprochant l'aimant Le moteur se déplace lorsque l'aimant est rapproché et s'arrête automatiquement

Jouons avec Raspberry Pi 3 et Python Record of Raspberry Lutte

Programmation avec programmation Node-RED avec Raspberry Pi 3 et programmation normale Allumez la LED avec python sur Raspberry Pi 3 (Hello World) Détecter l'état du commutateur avec Raspberry Pi 3 Exécutez un servomoteur en utilisant python sur Raspberry Pi 3 Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3! Détectez l'interrupteur à glissière à l'aide de python sur Raspberry Pi 3! Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3! Détectez la température en utilisant python sur Raspberry Pi 3! Raspberry Pi 3 utilise python pour faire sonner le buzzer! Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3! Détectez la "luminosité" en utilisant python sur Raspberry Pi 3! Détectez la "température (en utilisant le convertisseur A / N)" en utilisant python sur Raspberry Pi 3! Sortie vers "7 segments LED" en utilisant python sur Raspberry Pi 3! Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur! Utilisez python sur Raspberry Pi 3 et allumez la LED quand il fait noir!

Règles axées sur le développement piloté par les tests

Règles de codage "Écrivons du code doux" (FuelPHP) Règles de dénomination "Membres sympathiques avec vous-même, conviviaux pour l'équipe et invisibles après 3 mois"

Développement d'applications Web avec Docker + Python

Installez Python3 et les bibliothèques associées pip, virtualenv et framework Django, bouteille, Flask sur CentOS sur Docker! Avec un Dockerfile qui résume ces derniers!

Construction d'environnement facile à développer (Docker + PHP)

Lier l'environnement PHP + Eclipse à Apache à l'aide de Docker Création d'un environnement de développement Fuel PHP à l'aide de Docker Création d'un squelette CRUD à l'aide des paramètres initiaux de l'environnement de développement FuelPHP à l'aide de Docker et de l'échafaudage Migration de la base de données FuelPHP

Recommended Posts

Fabriquez un climatiseur intégré à un ordinateur personnel "airpi" avec Raspberry Pi 3!
Faire un rappel de parapluie avec Raspberry Pi Zero W
Faisons une chemise IoT avec Lambda, Kinesis, Raspberry Pi [Partie 1]
Faire une minuterie de lavage-séchage avec Raspberry Pi
Faites fonctionner l'oscilloscope avec le Raspberry Pi
Allumez / éteignez votre PC avec Raspberry Pi
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Plantes Mutter avec Raspberry Pi
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Fabriquez une voiture robotique à conduite automatique avec Raspberry Pi3 B + et capteur de distance à ultrasons HC-SR04
Faisons un ordinateur de vélo avec Raspberry Pi Zero (W, WH)
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
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
Communication série avec Raspberry Pi + PySerial
Configuration du système d'exploitation avec Raspberry Pi Imager
Essayez L Chika avec raspberrypi
Construire un serveur VPN avec Raspberry Pie
Essayez de déplacer 3 servos avec Raspeye
Créer un exe Scrapy avec Pyinstaller
Utiliser une webcam avec Raspberry Pi
Créez un convertisseur Ethernet LAN sans fil et un routeur simple avec Raspberry Pi
[Python + PHP] Créez un moniteur de température / humidité / pression avec Raspberry Pi
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Créer une socket avec une interface Ethernet (eth0, eth1) (Linux, C, Raspberry Pi)
Mesurer la force du signal SIM avec Raspberry Pi
Surveillance des animaux avec Rekognition et Raspberry pi
Créer un contrôleur d'interface audio avec pyusb (2)
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Faire en sorte que Raspberry Pi parle japonais en utilisant OpenJtalk
Essayez de pêcher le Wakasagi avec Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Capteur humain amélioré fabriqué avec Raspberry Pi
Essayez la détection d'objets avec Raspberry Pi 4 + Coral
Exécuter le servomoteur SG-90 avec Raspberry Pi
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Modèle Infer Custom Vision avec Raspeye
Créez un compteur de voiture avec Raspberry Pi
Enregistrement de la valeur d'Inkbird IBS-TH1 avec Raspberry Pi
Travailler avec le GPS en Python pour Raspberry Pi 3
Fabriquez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 3
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~