
Tout a commencé avec lui. C'était mon premier achat sur Aliexpress pour la première automatisation du pays - je voulais faire de l'auto-arrosage dans la serre. La minuterie est venue dans une boîte froissée, avec un capuchon protecteur fissuré, mais qui fonctionnait. Il a fait un excellent travail en arrosant les concombres pendant toute la saison estivale, il a été retiré et caché dans un endroit chaud et sec pour l'hiver. Mais la saison suivante, j'attendais une surprise désagréable - la minuterie a commencé à se bloquer, a cessé de répondre aux boutons de commande et a ouvert l'eau. Au début, j'ai péché sur des piles bon marché et les ai remplacées par des Duracell de marque. Je pensais que le problème était la puissance et les courants d'appel. Ça n'a pas aidé. Ensuite, j'ai sorti un fer à souder et soudé tout ce que je pouvais, même ajouté des condensateurs manquants. Mais il a obstinément continué à pendre. Malheureusement, le produit n'est pas très facile à entretenir - en ce que j'ai utilisé une goutte de microcircuit en circuit ouvert et, apparemment, quelque chose a été démonté précisément sous le composé avec le microcircuit. D'une manière ou d'une autre, la saison était finie avec une minuterie aussi difficile, et j'ai commencé à penser à quoi devrais-je la remplacer.
Mes premières pensées ont été de prendre un module Arduino Mini, un module d'horloge, un indicateur, et de le mettre en quelque sorte dans le cas d'une minuterie cassée et d'utiliser son moteur natif et sa vanne à boisseau sphérique. Mais d'une manière ou d'une autre, il n'y était pas vraiment allé, il consommerait clairement plus que le remplissage d'origine (ce qui signifie que vous pouvez oublier les piles dans le boîtier) et c'était ennuyeux et non évolutif - je voulais arroser non seulement la serre, mais seulement une minuterie cassée.
Et puis sur Ali, je suis tombé sur une vanne à boisseau sphérique motorisée normale. Voici un si bel homme:

Oui, cela a coûté de l'argent décent, mais il n'était pas effrayant de le connecter à un approvisionnement en eau d'été et de le laisser sans surveillance pendant une semaine. Il est généralement assez solide, bien qu'avec une boîte de vitesses en plastique - maintenant quelques robinets de ce type fonctionnent sur mon alimentation en eau principale, où la pression est de 5 atm.
L'idée était simple. Un mouchoir avec le module WiFi ESP8266 attendait dans le tiroir de la table. Il a été décidé d'abandonner les économies d'énergie au profit d'une batterie de voiture usagée, qui, selon les calculs, aurait dû être suffisante pour au moins un mois d'autonomie. Afin de ne pas manquer le moment de décharge de la batterie, le circuit a fourni un diviseur à travers lequel l'ADC ESP8266 intégré a mesuré en continu la tension d'alimentation. . Le module DS3231 avec une batterie aurait dû servir d'horloge dans le circuit, et un mouchoir par m / s MP1584EN aurait dû abaisser la tension de 12V à 3,3V.
Voici un schéma de principe:

Et voici une photo de sa mise en œuvre
mise en œuvre déjà un peu démontée - le module DC-DC est entré dans la grue, le module d'horloge à l'arrière de la planche à pain Le contrôle du moteur de la grue s'est fait ici simplement - quels transistors ont été trouvés dans le tiroir de la table, ils ont été installés. En réalité, un moteur peut être commandé, par exemple, via m / s ULN2003 en commutant sur plusieurs canaux en parallèle soit avec des transistors à effet de champ à commande logique soit en général via un module relais à opto-isolation. Il suffit de tenir compte du fait que le moteur, avec un courant de fonctionnement d'environ 70 mA, a un courant d'appel (et un courant au moment du blocage de la rotation) de l'ordre de 300-350 mA.
Un croquis rapide serait écrit en Arduino avec une interface Web simple:

Et le prototype était en test. J'ai transmis l'interface Web de la grue via le routeur et l'appareil était constamment disponible en ligne.
Et les pensées ont continué. Un prototype est bon, mais je veux plusieurs de ces robinets et tout faire sur une maquette n'est pas une option. La grue a été ouverte. Et il est devenu clair qu'il y a beaucoup d'espace à l'intérieur sous un couvercle scellé et qu'il y a même des endroits de fixation:

Dans ce robinet utilisé dans le prototype, sous le couvercle se trouvait une petite carte de circuit imprimé avec un relais, qui fournissait une logique de contrôle. Et sur la photo il y a une grue avec indice CR05. Il n'y a aucune logique ou carte de circuit imprimé dans ces prises. Les fils de commande du moteur et les fils de fin de course sont simplement retirés. Et vous devez contrôler ces grues en modifiant la polarité de la tension sur le moteur. En même temps, il est fortement conseillé de contrôler les moments finaux de fermeture / ouverture aux extrémités du TC, on se souvient que le courant à ces moments est déjà 300-350 mA.
Le diagramme a commencé à apparaître comme suit:

Maintenant, nous prenons l'étrier, une feuille de papier dans nos mains et commençons à prendre des mesures, dessinons le contour de la carte de circuit imprimé et essayons de placer les composants dessus. Une grande batterie CR2032 a été abandonnée et une petite CR1220 (ou 1225) a été utilisée. Pendant très longtemps, une puce de pont en H a été sélectionnée pour contrôler le moteur. Le choix semble large, mais bon nombre de ces microcircuits ne peuvent pas fonctionner avec une tension d'alimentation de 12 V, ou bien ils utilisent des transistors bipolaires avec une très grande chute de tension, eh bien, ou le boîtier échoue. Au début, la puce TB6612 n'a pas attiré mon attention, puis elle semblait très redondante et peu pratique pour le soudage. Mais à la fin, je me suis concentré sur elle - c'est abordable et peu coûteux pour Ali. Le pont en H est construit sur des transistors à effet de champ et peut fonctionner à des tensions allant jusqu'à 15 volts. Le module convertisseur DC-DC (MP1584EN) a été laissé par le module - il s'est avéré simplement moins cher dans les détails et il était facile de le souder. L'essentiel, pour la fiabilité, est de remplacer la résistance de réglage en elle par une résistance constante (27kOhm - cela donnera une tension de sortie de 3,4 V.) Le microcircuit de l'horloge pourrait être utilisé dans un boîtier plus compact, mais il y avait une mise en garde - j'allais commander tous les composants pour Ali et il y avait un risque de se faire circuits faux ou cassés. Par conséquent, au stade initial, il était prévu d'acheter tous les microcircuits dans le cadre des modules finis et de les souder à la carte développée. Et dans les modules, l'horloge n'était que dans le cas SO16. En fait, un seul microcircuit de montre s'est avéré être défectueux ou un faux faux - sa fréquence de quartz était de 32727 avec 32768 kHz.
Après tous les travaux préparatoires, nous prenons KiKad, cherchons un peu sur Google à la recherche de sièges manquants, dessinons nous-mêmes certains composants et commençons à multiplier la planche:

Nous le vérifions en imprimant à l'échelle 1: 1. Nous attachons des pièces et des modules et, si tous correspondent, nous préparons des fichiers Gerber pour la production et les envoyons à EasyEda. Après 3 semaines, nous obtenons 10 mouchoirs mignons et les collectons.
Il en reste 5 sur la photo, le reste tout fonctionne
Assemblage du moduleLes trous pour les attaches, bien sûr, ne coïncidaient pas un peu, certains des sièges ne se sont pas avérés comme ils le voulaient, mais en général le produit, après assemblage et firmware, a fonctionné tout de suite. Des queues hermétiques ont été achetées sur Ali, passées à travers un joint sous pression standard dans le bâtiment, et la minuterie de la grue WiFi a obtenu son aspect d'usine:

Voici quelques grues en service de combat dans le pays:
Mais alors la pensée a repris. Je voulais plus d'automatisation dans le pays, et le module s'est avéré assez compact et universel. Grâce au pont en H, vous pouvez contrôler assez facilement un relais conventionnel. Pour l'automatisation DIY, beaucoup prennent Sonoff, mais il s'avère que je ne peux pas faire pire.
Et ici commence la transformation d'un simple robinet Wi-Fi en ce qui est nommé
SHAPEsp - abréviation de
S mart
H ome
A utomation
P latform basé sur
Esp 8266. Comme prévu, cela devrait devenir un module universel peu coûteux pour la domotique. Et tout cela devrait être fiable et ressembler à un produit fini après assemblage dans un boîtier abordable.
Étonnamment, il s'est avéré que dans le cas chinois avec Aliexpress sur 2DIN, l'appareil est bien, le corps dans le corps, le populaire convertisseur HiLink AC / DC 220V / 12V (enfin, ou son clone), le relais et le connecteur d'alimentation, et bien sûr mon module légèrement converti avec ESP8266, horloge et pont en H.
Faites trois
le module peut être installé à la fois dans le corps de la grue et dans le boîtier du rack DIN Et nous obtenons:

Légèrement changé la forme du module. J'ai ajouté des connecteurs de bord pour qu'il puisse se tenir droit dans le package 2DIN. J'ai placé des voyants indicateurs sur l'extrémité supérieure de la carte, qui sont visibles à la lumière dans un boîtier en plastique. Eh bien, je déploie la carte multimédia pour le relais et la source d'alimentation. Pour le rendre moins cher, tout cela a été envoyé en production avec une seule planche:

J'ai assemblé deux de ces prototypes et les ai mis dans le chalet pour contrôler l'inclusion de convecteurs pour les arrivées d'hiver:
Dans un autre poste
L'un des modules du panneau, à côté d'une paire de contacteurs qui comprennent des convecteurs Mais il a alors décidé de l'améliorer encore plus et de le rendre plus universel. Pour un firmware plus fiable et plus pratique, j'ai placé le schéma de firmware de NodeMcu sur le module. Il a déduit toutes les broches possibles et ajouté des plots de contact pour faciliter la connexion de différents capteurs. Toutes les broches de bord sont placées par incréments de 2,54 mm, de sorte que le module puisse être inséré dans la planche à pain. Naturellement, j'ai testé la connexion du thermomètre ds1820, du capteur combiné BME280 et du capteur d'humidité sur le comparateur. Il s'est avéré qu'en plus d'une simple minuterie avec un relais ou une grue, vous pouvez facilement construire une station météo ou par exemple un système aquastop. Eh bien, toutes sortes d'autres systèmes de notification et de contrôle ...
Emporté, a dessiné un modèle de son module pour Fritzing. Vous pouvez ainsi évaluer et faire pivoter virtuellement les différentes options d'application:

Un lien vers le modèle GitHub se trouve en bas de l'article.
Eh bien, alors la partie la plus difficile commence - le support logiciel pour le module. Au départ, j'ai tout testé et testé avec mon croquis Arduino plutôt simple. HTML simple, un peu de script Java, différentes façons simples de transmettre des données, seulement la fonctionnalité d'une minuterie et certains capteurs dont j'ai besoin. Mais assez rapidement, il est devenu clair qu'il ne serait pas si facile de tout maîtriser dans le monde moderne de l'IoT et de la construction de maisons intelligentes. Et aussi juste la paresse (voici un smiley souriant). Et parfois, je ne veux pas réinventer la roue.
Par conséquent, il a été décidé de voir ce qu'il existe de micrologiciel prêt à l'emploi dans lequel vous pouvez ajouter un support pour votre module. Comme point de départ, des firmwares alternatifs pour les produits Sonoff ont été pris: Sonoff-Tasmota, ESPurna, ESPEasy. La recherche peut trouver des critiques comparatives de ces micrologiciels.
Par exemple:
https://lobradov.imtqy.com/FOSS-Firmware-comparison-overview/
https://lobradov.imtqy.com/FOSS-Firmware-comparison-developers/
En réalité, j'ai en quelque sorte parcouru le code source dans les référentiels de ces firmwares avec mon œil, j'ai réalisé que le moyen le plus simple pour moi serait d'ajouter mon module au firmware ESPurna. Le code du micrologiciel était assez raisonnablement structuré et supposait initialement l'ajout de nouveaux modules et fonctions. Dans le firmware, il y avait la fonctionnalité de minuterie dont j'avais besoin, le Sheduler autonome. De plus, on peut dire tout de suite, décrivant simplement ma configuration avec un simple relais dans le fichier hardware.h, j'ai obtenu une version fonctionnelle du firmware du relais WiFi.
Cependant, mon module avait des fonctionnalités plus riches et plus complexes. Et il a été décidé de contribuer au firmware. D'une part, c'est assez simple - nous écrivons des fonctionnalités et faisons une pull-request, mais en réalité c'est un processus long et ennuyeux avec pas toujours un résultat positif ou rapide. Ce sont les coûts du fait que la fonctionnalité proposée dans l'ensemble n'est nécessaire que pour moi et ma carte inconnue.
J'ai commencé avec le support de la montre. Dans le firmware ESPurna, tout fonctionnait via NTP et la bibliothèque de temps pour arduino - eh bien, historiquement, vous devez connaître l'heure, mais les produits Sonoff n'ont pas d'horloge autonome et on suppose qu'ils ont toujours accès à Internet. Pour prendre en charge l'horloge RTC, j'ai écrit un module simple qui, si vous le souhaitez, a remplacé la fonction de fournisseur d'heure de NTP pur en NTP + RTC. Le principe était simple - si la synchronisation NTP n'est pas disponible, nous essayons de lire l'heure à partir de l'horloge RTC locale. Lorsque l'accès aux serveurs NTP apparaît, nous rétablissons la synchronisation et, si vous le souhaitez, synchronisez l'horloge locale. L'horloge de mon module s'est donc mise au travail. La demande de tirage a été acceptée assez rapidement, mais elle a été envoyée à une succursale espurna-rtc distincte.
Le suivant était une demande de traction triviale. Comme je mesure la tension d'alimentation du convertisseur DC-DC pour suivre la décharge de la batterie, je devais surveiller non pas la tension d'alimentation du module ESP8266, mais une tension définie par l'utilisateur. Ce que j'ai conçu comme une demande d'extraction "ajouter un support pour la surveillance VCC personnalisée". Mais cette demande était en quelque sorte suspendue dans l'air ... et le désir de contribuer s'est quelque peu apaisé.
De plus, il est devenu évident que l'ajout de votre module à la liste des appareils finis pris en charge ne sera pas si facile - il a beaucoup de configurations différentes possibles. Par conséquent, il a été décidé de simplement développer sa fourchette de firmware. Et si possible et que vous souhaitez maintenir la synchronisation, faites des demandes d'extraction ou offrez une sélection dans le référentiel principal du firmware.
Après une telle décision, tout est devenu plus simple. Dans le firmware, le système de contrôle des relais a été partiellement réécrit. Le mode de commande du pont en H y a été ajouté et il est devenu plus pratique en termes d'ajout de modes de fonctionnement de relais personnalisés.
Une étude plus approfondie du code du micrologiciel a montré qu'il n'était pas possible de le refactoriser. Le style d'écriture et d'utilisation des ressources à certains endroits est très cruel pour un microcontrôleur (bien qu'il soit plutôt intelligent en 32 bits). Par exemple, le système d'émission de messages de débogage a dévoré la pile à grande vitesse, mais en même temps, pour ne pas supprimer tout le système, il a été bloqué lorsque la taille de la pile est devenue inférieure à 10 Ko. J'ai réécrit un peu le code dans mon fil de sorte que maintenant tous les messages de débogage et les invites de la console s'affichent complètement.
Eh bien, pour le moment, un sous-système de calcul a été ajouté au firmware
Levers / couchers de soleil et un SunriseSensor virtuel, vous pouvez donc construire un simple relais astronomique à partir du module SHAPEsp. Il faudra prendre courage et s'engager sur le référentiel principal. Je pense que c'est une fonctionnalité utile.
Voici une histoire de la transformation des idées de bricolage d'un prototype à un produit presque fini. Peut-être un produit en demande. La chose la plus étonnante est que je n'ai pas encore essayé de systèmes de maison intelligente - tous les modules fonctionnent pour moi de manière complètement autonome les uns par rapport aux autres et sont simplement accessibles via des interfaces Web sur Internet. Et une fois achetée, la carte PC OrangePi se trouve dans un tiroir et attend dans les coulisses pour devenir un contrôleur domestique intelligent.
Liste de liens:
- Modèle Fritzing et comment je me réunis Je pense qu'il y aura une disposition de circuits et de modules dans Kikad
- Micrologiciel de test simple pour le module
- Fourche de micrologiciel ESPurna avec support de module
- Le référentiel principal du firmware ESPurna