Table des matières:

Prise de courant compatible Internet : 13 étapes
Prise de courant compatible Internet : 13 étapes

Vidéo: Prise de courant compatible Internet : 13 étapes

Vidéo: Prise de courant compatible Internet : 13 étapes
Vidéo: COFFRET DE COMMUNICATION : COMMENT ÇA MARCHE ? 2024, Juillet
Anonim
Image
Image
Fournitures nécessaires
Fournitures nécessaires

Instructions de configuration du projet de serveur Web PowerHub et de la prise Internet activée

Hub central de persistance des données pour la lumière et les prises compatibles Internet dans votre maison !

Étape 1: Instructions de configuration du projet de serveur Web PowerHub et de la prise Internet

Hub central de persistance des données pour la lumière et les prises compatibles Internet dans votre maison

Disque dur RaspberriPi clignotant / Installez le logiciel requis (à l'aide d'Ubuntu Linux) Téléchargez "RASPBIAN JESSIE LITE"

Créez votre nouveau disque dur pour DashboardPI

Insérez la microSD dans votre ordinateur via un adaptateur USB et créez l'image disque à l'aide de la commande dd

Localisez votre carte microSD insérée via la commande df -h, démontez-la et créez l'image disque avec la commande disk copy dd

$ df -h /dev/sdb1 7.4G 32K 7.4G 1% /media/XXX/1234-5678

$ umount /dev/sdb1

Attention: assurez-vous que la commande est parfaitement exacte, vous pouvez endommager d'autres disques avec cette commande

if=emplacement du fichier image RASPBIAN JESSIE LITE of=emplacement de votre carte microSD

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (remarque: dans ce cas, il s'agit de /dev/sdb, /dev/sdb1 était une partition d'usine existante sur le microSD)

Configurer votre RaspberriPi

Insérez votre nouvelle carte microSD dans le raspberrypi et allumez-le avec un moniteur connecté au port HDMI

Connexion

utilisateur: pi pass: framboise

Changez le mot de passe de votre compte pour plus de sécurité

sudo passwd pi

Étape 2: Activer les options avancées de RaspberriPi

sudo raspi-config

Choisissez: 1 Développez le système de fichiers

9 options avancées

Nom d'hôte A2 changez-le en "WIFI-OUTLET"

A4 SSH Activer le serveur SSH

A7 I2C Activer l'interface i2c

Activer le clavier anglais/américain

sudo nano /etc/default/keyboard

Modifiez la ligne suivante: XKBLAYOUT="us"

Redémarrez PI pour que les modifications de la disposition du clavier/le redimensionnement du système de fichiers prennent effet

$ sudo shutdown -r maintenant

Connexion automatique à votre WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Ajoutez les lignes suivantes pour que votre raspberrypi se connecte automatiquement à votre WiFi domestique (si votre réseau sans fil se nomme "linksys" par exemple, dans l'exemple suivant)

network={ ssid="linksys" psk="MOT DE PASSE SANS FIL ICI" } Redémarrez PI pour vous connecter au réseau WiFi

$ sudo shutdown -r maintenant

Maintenant que votre PI est enfin sur le réseau local, vous pouvez vous y connecter à distance via SSH. Mais vous devez d'abord obtenir l'adresse IP dont il dispose actuellement.

$ ifconfig Recherchez "inet addr: 192.168. XXX. XXX" dans la sortie de la commande suivante pour l'adresse IP de votre PI

Allez sur une autre machine et connectez-vous à votre raspberrypi via ssh

$ ssh [email protected]. XXX. XXX

Étape 3: commencer à installer les packages requis

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install vim git python-requests python-gpiozero python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev python3-spidev py

Mettre à jour les paramètres de fuseau horaire local

$ sudo dpkg-reconfigurer tzdata

sélectionnez votre fuseau horaire à l'aide de l'interface

Configurez la commande simple directory l [facultatif]

vi ~/.bashrc

ajoutez la ligne suivante:

alias l='ls -lh'

source ~/.bashrc

Correction de la mise en évidence de la syntaxe par défaut de VIM [facultatif]

sudo vi /etc/vim/vimrc

décommentez la ligne suivante:

syntaxe sur

Installer les pilotes Python i2c

Étape 4: CONSTRUIRE L'API WEB

Les instructions suivantes vous permettront de construire le hub central qui explique aux différentes prises et interrupteurs muraux compatibles wifi que vous pouvez construire, quels appareils sont allumés et éteints. Il s'agit d'un petit script PHP à placer sur un hébergeur de votre choix. Il dispose de l'API suivante pour obtenir et définir des informations. Remarque: n'oubliez pas d'inclure le fichier.htaccess pour que le routage des URL se fasse correctement.

Installez le dossier "index.php", "values/" et settings.php (configuré selon vos propres valeurs) sur un serveur Web compatible PHP de votre choix. La valeur de la clé secrète dans le fichier "settings.php" doit correspondre à la valeur de la clé secrète que vous définiriez dans le fichier "settings.py". Cela empêchera à un niveau basique tout autre trafic Web de définir/écrire des valeurs, d'allumer vos appareils, vous avez maintenant besoin de cette clé API hachée dans l'en-tête de la requête HTTP pour le faire.

L'API prend en charge les fonctionnalités suivantes, pour ce projet, nous n'utiliserons que les valeurs "drapeaux" qui sont des valeurs booléennes qui indiquent au commutateur d'activer et de désactiver. Peut-être que si vous vouliez profiter des valeurs de "lecture", vous pourriez l'avoir, donc si une température ambiante devient trop chaude en y enregistrant une température, elle pourrait allumer un ventilateur de fenêtre, etc.

Obtenez le code

Clonez le projet suivant depuis GitHub pour obtenir le code permettant d'exécuter le serveur Web et la sortie RaspberryPI.

github.com/khinds10/PowerHub

Points de terminaison d'API lors de l'exécution sur un serveur Web

myhost/message (obtenir l'ensemble de messages actuel)

myhost/message/set (HTTP POST une valeur de chaîne brute à cette URL pour définir un nouveau message)

myhost/flag/{id} (obtenir le statut booléen actuel du drapeau par entier: {id})

myhost/flag/all (obtenir tout l'état booléen actuel de tous les drapeaux sous forme de tableau)

myhost/flag/{id}/set (définissez l'état booléen actuel sur 'true' pour le drapeau par entier: {id})

myhost/flag/{id}/unset (définissez l'état booléen actuel sur 'false' pour le drapeau par entier: {id})

myhost/reading/{id} (obtenir la valeur moyenne actuelle de la lecture par entier: {id})

myhost/reading/all (obtenir la valeur moyenne actuelle pour toutes les lectures sous forme de tableau)

myhost/reading/{id}/set (HTTP POST une valeur numérique brute à cette URL pour ajouter une nouvelle valeur à la moyenne calculée actuelle) -- voir ci-dessous pour savoir combien de valeurs au total sont compilées à la valeur moyenne Configuration Les valeurs 'lectures' sont calculées comme des moyennes d'un certain nombre de valeurs numériques de lectures persistantes récentes. Définissez la constante suivante sur le nombre de lectures les plus récentes à inclure pour produire la moyenne.

$readingsAverageLimit = 5;

Datastore Server conservera les valeurs dans des fichiers simples localisés selon les conventions de nommage ci-dessous. Remarque: {id} sera remplacé par l'entier réel présenté par l'URL de la requête entrante.

$valueFileFolder = 'values' (nom du dossier contenant les fichiers de mesure) $messageFileName = 'message.msg' (nom du fichier texte du message) $readingsFilesNames = 'reading{id}.avg' (nom du CSV moyenné lectures) $flagFilesNames = 'flag{id}.flg' (nom du fichier d'indicateur de valeur d'indicateur booléen)

Assurez-vous que tous les fichiers de valeurs sont accessibles en écriture par les valeurs systemchmod 777/*

Étape 5: Fournitures nécessaires

Fournitures nécessaires
Fournitures nécessaires
Fournitures nécessaires
Fournitures nécessaires
Fournitures nécessaires
Fournitures nécessaires

Scie cloche de 1 pouce (pour une perceuse)

Module de relais 5V 2 canaux

Plaque murale pour prise double

Prise Duplex

Pi Zéro W

Boîtier d'encastrement à montage en surface double

Boutons-poussoirs lumineux blancs

Étape 6: Construire le point de vente

Construire le point de vente
Construire le point de vente

Pause onglets de sortie

Brisez la languette sur le côté de la prise pour que chaque prise s'allume/s'éteigne indépendamment

Étape 7: Installer les boutons

Installer les boutons
Installer les boutons
Installer les boutons
Installer les boutons

Sur la façade de sortie à l'aide de la scie cloche de 1 découpez 2 trous pour les boutons à placer à côté des sorties

Test Dimensionnement des composants

Assurez-vous que tous les composants s'insèrent dans la boîte de montage en surface de sortie

Étape 8: Fil de relais

Relais de fil
Relais de fil
Relais de fil
Relais de fil

Câblez le Relais à la prise, de la rallonge allant au mur, connectez la masse (vert) et le neutre (blanc) directement à la prise Pour le chaud (noir) connectez-les au relais puis du relais à chaque prise connecteurs chauds individuellement

Étape 9: Images de câblage et d'assemblage supplémentaires

Images de câblage et d'assemblage supplémentaires
Images de câblage et d'assemblage supplémentaires

Étape 10: Schéma de câblage

Schéma de câblage
Schéma de câblage

Utilisez le schéma pour câbler correctement les composants pour qu'ils fonctionnent avec le code Python RaspberryPI.

Étape 11: Testez la marche à vide

Test de marche à sec
Test de marche à sec
Test de marche à sec
Test de marche à sec
Test de marche à sec
Test de marche à sec

Après l'assemblage final avant de visser l'unité de trou, effectuez un essai à sec de l'appareil pour vous assurer qu'il n'y a pas de court-circuit, de mauvais câblage

Étape 12: définir les scripts de démarrage

crontab -e

ajouter les lignes suivantes

@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py

Conseillé: