Piloter les appareils électroménagers (« smart home ») via un chat bot sur Raspberry Pi. Nous construisons un système de maison intelligente à faire soi-même peu coûteux basé sur Raspberry Pi Solution de maison intelligente Raspberry pi

Grâce à une large gamme de modules supplémentaires, l'ordinateur miniature Raspberry Pi est le mieux adapté à ceux qui aiment construire de leurs propres mains des systèmes Smart Home peu coûteux.

Le système d'exploitation peut être Raspbian, basé sur le noyau Linux, ainsi que sur des extensions telles que Pimatic. Il est encore plus simple d'assembler une « maison intelligente » en utilisant des solutions logicielles et matérielles intégrées sur une « plateforme ouverte », par exemple openHAB, Fhem, SHC (SmartHome Control) ou wiButler.

Modules de maison intelligente pour Raspberry Pi

Construire un système de « maison intelligente » sur Raspberry Pi n'a de sens que lorsqu'il peut être utilisé pour contrôler divers appareils, et pour cela, vous avez besoin de modules appropriés.

Le Raspberry Pi étant un produit populaire auprès des bricoleurs, il existe un vaste choix de modules Smart Home disponibles à la vente. Nous allons vous montrer quelques-uns des plus intéressants.

433 MHz - Récepteur et émetteur pour Raspberry Pi

La fréquence 433 MHz est souvent utilisée dans les composants des systèmes Smart Home abordables, tels que les interrupteurs et les thermostats de radiateur que l'on trouve dans les quincailleries.

Ces émetteurs et récepteurs sont idéaux pour une installation dans un système de maison intelligente construit sur Raspberry Pi. Un ensemble de ces deux modules peut être facilement acheté pour environ 600 roubles.

Module caméra pour Raspberry Pi


Avec le module caméra connecté, le Raspberry Pi peut être utilisé comme système de vidéosurveillance.

La caméra est compatible avec le système d'exploitation Raspbian, elle est capable d'enregistrer des vidéos en résolution Full HD et de prendre des photos de 5 mégapixels.

Ce module est disponible avec et sans filtre infrarouge à un prix à partir de 2 000 roubles.

Capteur de mouvement pour Raspberry Pi

Si vous souhaitez que les lumières et autres appareils électroniques (comme une caméra) s'allument lorsqu'il y a du mouvement dans une zone de votre maison, vous aurez besoin d'un capteur de mouvement connecté à votre système de maison intelligente.

Le prix est particulièrement attractif pour l'ensemble de cinq «capteurs de mouvement pyroélectriques infrarouges PIR».

Vous pouvez acheter ce forfait pour seulement 480 roubles.

Capteur d'humidité et de température de l'air pour Raspberry Pi

La fonctionnalité de la station météo est fondamentale pour Smart Home. Recevoir et traiter des données météorologiques à l’aide du Raspberry Pi est très simple. Vous n'avez besoin que d'un seul capteur bon marché que vous connectez à un mini-ordinateur : le DHT11, qui coûte moins de 600 roubles, est idéal.

Module Enocean pour Rapsberry Pi

Enocean est une technologie sans fil qui ne nécessite pas de source d'alimentation. L'essentiel est le suivant : l'énergie nécessaire pour effectuer une action particulière naît d'un changement d'état (appui sur un bouton, différence de température, apparition du soleil, coup de vent, etc.).

En conséquence, les modules qui l'accompagnent sont souvent des interrupteurs ou des capteurs de température.

Pour contrôler les appareils utilisant la technologie Enocean via Rapsberry Pi, vous aurez besoin d'un module approprié, qui peut être acheté pour seulement 3 600 roubles.

Alarme incendie pour Raspberry Pi

Souvent, un système de maison intelligente est utilisé pour augmenter le niveau de confort de la maison, mais la protection de la maison peut également devenir l'une des fonctions importantes. En plus des alarmes de sécurité et des caméras de vidéosurveillance, vous pouvez installer des capteurs de fumée et de fuite d’eau.

À l'aide d'un détecteur de fumée, qui ne coûte que 500 roubles, vous pouvez créer votre propre alarme incendie. Cependant, lors de la conception d’un élément de sécurité aussi important d’une maison intelligente, vous devez vérifier la fiabilité du système.

Module homématique pour Rapsberry Pi

Homematic est l'un des systèmes Smart Home les plus populaires en Europe. Pour l'interaction de tous ses composants, une unité de commande centrale CCU2 (MATIC Home Gateway) est généralement nécessaire.

Vous pouvez maintenant coupler le module sans fil approprié avec le Raspberry. L'un d'eux, de la société ELV, coûte environ 1 700 roubles.

Avec les modules présentés dans cet article, vous pouvez construire un système Smart Home très multifonctionnel. Cependant, il existe de nombreux autres modules pour Rapsberry Pi, par exemple pour travailler avec les normes sans fil Z-Wave et Zigbee.

Photo: entreprises manufacturières, CHIP.de

Cet article a été rédigé pour vous rappeler que la maison intelligente est bien plus proche qu’on ne le pensait.

Home Assistant est une plateforme d'automatisation open source fonctionnant sur Python 3. Elle vous permet de surveiller et de contrôler tous les appareils de votre maison et d'automatiser les actions. Peut idéalement fonctionner sur un ordinateur monocarte Raspberry PI.

Allons-y dans l'ordre :

1. Noyau central

Une maison intelligente a besoin d'un contrôleur central (hub, serveur, etc.). Il s’agit du lien entre tous les éléments d’une maison intelligente et l’utilisateur. Il existe des systèmes distribués sans contrôleur central, mais vous avez toujours besoin d'un collecteur d'informations qui montrera à l'utilisateur toutes les dernières nouvelles de chaque appareil.

PC- une excellente option si une charge importante sur le serveur est requise, car Même les vieux ordinateurs portables auront suffisamment de performances (sauf si vous diffusez des vidéos 4K ou utilisez 10 caméras avec encodage HEVC). L'inconvénient est que dans 95% des cas il y a un refroidissement actif et pour connecter un relais régulier il faut toujours utiliser des béquilles supplémentaires.

Contrôleurs spécialisés- une excellente option si vous avez besoin de fiabilité et de tolérance aux pannes. La probabilité d’une panne de contrôleur industriel (entre de bonnes mains) se rapproche de la probabilité d’une apocalypse zombie. Mais il y a aussi un inconvénient : la programmation et la configuration peuvent être effectuées soit par ceux qui ont déjà automatisé plusieurs convoyeurs, soit par une personne dont le cerveau n'est pas constitué de neurones mais de circuits relais. Et le plus souvent, leur interface est, pour le moins, ascétique. Malheureusement, je ne suis pas si intelligent, donc ce n'est certainement pas une option pour moi.

Et nous arrivons ici à la version la plus moderne- Ce sont des ordinateurs monocarte bon marché basés sur l'architecture ARM. Maintenant, leur choix est tout simplement énorme, mais l'ancêtre le plus populaire est le Raspberri pi. Les avantages sont une faible consommation d'énergie, des sorties utilisateur et des performances satisfaisantes pour exécuter des programmes simples.

Il existe de nombreuses autres options exotiques pour automatiser votre foyer, par exemple le réveil-lit de l'Exposition universelle de 1851 (inventé par Théophile Carter). Ou ma perversion préférée - Arduino avec des boucliers (désolé pour le mème frivole)

2. Capteurs externes, contrôleurs, commandes.

Ce sujet est si vaste qu’il n’est pas possible d’en décrire toute la diversité dans cet article, nous le laisserons donc pour de prochains articles. En bref, il y a :

Solutions de bricolage et solutions de type Arduino
- Solutions chinoises (exemple Sonoff)
- De belles solutions coûteuses (exemple de nid)

3. Logiciel

Nous déplacerons également cette discussion dans un sujet distinct. Aujourd’hui, nous n’examinerons qu’une des nombreuses plateformes ouvertes. Il y aura plus de critiques. Je répondrai immédiatement aux questions pourquoi :

A) Un grand nombre de services pris en charge,
b) Facile et gratuit à installer,
c) Belle interface.

4. Services tiers

Ils permettent de connecter diverses solutions existantes et d'automatiser les actions sur les smartphones et les PC. Exemple typique d'IFTTT.

Que dois-je faire si je ne sais pas programmer ou si j’ai de l’argent ?
Par ailleurs, il existe des solutions issues des écosystèmes modernes de Samsung, Xiaomi, Amazon, Apple, Google, etc. Je suis d'accord que parfois leurs solutions semblent beaucoup plus belles, mais le salaire moyen d'un Russe est d'environ 500 dollars, ce qui ne permet pas de connaître toute la gamme des goûts.

1. Raspberry Pi 3 (les plus anciens feront probablement l'affaire) 35 $
2. MicroSD 16 Go d'au moins classe 10 (le plus rapide sera le mieux) avec un adaptateur pour ordinateur 7 $
3. Chargeur MicroUSB pour 5V et plus de 2A 0$ (provient d'un ancien téléphone)
4. Votre temps précieux. Inestimable.
5. Moniteur en option avec HDMI

Installons :

1. Téléchargez un programme pratique pour enregistrer sur une clé USB. Je recommande la version portable
2. Accédez au site Web et téléchargez la dernière version de Hassbian
3. Décompressez l'image principale dans n'importe quel dossier.
4. Ouvrez le graveur
5. Sélectionnez notre image principale
6. Sélectionnez notre clé USB pour l'enregistrement
7. Appuyez sur le bouton de démarrage
8. ???
9. Bénéfice

Après l'enregistrement, retirez la clé USB et insérez-la dans le Raspberry Pi.

VOUS DEVEZ INSÉRER LE CORDON INTERNET DANS LA FRAMBOISE !!!

Lorsque l'alimentation est appliquée, le voyant rouge doit s'allumer et le voyant vert doit commencer à clignoter de manière aléatoire. On attend avec une tasse de thé pendant 10 minutes.

Après cela, nous devons trouver l’interface Web de notre système de maison intelligente. Il y a plusieurs moyens de le faire:

1) Regardez via HDMI notre ligne de commande et trouvez-y une adresse IP comme 192.168.1.x (ou toute autre)
2) regardez dans les paramètres du routeur quel serveur DHCP a attribué l'adresse au nouvel appareil
3) Utilisez un scanner réseau (par exemple,

Le modèle a immédiatement gagné en popularité auprès des utilisateurs, comme en témoigne le volume toujours croissant de ses ventes.

Schéma fonctionnel du système Smart Home basé sur Raspberry Pi 3

Construit sur la base du Raspberry Pi 3, le « Smart Home » vous permet non seulement de prendre le contrôle et le contrôle de presque toutes les communications de votre maison, mais également d'augmenter arbitrairement les fonctionnalités pendant le fonctionnement.

Principales caractéristiques du Raspberry Pi 3

Le nouveau micro-ordinateur a reçu :

  1. Processeur ARM Cortex-A53 ;
  2. RAM un gigaoctet ;
  3. WiFi et Bluetooth 4.1 intégrés ;
  4. Compatibilité totale avec les modèles précédents.

Le processeur possède quatre cœurs, 64 bits, et une fréquence de 1,2 GHz, soit 10 fois supérieure aux performances du premier modèle.

Norme WiFi 802.11b/g/n avec la possibilité de transférer des données à des vitesses allant jusqu'à 600 Mb/s à une fréquence de 5,0 GHz.

À la demande de Raspberry Pi, Broadcom a développé et lancé un nouveau monocristal BCM2837 avec une architecture similaire aux cristaux BCM2835 et BCM2836, qui garantissait la compatibilité avec les modèles précédents.

Ordinateurs monocarte Raspberry Pi 3 et Arduino - les principales différences

La comparaison de ces plates-formes n'est pas tout à fait correcte. Tout d'abord, parce que Raspberry Pi 3 est un ordinateur doté d'un ensemble complet de fonctions, alors qu'Arduino est assez problématique à classer comme ordinateur.

Le Raspberry Pi 3 est équipé d'un puissant processeur quad-core 40 fois plus rapide que l'Arduino. La RAM du Raspberry Pi 3 a une capacité 128 000 fois supérieure à celle de la RAM Arduino.

Mais ces indicateurs ne signifient pas que le Raspberry Pi 3 est supérieur à l'Arduino, mais que ces appareils sont conçus pour résoudre différents problèmes.

Les tâches résolues par Raspberry Pi 3 à l'aide d'un logiciel ne peuvent pas être résolues par un simple Arduino. Mais il s'acquitte parfaitement des tâches de projets purement matériels, avec lecture et traitement de signaux analogiques.

Le traitement des signaux analogiques s'effectue en temps réel, et ces signaux peuvent provenir de puces de tout type et de tout fabricant. Pour que le Raspberry Pi 3 puisse également traiter les signaux analogiques, il a besoin de matériel supplémentaire.

Implémentation du projet Smart Home basé sur Raspberry Pi 3

Pour ceux qui décident de créer une maison intelligente Raspberry Pi 3 de leurs propres mains, vous devez d'abord décider quelles fonctions seront implémentées et comment elles seront incluses dans la configuration de travail. Et, conformément à cela, équipez le futur système des dispositifs nécessaires.

Périphériques pour la maison intelligente

Pour mettre en œuvre le projet Raspberry Pi 3 « Smart Home », vous aurez besoin des modules suivants :

  • modules ;
  • module de support de communication sans fil ;
  • capteur de mesure d'humidité et ;

De plus, le système Raspberry Pi 3 Smart Home nécessitera une carte mémoire MicroSD de 32 Go, une alimentation et un relais de cinq volts.

L'un des dispositifs supplémentaires les plus importants pour la mise en œuvre du projet Raspberry « Smart Home » est le module NodeMCU ESP-12E avec une interface radio Wi-Fi et une antenne microruban intégrée à la carte module.

Système d'exploitation

Comme tout ordinateur, le Raspberry Pi 3 sans logiciel n’est qu’un ensemble inutile de composants électroniques.

Afin de transformer cet ensemble en un outil qui réalise ses fonctionnalités, vous devez « lui insuffler la vie », c'est-à-dire le remplir avec le logiciel approprié.

Ce processus se déroule en plusieurs étapes. Tout d'abord, vous devez sélectionner et télécharger iOS, un système d'exploitation mobile, pour le Raspberry Pi 3 Smart Home.

Le Raspberry Pi 3 utilise une carte mémoire microSD comme support de stockage pour le système d'exploitation et les programmes qu'il contient. Pour installer le système d'exploitation, vous pouvez choisir l'une des trois méthodes suivantes :

  1. acheter une carte SD sur laquelle l'OS est déjà préinstallé ;
  2. chargez NOOBS (New Out Of the Box Software) – programme d'installation du système d'exploitation sur la carte mémoire, puis installez le système d'exploitation directement à partir de la carte ;
  3. montez l’image du système d’exploitation directement sur la carte SD.

Plus de 40 systèmes d'exploitation différents ont été développés pour le système Raspberry Smart Home. Les systèmes d'exploitation les plus couramment utilisés sont Raspbian OS, Ubuntu Mate, Windows 10 IoT, RICS OS.

Le plus adapté au matériel Raspberry Pi 3

Le système d'exploitation Raspbian OS est installé, installé à partir du programme d'installation NOOBS téléchargé sur la carte SD.

Installation du système d'exploitation

Avant de commencer à travailler avec un micro-ordinateur, vous devez préparer l'équipement et les accessoires nécessaires.

Pour le tout premier lancement, vous aurez besoin de :

  • Carte microSD d'une capacité d'au moins quatre gigaoctets (de préférence 32 gigaoctets) ;
  • alimentation de cinq volts ;
  • câble avec connecteurs HDMI ;
  • moniteur avec connexion HDMI ;
  • clavier et souris avec connexion USB ;
  • ordinateur avec emplacement pour carte SD ;
  • Connexion Internet – Ethernet.

Les prochaines étapes sont :

  1. formater la carte SD ;
  2. télécharger l'archive du programme d'installation NOOBS et la décompresser dans le répertoire racine de la carte SD ;
  3. la carte est insérée dans l'emplacement du micro-ordinateur, tous les appareils sont connectés, l'alimentation est allumée ;
  4. au premier démarrage, l'OS souhaité est sélectionné dans la liste et son installation démarre ;
  5. Une fois l'installation terminée, installez et configurez les programmes Raspberry Pi 3 Smart Home.

Installation du serveur Homebridge et configuration des modules

Le système Smart Home fonctionne avec la technologie Home Kit, qui combine tous les appareils intelligents dans une seule application et accepte les commandes vocales données en russe. Mais il n'y a pas tellement d'appareils de ce type, surtout ceux qui « comprennent » la langue russe, et en plus, ils sont très chers.

Le serveur Homebridge agit comme une sorte de pont entre tous les appareils de la maison et le Home Kit. Ce serveur émule l'API Home Kit.

Le serveur a accès à des centaines de plugins différents, grâce auxquels il est devenu possible de contrôler tous les appareils domestiques qui ne sont même pas structurellement conçus pour fonctionner avec Home Kit. Le principal avantage de Homebridge est qu’il peut fonctionner sur n’importe quel ordinateur, y compris Raspberry Pi 3.

Lors de la connexion d'un nouveau module, vous devez mettre à jour le logiciel, car les pilotes peuvent être mis à jour à partir du moment où vous achetez le module jusqu'à ce qu'il soit inclus dans la configuration de travail, et le module peut ne pas fonctionner sur les anciennes versions.

Après la mise à jour, recherchez celui dont vous avez besoin dans la liste des modules proposés et ajoutez-le à la configuration de travail. Sur le plan physique, suivez les précautions recommandées (par exemple, enlevez l'électricité statique de vous-même).

Conclusion

Un système DIY « Smart Home » basé sur Raspberry Pi 3 coûtera plusieurs fois moins cher qu'un système similaire prêt à l'emploi, et ses fonctionnalités peuvent être augmentées de manière presque illimitée.

Vidéo : Raspberry Pi modèle 3 B - installation du système de contrôle de maison intelligente Domoticz

Bonjour les amis

Dans mes critiques sur les appareils domestiques intelligents de l’écosystème Xiaomi, j’ai déjà mentionné à plusieurs reprises le nom Domoticz. Enfin, j'ai partagé mon travail sur ce sujet et expliqué de quoi il s'agissait et comment vous pouvez compléter les capacités standard d'une maison intelligente de Xiaomi en utilisant ce système. Il est impossible de le dire en une seule critique, mais il faut commencer quelque part - allons-y...

Introduction - quelques mots sur Domoticz

1. Qu'est-ce que Domoticz ?
Il s'agit d'un logiciel multiplateforme open source visant à créer un système de contrôle de maison intelligente. Prend en charge un grand nombre d'appareils différents de différents fournisseurs, y compris le travail avec les appareils Xiaomi.
2. Quels appareils Xiaomi peuvent être contrôlés par Domoticz ?
Je ne parlerai que des appareils que j'ai personnellement testés. Pour le moment, vous pouvez contrôler la Xiaomi Gateway - et tous les appareils qu'elle contrôle - boutons, capteurs d'ouverture et de mouvement, prises ZigBee, interrupteurs Aqara. Les gadgets d'éclairage Yeelight sont également pris en charge - lampes RGBW et blanches, plafonnier Celling Light.
J'ai lu des articles sur l'utilisation des capteurs Bluetooth Miflora.
3. Pourquoi ai-je besoin de Domoticz ?
Le système dispose d'options plus flexibles pour configurer des scénarios - par exemple, vérifier l'activité de l'appareil, quelque chose qui n'est pas dans MiHome, ou créer des variables - qui permettent à une condition - par exemple appuyer sur une touche - d'effectuer différentes actions, en fonction sur la valeur de la variable.
Les scénarios créés dans Domoticz ne dépendent pas des serveurs chinois ni de la disponibilité d'Internet.
Domoticz étend les fonctionnalités des appareils - par exemple, de nouvelles actions « chute libre » ou « alerte » pour un cube, ou « Long Click Release » pour un bouton.
4. Si j'utilise Domoticz, ne pourrai-je pas travailler avec MiHome ?
Les deux systèmes vivent parfaitement en parallèle - la fonctionnalité de MiHome est entièrement préservée, c'est juste que certains scripts vivront dans un système et d'autres dans l'autre. En principe, tous les scénarios peuvent vivre dans Domoticz.
5. Pourquoi ai-je besoin de MiHome si j'utilise Domoticz ?
Au moins pour ajouter de nouveaux appareils. Le choix vous appartient - mais mon avis est qu'à l'heure actuelle, Domoticz est mieux utilisé en complément de MiHome.
6. Que faut-il pour connecter les appareils Xiaomi à Domoticz ?
Je tiens à vous rassurer tout de suite : vous n'avez pas besoin de fers à souder, de programmeurs ou de danse avec des tambourins. Vous n'avez pas non plus besoin de Linux ou de machines virtuelles - vous pouvez tout essayer directement sur votre Windows fonctionnel, et si vous l'aimez, il est alors logique de lui allouer une plate-forme matérielle distincte, par exemple le héros de la revue d'aujourd'hui.
Littéralement après les premières expériences réussies sur mon ordinateur de bureau, j'ai été enthousiasmé par l'idée d'une base matérielle distincte pour Domoticz. J'ai opté pour le Raspberry Pi Model 3 B - un ordinateur monocarte compact mais puissant basé sur un processeur SoC BCM2837 avec 4 cœurs Cortex-A53, fonctionnant à une fréquence de 1,2 GHz, 1 Go de RAM et Wi-Fi et Bluetooth 4.1 sans fil. modules. .

Ensemble

J'ai inclus 4 articles dans ma commande -

Écran de paiement


Carte mère Raspberry Pi modèle 3 B -
Ce qui est intéressant, c'est que le magasin propose deux modifications : le chinois et l'anglais. Au moment de l'achat, le chinois coûtait 7 $ moins cher, alors je l'ai pris. Ce qui est chinois là-bas est honnêtement un mystère pour moi.
Étui pour Raspberry Pi modèle 3 B -
Alimentation HN-528i AC/DC 5V 2A -
Dissipateurs thermiques en cuivre pour Raspberry Pi -
Pour un ensemble complet, vous aurez également besoin d'une carte microSD - au moins 4 Go et d'un câble HDMI. J'avais à la fois un câble et une carte de 32 Go dans ma réserve, donc je ne l'ai pas acheté.

Qu'y a-t-il dans le paquet

Après le délai imparti - un peu plus de deux semaines, le coursier a apporté le colis avec ma commande.


Regardons de plus près. Alimentation avec prise Type C et connecteur micro-USB.


Le courant maximum déclaré est de 2A à une tension de 5V.


Le test d'allumage avec une charge de 2A montre une certaine chute de tension, mais dans des limites acceptables, l'alimentation est plus ou moins honnête.


Un ensemble de trois radiateurs en cuivre dans un sac pour un refroidissement passif.


Tous les radiateurs ont une forme carrée, deux radiateurs avec des broches et une longueur de côté d'environ 12 mm et un plat avec une longueur de côté d'environ 15 mm.


Le boîtier est en plastique foncé avec une image de framboise en relief sur le couvercle.


Dimensions du boîtier - environ 90 sur 65 mm




Le boîtier est démonté en 5 parties - tout est maintenu en place par des loquets, pas de vis.


Les accessoires sont terminés, il est temps de passer à l'essentiel
RASPBERRY PI 3 MODÈLE B
Le Raspberry Pi 3 Modèle B est le successeur direct du Raspberry Pi 2 Modèle B. La carte est entièrement compatible avec son prédécesseur, mais est dotée de meilleures performances et de nouveaux outils de communication :
Processeur ARM Cortex-A53 quadricœur 64 bits avec une fréquence d'horloge de 1,2 GHz sur une puce monopuce Broadcom BCM2837 ; Wi-Fi 802.11n et Bluetooth 4.1 intégrés.
De plus, le processeur possède une architecture ARMv53, ce qui signifie que vous pouvez utiliser votre système d'exploitation préféré : Debian Wheezy, Ubuntu Mate, Fedora Remix et même MS Windows 10.


Spécifications techniques plus de détails
Processeur - Broadcom BCM2837, ARM Cortex-A53 Quad Core, 1,2 GHz
Nombre de cœurs de processeur - 4
GPU-VideoCore IV 3D
RAM - 1 Go
Stockage - microSD
Capacités de mise en réseau
Ethernet 10/100
Wi-Fi 2,4 G 150 Mo/s
Sortie vidéo - HDMI
Ports USB - 4
Capacités sans fil - Bluetooth
Sortie audio - Jack 3,5
85,6 x 53,98 x 17 mm, 45 grammes


La boîte contient de la documentation et un livret d'installation rapide - d'ailleurs en anglais, ainsi qu'un sac de papier brun épais avec un ordinateur.


Sur l'un des côtés longs de l'ordinateur se trouvent des ports micro USB pour l'alimentation, un port HDMI pleine taille, un port caméra CSI-2 - pour connecter une caméra via l'interface MIPI et une prise audio 3,5 mm. Sur la face supérieure se trouvent également un module processeur et un hub Ethernet/USB lan9514-jzx.


Sur la face avant se trouvent 4 ports USB et un port Ethernet


De l’autre côté de la carte mère se trouvent 40 broches d’entrée/sortie à usage général (GPIO).


Sur la deuxième extrémité se trouve un port d'affichage DSI pour connecter un écran standard


Sur la face inférieure de la carte se trouve un module de mémoire SDRAM LPDDR2 - EDB8132B4PB-8D-F


Et un emplacement micro-SD pour une carte mémoire


Les dissipateurs thermiques en cuivre sont placés sur le hub USB/Ethernet et le processeur d'un côté


Et sur la puce mémoire de l'autre. Ce dissipateur thermique est plat - n'interfère pas avec l'installation de la carte informatique dans le boîtier


Tout s'intègre parfaitement dans le boîtier, il n'y a pas de raccords à vis - il repose sur des saillies en plastique.


Toutes les découpes du boîtier correspondent exactement aux connecteurs de l'ordinateur




Pour commencer, nous avons besoin d'un moniteur externe (TV) avec une entrée HDMI, d'un clavier USB, ce sera plus pratique s'il y a aussi une souris et une alimentation. Un moniteur, un clavier et une souris ne seront nécessaires qu'au moment de l'installation, seule l'alimentation électrique sera alors suffisante.

Installation du système d'exploitation

Pour installer le système d'exploitation, vous devez tout d'abord télécharger l'archive avec les kits de distribution - . Pendant le téléchargement de l'archive de près d'un gigaoctet et demi, nous téléchargeons l'utilitaire de formatage de la carte SD - SD Card Formatter -. Cette distribution est beaucoup plus compacte - seulement 6 Mo, donc sans perdre de temps, installez le programme


et, après l'installation, insérez la carte mémoire dans le lecteur de carte (vous avez un lecteur de carte, n'est-ce pas) et lancez SD Card Formatter. Dans le menu Options, vous devez régler « AJUSTEMENT DE LA TAILLE DU FORMAT » sur « ON ».


Après avoir attendu la fin du téléchargement de la grande distribution, ouvrez l'archive résultante et décompressez son contenu sur un lecteur flash fraîchement formaté.
La prochaine étape est le premier lancement du Raspberry Pi (une clé USB avec une distribution enregistrée, bien sûr nous l'installons dedans). Désolé pour la qualité des prochaines photos - depuis l'écran du téléviseur :(
Lorsque vous le démarrez pour la première fois, un menu permettant de sélectionner le système d'exploitation démarre - ce qu'il faut installer, et la liste comprend même une version de WIndows 10 pour Raspberry Pi. A ce stade, vous pouvez sélectionner une langue (en bas de l'écran) - le russe est disponible et vous connecter au réseau Wi-Fi - le bouton Réseaux Wi-Fi


Le système d'exploitation dont j'ai besoin - Raspbian basé sur Linux Debian - est présenté en deux versions, légère et complète, avec une interface graphique. J'ai choisi la version complète


Après cela, on peut tranquillement aller boire du thé avec des bagels, l'installation sera longue.


En mesurant périodiquement la température lors de l'installation, le maximum que j'ai vu était de 38 degrés.
Une fois l'installation terminée et l'ordinateur redémarré, le bureau Raspbian se charge


La seule chose que j'ai faite ici a été d'activer SSH dans les paramètres - afin de gérer le système à partir d'un ordinateur de bureau, j'ai déjà fait tout le reste via le terminal.


Pour contrôler Raspberry depuis un PC de bureau, nous avons besoin de n'importe quel programme de terminal, j'utilise le bon vieux Putty


Nom d'utilisateur et mot de passe par défaut - pi Et framboise. Pour changer le mot de passe, utilisez la commande mot de passe.


Je recommande de définir immédiatement une adresse IP statique pour Raspberry. Vous pouvez connaître les adresses actuelles à l'aide de la commande siconfig , Où
eth0 est Ethernet
lo est l'interface locale 127.0.0.1
wlan0 est l'interface wi-fi

Et pour éditer le fichier de paramètres, entrez la commande
sudo nano /etc/dhcpcd.conf
et dans le fichier qui s'ouvre, en faisant défiler jusqu'à la fin, ajoutez les paramètres nécessaires en fonction de l'interface que nous utiliserons.
Par exemple, nous souhaitons utiliser l'adresse 192.168.0.222, le masque 255.255.255.0, l'adresse de la passerelle et le DNS - 192.168.0.1
Pour Ethernet, nous insérons
interface eth0

routeurs statiques = 192.168.0.1

Pour le Wi-Fi
interface wlan0
adresse_ip statique = 192.168.0.222/24
routeurs statiques = 192.168.0.1
statique domain_name_servers = 192.168.0.1


Pour quitter l'éditeur, appuyez sur ctrl+x
Pour enregistrer les modifications, appuyez sur « Y », puis entrez

Installation de Domoticz
La plupart des travaux d'installation sont déjà terminés, nous devons maintenant installer le système Domoticz. Cela se fait avec une seule commande -
sudo curl -L install.domoticz.com | sudo bash
Ce qui initialise le processus de téléchargement et d'installation du système


Pendant le processus d'installation, l'installateur posera des questions sur l'emplacement d'installation, etc. - J'ai laissé tous ces points par défaut.


Après une installation réussie, le programme d'installation écrira les adresses et les ports de l'interface Web du système Domoticz.


Mais pour travailler avec la passerelle Xiaomi, nous avons besoin d'une version bêta du système. La mise à jour vers la dernière version bêta s'effectue à l'aide des commandes
cd ~/domoticz
sudo ./updatebeta



Le système Domoticz est désormais disponible via l'interface web :

Il est maintenant temps de commencer à ajouter des appareils Xiaomi. Mais d'abord -

Travail préparatoire

Alors, de quoi avez-vous besoin pour commencer à travailler avec Domoticz ?
Réservation d'adresse IP
La première étape consiste à définir des adresses IP statiques pour les appareils que vous envisagez de gérer. Pour l'instant, il s'agit de la passerelle et des lampes. Cela se fait sur votre routeur domestique à l'aide d'une table client DHCP qui ressemble à ceci :


et les informations des onglets Informations réseau des plugins de passerelle et de contrôle de lampe, où sont indiquées les adresses MAC des appareils


À l'aide de ces informations, vous devez enregistrer l'émission d'adresses IP permanentes pour ces appareils - puisqu'ils seront contrôlés via IP, et si l'adresse est modifiée, Domoticz perdra le contact avec lui. La table de réservation d'adresses ressemble à ceci :

Mode développeur

Le mode développeur doit être activé. Pour la Xiaomi Gateway, vous devez aller dans le menu, sélectionner l'option à propos, en bas de l'écran où est écrite la version (2.23 pour moi) - cliquez dessus jusqu'à ce que deux nouvelles options apparaissent dans le menu, elles peuvent être en chinois, dans mon exemple - en anglais. Cliquez sur le premier des deux protocoles de communication du réseau local, activez le commutateur supérieur dans le menu et notez le mot de passe de la passerelle.


Pour les lampes, tout est plus simple - il faut installer l'application Yeelight, si vous ne l'avez pas encore installée, et pour chaque lampe - aller dans le menu, mode développeur - activer

Ajout d'appareils

Pour ajouter des appareils, accédez à l'onglet Paramètres - Matériel
127.0.0.1:8080/#/Hardware (au lieu de 127.0.0.1 - l'adresse de votre Domoticz)
Nous sélectionnons le type d'appareil Xiaomi Gateway, l'appelons quelque chose, indiquons son adresse IP, que nous avons réservée sur le routeur, et entrons le mot de passe reçu dans la fenêtre du mode développeur. Port - cela fonctionne pour moi sur le port 54321. Le wiki Domotics décrit la connexion en indiquant le port 9898


Pour ajouter des lampes, ajoutez simplement le dispositif YeeLight LED - vous n'avez pas besoin de spécifier d'adresses, les lampes se relèveront d'elles-mêmes.


Les capteurs connectés à la passerelle ne seront pas tous connectés en même temps ; ce processus peut prendre une heure ou plus - vous devez attendre. Cela est dû au fait que les appareils ZigBee ne sont activés qu'au moment de la transmission des données. Vous pouvez pousser un peu le processus - en ouvrant et fermant les fenêtres avec des capteurs, en respirant sur les capteurs de température, en allumant et éteignant les prises - en un mot, en forçant les appareils à transmettre des données.

Dispositifs

BEAUCOUP plus d'appareils seront ajoutés que prévu :) Une liste d'entre eux est disponible dans l'onglet Paramètres - appareils.
127.0.0.1:8080/#/Appareils


Par exemple, chaque capteur de température et d'humidité sera ajouté sous forme de trois appareils, température séparément, humidité séparément et tous ensemble. Prises - une prise séparée (appareil contrôlé) séparément - comme capteur de consommation d'énergie. Mais la passerelle dispose d'un rétroéclairage séparé, d'une sirène d'alarme séparée, d'un réveil séparé, d'une sonnette de porte et d'un contrôle du volume. Afin d'ajouter un appareil à la liste des appareils utilisés, vous devez cliquer sur la flèche verte en fin de ligne. Retirer de la flèche bleue utilisée. Nous n’ajoutons pas ce dont nous n’avons pas besoin.
Les appareils ajoutés pour utilisation se trouvent dans plusieurs onglets -

Commutateurs

Cet onglet contient tous les appareils gérés
127.0.0.1:8080/#/LightSwitches
Interrupteurs, boutons, lampes, etc. Ici, nous pouvons allumer, éteindre et effectuer manuellement n'importe quelle action avec les appareils.

Par exemple, sélectionnez le son qui retentira sur la passerelle, ou la couleur de la lumière sur une lampe RVB, ou la luminosité sur une lampe blanche.

Température

Cet onglet regroupe les capteurs climatiques - humidité et température
127.0.0.1:8080/#/Température
Au début, ils s'appellent tous de la même manière, vous pouvez déterminer lequel est lequel par leurs lectures et en vérifiant avec l'application Mi Home, après quoi ils peuvent être renommés en conséquence.

Auxiliaire

Le capteur de lumière de la passerelle est regroupé ici - bien que ses relevés soient très étranges, ainsi que les compteurs de consommation d'énergie pour les prises.
127.0.0.1:8080/#/Utilitaire

Scénarios

Pour créer des scénarios, vous devez vous rendre dans l'onglet - Paramètres - Avancé - Événements. Le script est disponible en deux versions : bloc et script en langage Lua.

Exemples de scripts

Lorsque vous apprenez à travailler avec Domoticz, il est préférable de commencer par des blocs. Ici, tout est divisé en groupes et créer des scénarios est assez simple. Un exemple de scénario simple sur les blocs consiste à allumer la lumière lorsqu'un mouvement est détecté et à l'éteindre une minute après que le détecteur de mouvement passe à l'état éteint. Après avoir compilé le script, vous devez le nommer, cocher l'option Event actif: - pour l'activer et l'enregistrer.

Exactement le même script en Lua

Exemples d'utilisation

Je ferai plus attention à des scénarios spécifiques dans d'autres revues ; ici, à titre d'exemple, je donnerai un scénario qui IMPOSSIBLE mettre en œuvre dans Mi Home, à savoir un interrupteur Aqara à deux boutons avec des fils de déconnexion - le bouton gauche fonctionnera comme prévu - coupant et connectant une phase, et le bouton droit - non connecté à la ligne (pour alimenter l'interrupteur, en connectant un seul des boutons suffisent) - allumera et éteindra la lampe Yeelight, qui n'a aucune connexion physique avec l'interrupteur.
Dans ce scénario, l'état de la lampe Yeelight sera vérifié, la valeur de l'interrupteur On ou Off lui-même n'aura pas d'importance. Si l'état de la lampe est autre que Éteint, cela signifie qu'elle fonctionne et sera éteinte, et si elle est éteinte, elle sera allumée.

Sur ce, je conclurai la partie introductive sur Domoticz, si le sujet est intéressant, je continuerai, il y a encore beaucoup de choses intéressantes.

Version vidéo de la revue (2 parties) -



Merci pour votre attention. Je prévois d'acheter +170 Ajouter aux Favoris J'ai aimé la critique +99 +231

Le système est très simple, il permet de contrôler le réseau (externe ou local) Broches GPIO configurées pour la sortie et reçoivent leur état (c'est-à-dire voir ce qui est activé et désactivé). Envoyez toutes les commandes pouvant être traitées dans Raspberry. Obtenez l'état des broches GPIO (spécifié comme 0 ou 1) configuré pour entrer. Le concepteur configurera automatiquement les broches GPIO dont vous avez besoin pour l'entrée ou la sortie.

Si vous avez besoin d'un système plus flexible, il est préférable d'utiliser le précédent.

L'utilisateur n'a qu'à assembler l'interface dans le concepteur, télécharger l'archive avec les fichiers et la décompresser sur son RaspberryPi 2.
L'archive contiendra des fichiers prêts à l'emploi liés au composant WebPart (html, css, js), sh-script pour initialiser les broches et serveur pour l'échange de données Accueil stD Rp . Il n'est pas nécessaire d'installer de programmes supplémentaires.

Malgré l'apparente complexité, tout est très simple et prendra 10 à 15 minutes.

Apparence

Partie introductive.

Comme déjà mentionné dans le précédent, l'idée d'une interface Web est assez simple et même à certains égards ascétique. Cela est dû au fait que je n'aimais pas les pièces dessinées avec des ampoules et autres demi-mesures, j'ai donc choisi le style « télécommande TV ».

Fonctionne sur n'importe quel appareil : ordinateur, ordinateur portable, tablette, téléphone mobile.


Écran d'interface principal. Il peut y avoir jusqu'à cinq chambres.

Sur l'écran principal, il y a des boutons avec les noms des pièces, en cliquant sur lesquels s'ouvre un panneau avec des commandes pour la pièce correspondante.

Ouvrons le couloir :

Il peut y avoir : plusieurs boutons configurés pour sortir (BCM0, BCM1, etc.) pour activer quelque chose avec un retour de statut. Autrement dit, si c'est quelque chose (par exemple plafonnier) est allumé, l’inscription sera mise en évidence.

Plusieurs boutons (SENTSIG1, etc.) pour envoyer n'importe quelle commande à RaspberryPi.

Et plusieurs champs (IN_BCM2 etc.) pour avoir l'état des pins GPIO (spécifié comme 0 ou 1) configuré pour entrer. 0 - la goupille est tirée vers le sol, 1 - il y a une tension sur la broche.

À l'avenir, vous pourrez modifier les noms des boutons et échanger leurs places.

Restik en haut à droite - fermeture du panneau.

Sous le bouton Info Le panneau contenant des informations sur l'état du système est masqué.

Une inscription Connecter! dit que tout va bien, mais Mise à jour du décompte :- c'est juste un compteur de requêtes (le navigateur demande des données à l'arduino à des intervalles d'environ 700 ms). L'intervalle peut être modifié.

Si un problème survient, un message apparaîtra à l'écran ERREUR, et en Info La cause de l'erreur sera décrite.

L'ensemble de l'algorithme de fonctionnement du système est décrit à la fin de l'article.

Fin de la partie introductive.

Constructeur

Une courte vidéo sur le travail avec le constructeur, vous pouvez la regarder ici ce lien.

Une « maison intelligente » fonctionnera sur n’importe quel appareil, mais elle doit être conçue sur un ordinateur ou un ordinateur portable ordinaire.

Les cookies doivent être activés dans votre navigateur. Cependant, presque tout le monde les a déjà activés.

Le concepteur est extrêmement simple et intuitif. En ouvrant ici dans l'onglet suivant, vous vous retrouverez sur la première page (il y en a quatre au total):

Pour comprendre et pratiquer, faites tout comme écrit ci-dessous.

Ici, vous devez sélectionner le nombre de pièces (maximum 5). Supposons que nous ayons deux pièces (couloir et cuisine), puis sélectionnez 2 et cliquez sur Suivant.

Dans les champs « Nom de votre maison intelligente » et « Noms des locaux », vous ne pouvez utiliser que des lettres, des chiffres, des espaces et des traits de soulignement.

Vous pourrez résoudre ce problème ultérieurement dans le fichier index.html.

Sur la page suivante, vous devez trouver un nom pour votre « maison intelligente » (c'est ce qui sera écrit sur l'onglet du navigateur) et saisissez-le dans le champ Titre de la page.

Dans les champs Adresse du serveur Et Port de serveur pas besoin d'écrire quoi que ce soit (fait pour l'avenir).

Noms des chambres nous avons déjà inventé (couloir et cuisine), saisissez-les et cliquez sur le bouton « Suivant »...

Ici vous verrez l’écran principal de votre future interface :

Cliquez sur le bouton « Couloir »...

Sélectionnez deux boutons pour activer quelque chose avec le statut de retour (Nombre de boutons marche/arrêt).
Un bouton pour envoyer une commande (Nombre de boutons d'envoi de signal).
Et un champ pour recevoir le statut de n'importe quelle épingle (Nombre de champs pour recevoir des informations).

Un maximum de cinq boutons peuvent être sélectionnés.

Fermez maintenant le panneau avec le bouton, faites de même avec la « Cuisine » et cliquez sur le bouton « Suivant »...

L'écran principal apparaîtra avec le bouton « Télécharger l'archive » :

Ceci termine le travail avec le designer, cliquez et passez à la partie suivante.

Attention! Raspbery Pi 2 possède un total de 28 GPIO (BCM0 - BCM27). Si vous faites plus de 27 boutons/champs de réception dans le constructeur, alors tout le monde sera superflu BCM un numéro sera attribué 28 , et pour les champs de réception supplémentaires IN_BCM la valeur augmentera simplement. Ils ne fonctionneront pas.

Connexion
Créons un circuit simple pour tester le système :

Connectez la LED à la broche BCM1, via une résistance de 500 à 1 000 Ohm. Lorsque vous appuyez sur le bouton BCM1 dans l'interface, la lumière s'allume/s'éteint et l'inscription change de couleur.

Connectez également le câblage à travers une résistance 500-1000 OhmÀ BCM 3, avec ce fil vous pouvez pousser à +3,3 ou Sol, et sur le terrain IN_BCM3 zéro pour un. De cette façon, vous pouvez suivre certains événements.

BCM2à utiliser uniquement en sortant. Si vous l'avez créé comme entrée (IN_BCM2), ne l'utilisez pas et ne le refaites pas comme sortie (BCM2).

Utilisation des boutons SENTSIG décrit ci-dessous.

AccueilDRp
Après avoir décompressé l'archive, vous aurez un dossier - mydomrpXXXXXXXXXXXX, renommez-le pour qu'il fonctionne mydomrp et entrez-y.

Renommer les fichiers indexXXXXXXXXX.html V index.html Et initXXXXXXXXX.sh V init.sh.

Dans le dossier mydomrp les fichiers seront obtenus index.html, init.sh, jquery.js Et style.css et programme homestdrp.

Ouvrir le fichier index.html et à la douzième ligne - var flagobnov = 0, transférez le zéro à celui - var flagobnov = 1 (désactivé dans le constructeur). Enregistrez le fichier.

Des explications supplémentaires sur les fichiers sont données à la fin de l’article.

Passons maintenant au programme homestdrp...

homestdrp est un serveur Web qui reçoit les requêtes du client, transmet des commandes au RaspberryPi, lit l'état des broches GPIO et renvoie les informations/état au client Web. Autrement dit, son but est d'échanger des données entre un client web (navigateur) et RaspberryPi. Il fonctionne en utilisant le protocole TCP et, à l'avenir, également en utilisant UDP.

Source

#inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure #inclure char réponse = "HTTP/1.1 200 OK\r\n" "Content-Type : text/html; charset=UTF-8\r\n\r\n" ; char réponse_css = "HTTP/1.1 200 OK\r\n" "Type de contenu : texte/css ; charset=UTF-8\r\n\r\n" ; char réponse_js = "HTTP/1.1 200 OK\r\n" "Content-Type : text/js; charset=UTF-8\r\n\r\n" ; char réponse_text = "HTTP/1.1 200 OK\r\n" "Type de contenu : texte/texte ; charset=UTF-8\r\n\r\n" ; char réponse_403 = "HTTP/1.1 200 OK\r\n" "Type de contenu : texte/html; charset=UTF-8\r\n\r\n" "403" "" "

403

\r\n"; #define BUFSIZE 1024 #define ARRAY_SIZE 90000 #define BSIZ 512 char send1_array = (0,); char send2_array = (0,); char patch_to_dir = (0,); char fpfile = (0,); char buffer = (0,); int count_simvol = 0; unsigned int PORTW = 0; int len_dat = 0; int count_warning_log =0; void error_log(char *my_error) ( char file_error_log = (0,); snprintf(file_error_log, 26 , "%s", "/var/log/ErrorhomeRp.log"); time_t t; time(&t); FILE *f; f = fopen(file_error_log, "a"); if(f == NULL) ( printf ("Erreur d'ouverture de /var/log/ErrorhomeRp.log.\n"); exit(0); ) fprintf(f, "%s", ctime(&t)); fprintf(f, "Erreur %s\n\ n", mon_erreur); printf("Erreur %s Écrire dans /var/log/ErrorhomestdRp.log.\n", mon_erreur); fclose(f); exit(0); ) void warn_access_log(char *war_ac) ( count_warning_log++ ; char file_Warning_Access_log = (0,); snprintf(file_Warning_Access_log, 31, "%s", "/var/log/Warning_AccessRp.log"); if(count_warning_log > 100) ( system("gzip -f /var/log/ Warning_AccessRp.log"); count_warning_log =0; time_t t; temps(&t); FICHIER *f; f = fopen(file_Warning_Access_log, "w"); fprintf(f, "%s", ctime(&t)); fprintf(f, "%s\n\n", war_ac); printf("Écrire dans /var/log/Warning_AccessRp.log:\n%s\n", war_ac); ffermer(f); ) else ( time_t t; time(&t); FILE *f; f = fopen(file_Warning_Access_log, "a"); fprintf(f, "%s", ctime(&t)); fprintf(f, "%s\n \n", war_ac); printf("Écrire dans /var/log/Warning_AccessRp.log:\n%s\n", war_ac); fclose(f); ) ) void read_in_file(char *name_file) ( count_simvol = 0 ; memset(send1_array, 0, ARRAY_SIZE * sizeof(char)); memset(fpfile, 0, 64 * sizeof(char)); snprintf(fpfile, (int)strlen(patch_to_dir) + (int)strlen(name_file) + 1 , "%s%s", patch_to_dir, nom_fichier); FILE *file; file = fopen(fpfile,"r"); if(file == NULL) error_log("open file."); int ch; while(ch = getc(fichier), ch != EOF) ( send1_array = (char) ch; count_simvol++; if(count_simvol == ARRAY_SIZE - 2) break; ) fclose(file); ) int main(int argc, char *argv) ( if(argc != 4) error_log("not argumets."); PORTW = strtoul(argv, NULL, 0); // port pour le serveur web 80 strncpy(patch_to_dir, argv, 63); // chemin d'accès au len_dat dossier = atoi(argv); // nombre de caractères warn_access_log("START"); ////////////////////////////// /////////////// LA TOILE ///////////////////////////////// / //// int un = 1, client_fd; struct sockaddr_in svr_addr, cli_addr ; socklen_t sin_len = sizeof(cli_addr); int chaussette = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); si (chaussette< 0) error_log("not socket."); setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int)); svr_addr.sin_family = AF_INET; svr_addr.sin_addr.s_addr = INADDR_ANY; svr_addr.sin_port = htons(PORTW); if(bind(sock, (struct sockaddr *) &svr_addr, sizeof(svr_addr)) == -1) { close(sock); error_log("bind."); } if(listen(sock, 10) == -1) { close(sock); error_log("listen."); } ////////////////////////////////////////// work file ////////////////////////////////////////////////// char flin_fldb = {0,}; snprintf(flin_fldb, (int)strlen(patch_to_dir) + (int)strlen("init.sh 1 "), "%s%s", patch_to_dir, "init.sh 1"); system(flin_fldb); char bufRec = {0,}; char To_GPIO = {0,}; FILE *mf; char in_data = {0,}; char gp_file = {0,}; printf("Receive data from RPi\n\n"); for(;;) { client_fd = accept(sock, (struct sockaddr *) &cli_addr, &sin_len); if(client_fd == -1) continue; memset(buffer, 0, BUFSIZE * sizeof(char)); read(client_fd, buffer, BUFSIZE - 1); if((strstr(buffer, "file.db")) != NULL) { memset(in_data, 0, 256 * sizeof(char)); memset(bufRec, 0, BSIZ * sizeof(char)); int i = 0; int ip = 0; for(i = 0; i < len_dat; i++) { memset(gp_file, 0, 32 * sizeof(char)); snprintf(gp_file, 29, "%s%d%s", "/sys/class/gpio/gpio", i, "/value"); if(ip >54) ( in_data = "0"; ip++; in_data = " "; ip++; ) else ( mf = fopen (gp_file, "r"); if(mf == NULL) error_log("gpio, échec du dernier argument.") ; in_data = getc(mf); ip++; in_data = " "; ip++; fclose (mf); ) ) printf("Données:%s\n", in_data); int len_ara = (int)strlen(in_data) + 59; snprintf(bufRec, len_ara, "%s%s", réponse_text, in_data); write(client_fd, bufRec, len_ara - 1); fermer(client_fd); ) else if((strstr(buffer, "comanda")) != NULL) /////////// comand ( memset(To_GPIO, 0, 64); snprintf(To_GPIO, (int)strlen(patch_to_dir ) + (int)strlen("init.sh 0 ") + 4, "%sinit.sh 0 %c%c%c", patch_to_dir, buffer, buffer, buffer); system(To_GPIO); close(client_fd); warn_access_log(buffer); printf("To Gpio:%s\n", To_GPIO); ) else if((strstr(buffer, "GET / ")) != NULL) ( read_in_file("index.html"); int len_ara = count_simvol + (int)strlen(response) + 1 ; memset(send2_array, 0, len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s%s", réponse, send1_array); write(client_fd, send2_array, count_simvol + 59); close(client_fd); warn_access_log(buffer); printf("Trans index.html.\n\n"); ) else if((strstr(buffer, "style.css")) != NULL) ( read_in_file("style.css"); int len_ara = count_simvol + (int)strlen(response_css) + 1; memset(send2_array, 0, len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s %s", réponse_css, send1_array); write(client_fd, send2_array, count_simvol + 58); fermer(client_fd); warn_access_log(tampon); printf("Trans style.css.\n\n"); ) else if((strstr(buffer, "jquery.js")) != NULL) ( read_in_file("jquery.js"); int len_ara = count_simvol + (int)strlen(response_js) + 1; memset(send2_array, 0 , len_ara * sizeof(char)); snprintf(send2_array, len_ara, "%s%s", réponse_js, send1_array); write(client_fd, send2_array, count_simvol + 57); close(client_fd); warn_access_log(buffer); printf( "Trans jquery.js.\n\n"); ) else ( write(client_fd, réponse_403, sizeof(response_403) - 1); close(client_fd); warn_access_log(buffer); ) ) ) //END main //gcc -Wall -Wextra -Erreur homestdrp.c -o homestdrp

Copiez maintenant le dossier mydomrpà n'importe quel endroit pratique du RaspberryPi, par exemple à la racine, - /mondomrp, créer des fichiers homestdrp Et init.sh exécutable...

Sudo chmod +x /mydomrp/homestdrp sudo chmod +x /mydomrp/init.sh

Et nous exécutons le programme avec trois paramètres :

Sudo /mydomrp/homestdrp 80 /mydomrp/ 6

Plus tard, pour automatiser le lancement, ajoutez cette commande au fichier rc.local

Nano /etc/rc.local

Vous devez entrer dans la ligne sortie 0, comme ça:

... (/mydomrp/homestdrp 80 /mydomrp/ 6)& sortie 0

À propos des paramètres :

Premier paramètre - TCP port. Vous pouvez spécifier n'importe quel port, mais si vous n'avez plus de serveurs occupant le port standard (80), alors spécifiez-le, eh bien, s'il est occupé, alors écrivez autre chose, par exemple 82 (vous entrerez dans la « maison intelligente » comme ceci - adresse :82 ) .

Deuxième paramètre- Le chemin d'accès au dossier /mondomrp/ (avec barre oblique obligatoire / à la fin).

Quatrième paramètre- quantité de données envoyées au client (ça ne vaut pas la peine d’entrer dans les détails sur ce point, du moins pour l’instant), vous devez regarder ce chiffre dans le fichier index.html en ligne si(vars.length == 6). Dans le code, il se trouve ici :

Montrer(); setInterval(show,680); function show())( if(flagobnov == 1) ( $.ajax(( type : "POST", url : "file.db", timeout:560, cache : false, succès : function(data)( var vars = data.split(" "); if(vars.length == 6) CE CHIFFRE ( count_obnov++; ...

Après un démarrage réussi, homestdrp tout d'abord il lance le script init.sh (Démarrez init.sh), qui supprime d'abord toutes les références à tous les GPIO, puis crée celles nécessaires (Exporter la broche sélectionnée) et les définit les modes (in/out) (Broche sélectionnée d'initialisation) .


Pour les erreurs - sh: echo : erreur d'E/S ne faites pas attention, c'est comme ça que ça devrait être. Après tout, le script efface les GPIO qui ne sont pas là de toute façon.

Maintenant, en ouvrant la page dans le navigateur, vous verrez différents messages dans le terminal et l'envoi des données GPIO lues :

Toutes les actions homestdrp, accompagné de l'écriture dans un fichier /var/log/Warning_AccessRp.log, et des avertissements y sont également écrits.

En cas d'erreur critique (par exemple, n'ajoutez pas d'argument), il sera écrit dans un fichier /var/log/ErrorhomestdRp.log et le programme s'arrêtera.

Maintenant, si tu arrête homestdrp(Ctrl + c), alors l'interface signalera une erreur :

Explications

Comment utiliser le bouton SENTSIG X?

Ouverture du fichier init.sh (à partir du dossier /mydomrp), vous retrouverez entre autres ces lignes :

104) # réaction au bouton SENTSIG1 ;; 109) # réaction au bouton SENTSIG2 ;; ...

C'est ici (au lieu de # réaction au bouton SENTSIG1) et vous devez entrer vos commandes.
Autrement dit, si au lieu de "# réaction au bouton SENTSIG1", vous écrivez redémarrer (sans #), enregistrez le fichier et cliquez sur le bouton dans l'interface SENTSIG1, alors la framboise redémarrera, ou si au lieu de "#réaction au bouton SENTSIG2" vous écrivez apt-get mise à jour && apt-get mise à niveau, alors il sera mis à jour.

En général, vous pouvez faire ce que votre cœur désire.

Explications sur le dossier index.html

Pour plus de clarté, ouvrez le fichier généré par le concepteur.

SetInterval(show,680); ...

...reçoit une réponse sous forme de texte (données séparées par des espaces) et les trie en variables.

... /* recevoir */ if(vars == 1) ( $(".d2otkl").show(); $(".d2vkl").hide(); ) else if(vars == 0) ( $(".d2otkl").hide(); $(".d2vkl").show(); ) $("#indata3").html("INDATA3" + " " + vars); if(vars == 1) ( $(".d3otkl").show(); $(".d3vkl").hide(); ) else if(vars == 0) ( $(".d3otkl"). hide(); $(".d3vkl").show(); ) ...

Si vous installez le système là où la qualité de la communication laisse beaucoup à désirer (par exemple, à la datcha), c'est-à-dire que les pings y sont très importants, alors des erreurs de « timeout » apparaîtront. Pour éviter cela, vous devez augmenter le délai d'expiration de la requête :

Montrer(); setInterval(show,680); function show())( if(flagobnov == 1) ( $.ajax(( type : "POST", url : "file.db", timeout :560, /* ce nombre (en millisecondes)*/ cache : false ,...

La valeur par défaut est de 560 ms, augmentez-la par incréments de 100 ms et essayez. Il est donc nécessaire d'augmenter et setInterval(show,680), également pendant 100 ms.

Vous pouvez modifier ici les noms des boutons (D2, D3, SENTSIG1, etc.) :

...

D2
D2
SENTSIG1
...

Vous pouvez modifier ici les noms des champs de réception des données (IN_BCM3, IN_BCM5, etc.) :

... $("#indata3").html("IN_BCM3" + " " + vars); ...

Le navigateur demande constamment des données et crée ainsi du trafic. Pour éviter cela, vous pouvez soit fermer la page, soit décommenter ce bloc :

/*slmode++; if(slmode > 70) ( $(".pansl").show(300); flagobnov = 0; slmode = 0; )*/

Puis après environ une minute, la page sera recouverte d'un panneau translucide et les mises à jour s'arrêteront. Cliquer sur le panneau le supprimera et les mises à jour reprendront.

Après avoir apporté des modifications à index.html assurez-vous d'actualiser la page dans votre navigateur.

Écrivez toutes vos questions et souhaits dans les commentaires !

C'est tout pour l'instant, dans

Chargement...Chargement...