
Construisez une machine à fumer automatique sur la porte

Nous nous permettons une plaisanterie. Chaque fois qu'une porte s'ouvre, la personne qui entre ou qui sort doit être enfumée par une machine à fumer. Vous voulez pouvoir faire de même ? Ou vous voulez faire une entrée digne d'un film à chaque fois que vous rentrez chez vous ? Nous vous montrons comment faire.
La carte tactile de Bare Conductive est plutôt cool. Surtout parce qu'elle est livrée avec de nombreux accessoires spécifiques. Il y a entre autres la peinture conductrice d'électricité, que nous ne savons pas où trouver. Ce n'est probablement pas si difficile à trouver, mais si nous pouvons l'obtenir en même temps, c'est pratique.

Qu'est-ce que vous pouvez faire avec ? Toutes sortes de choses. Le fabricant Bare Conductive ne fournit pas de mode d'emploi, mais il a publié sur son site web quelques premiers projets de construction qui peuvent être reproduits. Avec des enfants.
Eh bien...
On peut faire mieux.
"Yo, j'ai une machine à fumer ici", me dit le chef de produit Quentin Aellen, bricoleur passionné à ses heures perdues.
Mieux.
Le plan:
- Nous nous fabriquons une machine à fumer automatisée
- Nous montons toute la configuration sur une porte dans le bureau
- On enfume nos membres du personnel
- ???
- Profit
La mise en place
Pour ce projet de construction, nous utilisons les composants suivants en plus de la carte tactile.


HQ Power VDLSL1 Fluide fumigène 1L
Liquide de brouillard

Hyperion Relais 5V
Composant de puissance, Divers, Extension, Extension de microprocesseur
Je tiens également à préciser que ni Quentin ni moi ne sommes des experts en électrotechnique. Nous sommes des bricoleurs. Si vous avez des conseils de sécurité importants à nous donner ou si vous remarquez des erreurs grossières, faites-le nous savoir dans un commentaire. Les connaissances techniques de base sont également plutôt rares dans notre laboratoire, qui est en fait un canapé où d'autres déjeunent parfois.
La machine à fumée
Depuis la boîte, la machine à fumée est activée par un bouton-poussoir. C'est un interrupteur tout à fait normal, comparable à un interrupteur de lumière ou à un autre bouton. Vous appuyez, le contact entre le courant et la machine s'établit, la fumée sort de la machine.

.
Mais comme le bouton est trop démodé, nous le dévissons et branchons les câbles dans un relais. Ce relais va, pour faire simple, appuyer sur le bouton dès qu'il est alimenté. La logique est la suivante.
La porte s'ouvre → Le courant sort de la carte tactile → Le relais s'active → Fumée
Pour cela, il faut modifier tout le mécanisme de la machine à fumer. Donc enlever le bouton, mettre le relais.

.
Pour cela, nous nous assurons que la machine à fumer n'est pas branchée sur le courant, puis nous dévissons le bouton-poussoir. Nous retirons les câbles qui sont reliés au mécanisme de pression. Tout cela se fait très facilement.
Comme il n'est possible d'installer que deux câbles dans le relais alors que le bouton en a trois, nous devons trouver quel câble est celui de la mise à la terre. En effet, celui-ci n'est pas utilisé pour fermer le circuit électrique. Nous avons masqué la mise à la terre avec du ruban adhésif blindé. Cela nous semble suffisamment sûr.
C'est la fin des modifications apportées à la machine à fumée. Si vous avez été prudent avec le bouton, vous pouvez facilement remettre la machine à fumée dans son état d'origine.
Le Touch Board

La conception de la carte tactile elle-même est assez simple. Choisissez une broche à laquelle vous fixez la pince qui activera le relais et retenez le chiffre. Il n'y a rien d'autre à faire ici.
Nous chargeons ensuite le code directement sur la carte tactile via le connecteur USB et c'est terminé. Nous avons choisi la broche 10. N'importe quelle broche fait l'affaire, mais le code indique la broche 10, c'est pourquoi nous nous sommes dit "Oui, ça va".

.
Pour ce faire, nous avons appliqué la peinture électroconductrice noire sur un rouleau de ruban de peintre. Les pinceaux sont heureusement fournis dans le kit de démarrage, nous avons dû nous procurer le ruban de peintre séparément. Ensuite, une pince sur le ruban adhésif et c'est prêt à l'emploi
.
Jusqu'ici, tout était relativement simple. La partie difficile a été la question du code. En effet, lors de la construction du matériel, il nous a suffi de remplacer le haut-parleur sur le setup par la construction du relais et le tour était joué.
Le code

.
Comme nous ne sommes pas seulement des bricoleurs mais aussi des paresseux, nous parcourons les instructions de construction sur le site de Bare Conductive. Y a-t-il quelque chose que nous pouvons facilement adapter ? Parce que bien sûr, avec assez de temps et de travail, nous pourrions facilement écrire le code nous-mêmes, mais s'il y a déjà quelque chose que nous devons juste adapter, c'est mieux.
Recherché ? Trouvé!
.
Le tutoriel original joue un fichier MP3 sur un haut-parleur lorsque le code détecte la proximité d'un objet. Dans la vidéo, il s'agit d'une main. Chez nous, ce sera la porte.
Un coup d'œil au code le montre : C'est possible.
Les cartes tactiles de Bare Conductive sont essentiellement des mini-ordinateurs Arduino. Elles acceptent donc du code en langage C et C++. Le code que nous utilisons est écrit en C++, mais cela ne veut pas dire que vous devez être le plus grand codeur de tous les temps. Quentin et moi avons réussi à le faire en une après-midi, puis nous sommes devenus ambitieux et avons investi une autre après-midi, mais cela n'a pas donné grand-chose. Rien, à vrai dire.
Au départ, nous avons choisi un code qui réagit au toucher. Mais c'était une erreur de raisonnement, car la porte ne touche pas le seuil. Mais puisque nous en étions là, nous avons continué à travailler avec ce bout de code. Notre gros problème était que nous voulions créer une boucle qui aurait la fonction suivante : Porte ouverte → Deux secondes de fumée → Arrêt. La raison en est que la porte reste ouverte pendant environ dix secondes chaque fois que quelqu'un entre dans le bureau. Ce serait un peu trop de fumée. Nous craignons de déclencher le détecteur de fumée dans le couloir. Dans ce cas, le bureau devrait être évacué et nous nous ferions tabasser par le patron.
Pour y parvenir, nous avons voulu créer une boucle. En programmation, une boucle est une instruction qui est exécutée plusieurs fois de suite. Et cela peut ressembler à ceci :
int test () {
// Déclaration de la variable. Elle compte pour nous jusqu'à ce que la variable i atteigne la valeur 20 :
int i = 10 ;
// Pendant que la boucle travaille while( i < ; 20 ) {
cout << ; "i est actuellement à : " ; << ; i << ; endl ;
i++ ;
}
return 0 ; }
Le code ci-dessus afficherait dix lignes de texte : " i est actuellement à : " suivi de 10, 11, 12 et ainsi de suite, car i++ augmente la valeur de i de 1 après chaque ligne de texte. Cela continue jusqu'à ce que i = 20. La boucle se termine alors et c'est terminé.
Nous voulions quelque chose de ce genre pour la machine à fumer. Donc quelque chose comme ça :
int test () {
// Déclaration de la variable. Elle compte pour nous jusqu'à ce que la variable i atteigne la valeur 20 :
int i = 10 ;
// Pendant que la boucle travaille while( i < ; 11 ) {
digitalWrite(CH10, LOW) ;
delay(2000) ;
i++ ;
}
return 0 ; }
Nous ne savons pas encore exactement pourquoi notre projet de boucle n'a pas fonctionné. L'extrait ci-dessus ne provient pas du code que nous avons essayé, il est donc possible que j'aie juste résolu le problème. Mais probablement pas, car il me semble que je dois remettre i à 10 quelque part. Mais cela déclencherait à nouveau la boucle, et nous serions alors coincés sans fin dans la boucle.
Si vous arrivez à faire en sorte que nous puissions faire de la fumée pendant deux secondes via la boucle, merci de nous donner le code dans un commentaire ci-dessous.
Notre solution est un peu plus simple. Elle fonctionne du point de vue du code, mais la mise en œuvre présente quelques défauts.
// reading lit la distance entre l'objet et la couleur électrique.
int reading = MPR121.getBaselineData(ELECTRODE)-MPR121.getFilteredData(ELECTRODE) ;
if (reading < ; 20) {
digitalWrite(CH10, LOW) ; // LOW = machine allumée
delay(2000) ;
}
if (reading > ; 20) {
digitalWrite(CH10, HIGH) ; // HIGH = machine à fumer éteinte
} }
Vous pouvez lire le code complet dans notre dépôt GitHub.
Les pièges de la pratique
La configuration fonctionne. Il se peut que ce ne soit pas la configuration la plus sûre de tous les temps et que le code nous semble un peu bancal. Il fonctionne, mais nous sommes persuadés qu'il pourrait être amélioré. Mais ce que nous n'avions pas prévu, c'est la réalité.
L'installation sur la porte a été facile, tout comme le câblage avec un enrouleur de câble. Ensuite, les conditions d'éclairage entrent en jeu. Chaque nuage, chaque lumière allumée ou éteinte, chaque personne qui passe devant la porte modifie la lumière et donc la mesure de notre configuration. Résultat : de la fumée aléatoire de temps en temps. Mais, en contrepartie, pas de fumée s'il y en a
.
Ceci pourrait être facilement modifié dans le code. Dans l'extrait ci-dessus, il s'agit du chiffre 20, donc si vous voulez mettre en œuvre le projet sur votre porte, c'est la valeur avec laquelle vous devriez jouer pour trouver le meilleur résultat possible.
Petite remarque : la plupart des détecteurs de fumée ne devraient pas être affectés par la fumée de la machine à fumer. Ils devraient l'être.
Enfin, je te connais un peu, cher lecteur. Tu dois te demander "Et où est l'intérêt maintenant ?" Simple.
Nous l'avons fait parce que nous le pouvons.
A la fin, nous avons enfumé nos membres du personnel, nous avons ri de bon cœur et j'ai écrit un texte. Ce bricolage nous a permis non seulement de rafraîchir nos connaissances en C++, mais aussi de rendre le quotidien de nos membres du personnel - et le vôtre, nous l'espérons - un peu plus amusant.
À vous de jouer maintenant : faites quelque chose ! Amuse-toi bien!
Cela pourrait aussi t'intéresser


Journaliste. Auteur. Hackers. Je suis un conteur d'histoires à la recherche de limites, de secrets et de tabous. Je documente le monde noir sur blanc. Non pas parce que je peux, mais parce que je ne peux pas m'en empêcher.