Table des matières:
- Étape 1: Les maths…
- Étape 2: aspects pratiques
- Étape 3: Les ingrédients
- Étape 4: Tester le prototype (et le code)
- Étape 5: Jauge d'eau de pluie Ino Sketch
- Étape 6: Chargement du code sur un Arduino Pro Mini (sans USB)
- Étape 7: Assemblage
- Étape 8: L'article fini
- Étape 9: Post-scriptum - Cent (cinq) pour cent ?
- Étape 10: réflexions après coup
Vidéo: Compteur de capacité de réservoir d'eau de pluie à ultrasons : 10 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Si vous êtes un peu comme moi et que vous avez un peu de conscience environnementale (ou si vous n'êtes que des peaux de bêtes désireuses d'économiser quelques dollars - ce qui est aussi moi…), vous avez peut-être un réservoir d'eau de pluie. J'ai un réservoir pour récolter les pluies plutôt rares que nous recevons en Australie - mais bon sang, quand il pleut ici, il pleut VRAIMENT ! Mon réservoir mesure environ 1,5 m de haut et est sur un socle, ce qui signifie que je dois descendre des marches pour vérifier le niveau d'eau (ou - parce que je suis tellement paresseux, équilibrer de manière précaire sur une vieille bouteille de gaz du barbecue qui a maintenant pris jusqu'à la résidence permanente comme « étape » à côté du réservoir).
Je voulais un moyen de pouvoir vérifier le niveau d'eau dans le réservoir, sans avoir à grimper et à m'accrocher au tuyau d'évacuation d'une main (tout en me souciant des araignées qui pourraient se trouver derrière - vous avez entendu parler des araignées australiennes - n'est-ce pas ?) … Donc, avec un intérêt renouvelé tard dans la vie pour l'électronique et des clones Arduino bon marché de Chine sur ebay, j'ai décidé de créer un « widget » pour faire le travail à ma place.
Maintenant, mon widget « de rêve » devait être installé en permanence dans le réservoir, utiliser une source d'alimentation solaire, avec une lecture à distance dans mon garage, ou peut-être un émetteur sans fil utilisant Bluetooth que je pourrais vérifier depuis mon téléphone, ou peut-être même un Appareil de type ESP hébergeant une page Web mise à jour automatiquement, afin que je puisse vérifier le niveau d'eau dans mon réservoir depuis n'importe où dans le monde sur Internet… mais vraiment - pourquoi ai-je besoin de tout cela ? J'ai donc rappelé un peu mes grands idéaux (enfin, assez considérablement) et j'ai supprimé le sans fil de la solution, l'installation permanente, la charge solaire et la possibilité de vérifier le niveau de mon réservoir depuis l'arrière de l'au-delà (toujours en supposant que l'arrière-plan de l'au-delà dispose du WiFi, c'est-à-dire…)
Le projet résultant a été déclassé dans l'unité portable vue ci-dessus, qui peut être simplement maintenue au-dessus de l'ouverture du réservoir et activée par un bouton-poussoir, avec un affichage numérique, qui peut être lu depuis le sol - beaucoup plus pratique.
Étape 1: Les maths…
Après avoir joué avec plusieurs idées sur la façon de déterminer le niveau d'eau, j'ai choisi un émetteur/récepteur à ultrasons comme base pour mon widget et j'ai utilisé un Arduino pour prendre les lectures et faire tous les calculs. Les lectures renvoyées par le capteur sont (indirectement) sous la forme d'une distance - du capteur à ultrasons à la surface sur laquelle il a rebondi (la surface de l'eau - ou le fond du réservoir, s'il est vide), et inversement, nous avons donc besoin faire quelques petites choses avec cela, afin d'obtenir un pourcentage restant dans le réservoir.
NB - en réalité, la valeur renvoyée par le capteur n'est en réalité que le temps mis par le signal pour quitter l'émetteur et revenir vers le récepteur. C'est en microsecondes - mais sachant que la vitesse du son est de 29 microsecondes par cm (Quoi ? Vous ne le saviez pas ? Pfft…) permet une conversion facile d'une période de temps à une mesure de distance.
Tout d'abord - bien sûr, nous devons diviser la distance par 2 pour obtenir la distance entre le capteur et la surface. Ensuite, soustrayez la distance constante entre le capteur et la profondeur d'eau « max ». La valeur restante est la profondeur d' eau qui a été utilisée. Ensuite, soustrayez cette valeur de la profondeur d'eau maximale pour trouver la profondeur d'eau restante dans le réservoir.
Cette valeur sert alors de base à tout autre calcul, comme par exemple calculer cette profondeur d'eau en pourcentage de la profondeur maximale, ou multiplier la profondeur par la "surface" constante, pour obtenir un volume d'eau qui peut être affiché en litres (ou gallons, ou toute autre unité - tant que vous connaissez les mathématiques pour le faire - je m'en tiens à un pourcentage pour plus de simplicité).
Étape 2: aspects pratiques
L'unité peut être tenue à la main, mais cela introduit une petite possibilité d'imprécisions mineures si l'unité n'est pas tenue au même endroit et au même angle à chaque fois. Alors que ce ne serait qu'une erreur très mineure, et probablement même pas une erreur qui s'enregistrerait, ce serait le genre de chose qui m'a ennuyé.
Cependant, être tenu à la main introduit la possibilité beaucoup plus grande que la maudite chose soit lâchée dans le réservoir et ne soit plus jamais vue. Donc, pour atténuer ces deux possibilités, il sera fixé sur une longueur de bois, qui sera ensuite placée au-dessus de l'ouverture du réservoir - de sorte que la mesure soit prise à chaque fois exactement à la même hauteur et au même angle (et s'il est tombé dans le réservoir, au moins le bois flottera).
Un bouton-poussoir active l'unité (éliminant ainsi le besoin d'un interrupteur marche/arrêt et la possibilité d'une batterie accidentellement aplatie) et lance le croquis dans l'Arduino. Cela prend un certain nombre de lectures du HC-SR04 et en prend la moyenne (pour atténuer les lectures erratiques).
J'ai également inclus un peu de code pour vérifier si l'une des broches d'E/S numériques d'Arduino est haute ou basse, et l'utiliser pour mettre l'unité dans ce que j'ai appelé le mode « Calibration ». Dans ce mode, l'écran affiche simplement la distance réelle (divisée par 2) renvoyée par le capteur, afin que je puisse en vérifier la précision par rapport à un ruban à mesurer.
Étape 3: Les ingrédients
L'unité se compose de trois éléments principaux…
- Un module émetteur/récepteur à ultrasons HC-SR04
- Un microcontrôleur Arduino Pro Mini
- Un affichage LED à 4 chiffres et 7 segments ou un 'module' d'affichage tel qu'un TM1637
Tout ce qui précède peut être facilement trouvé sur ebay, en recherchant simplement les termes affichés en gras.
Dans cette application, l'affichage utilise simplement 3 chiffres pour afficher une valeur en % de 0-100 ou 4 chiffres pour afficher le nombre de litres (max 2000 dans mon cas), donc n'importe quel affichage à 4 chiffres fera l'affaire - vous n'avez pas à le faire. s'inquiéter de savoir si le module a des points décimaux ou des deux-points. Un 'module' d'affichage (LED montée sur une carte de dérivation, avec une puce d'interface) est plus facile, car il utilise moins de connexions de broches, mais un affichage à LED brut avec 12 broches pourrait être pris en charge par l'Arduino avec quelques petites modifications du code (en fait, ma conception originale était basée sur cette configuration). Notez cependant que l'utilisation d'un affichage LED brut nécessite également 7 résistances pour limiter le courant consommé par chaque segment. J'avais un module d'affichage d'horloge TM1637 disponible, alors j'ai décidé de l'utiliser.
Les bits et bobs supplémentaires comprennent un clip de batterie 9v (et une batterie, évidemment), un bouton-poussoir momentané « pousser pour faire », une boîte de projet, des broches d'en-tête, des fils de connexion et une longueur de bois de 2 "x 4" qui dépasse le diamètre de l'ouverture du réservoir.
Les bits et les bobs supplémentaires (à part le gros morceau de bois) ont été achetés auprès de ma chaîne de magasins d'électronique de loisir locale - qui est Jaycar en Australie. J'imagine que Maplin au Royaume-Uni serait une alternative viable, et je pense qu'il y en a quelques-uns aux États-Unis, comme Digikey et Mouser. Pour les autres pays, je crains de ne pas le savoir, mais je suis sûr que si vous n'avez pas de point de vente ou de fournisseur en ligne approprié dans votre pays, les vendeurs ebay chinois viendront pour vous, si vous ne le faites pas. n'oubliez pas d'attendre quelques semaines pour la livraison (ironiquement, bien que nous soyons l'un de nos voisins les plus proches, 6 semaines ou plus ne sont pas inhabituels pour une livraison en Australie depuis la Chine !).
Assurez-vous d'avoir une boîte de projet assez grande - j'ai deviné la mienne avant d'avoir les composants disponibles, et c'est vraiment très serré - je devrai peut-être me procurer un bouton-poussoir différent qui utilise moins d'espace.
Oh, et au fait, la longueur du bois vient de quelques chutes de ferraille que je garde dans le coin de mon garage (comme maison pour plus de ces jolies araignées).
Une fois que vous avez compris le schéma et les fonctionnalités, vous pouvez décider d'adapter votre version et d'inclure un interrupteur marche/arrêt, ou d'utiliser une source d'alimentation Li-Ion 18650, avec panneau solaire et contrôleur de charge pour le maintenir constamment rechargé et prêt à fonctionner., ou changez l'affichage LED simple pour un écran LCD multiligne ou OLED graphique avec plus d'options d'affichage d'informations, telles que l'affichage du pourcentage ET des litres restants en même temps. Ou vous pouvez opter pour l'unité IoT sans fil tout chantant et tout dansant installée en permanence dans le réservoir AVEC charge solaire. J'aimerais entendre parler de vos variations et modifications.
Étape 4: Tester le prototype (et le code)
Ayant acheté le HC-SR04 auprès d'une source chinoise bon marché sur ebay, je ne m'attendais pas vraiment à recevoir une unité extrêmement précise, donc je voulais d'abord le tester sur la maquette, au cas où j'aurais besoin d'ajouter un code de correction de distance dans mon croquis.
À ce stade, je cherchais des informations de base sur la façon de se connecter et d'utiliser le HC-SR04, et je dois reconnaître l'exemple "Simple Arduino et HC-SR04" de jsvester. Son exemple et son expérience ont été un excellent point de départ pour commencer à coder.
J'ai trouvé la bibliothèque de fonctions NewPing pour le HC-SR04, qui comprend des fonctionnalités intégrées pour prendre la moyenne de plusieurs lectures, simplifiant ainsi mon code.
J'ai également trouvé une bibliothèque pour le module d'affichage de l'horloge TM1637, ce qui a beaucoup simplifié l'affichage des nombres. Dans mon code d'origine (pour l'affichage à 4 chiffres et 7 segments), je devais diviser le nombre en chiffres individuels, puis construire chaque chiffre individuel sur l'affichage en sachant quels segments illuminer, puis parcourir chaque chiffre du nombre, et en construisant ce nombre sur le chiffre d'affichage approprié. Cette méthode s'appelle le multiplexage et n'affiche effectivement qu'un seul chiffre à la fois, mais les parcourt d'un chiffre à l'autre si rapidement que l'œil humain ne le remarque pas et vous fait croire que tous les chiffres sont activés. à la fois. Comme la bibliothèque HC-SR04 facilitant les opérations de mesure, cette bibliothèque d'affichage prend en charge tout le multiplexage et la manipulation des chiffres. Les pages de référence Arduino liées ci-dessus, donnent quelques exemples, et bien sûr, chaque bibliothèque est livrée avec un exemple de code qui peut être d'une grande aide.
m
Ainsi, les images ci-dessus montrent mon banc d'essai - je le teste sur mon Arduino Uno pour plus de simplicité, car il est déjà configuré pour des connexions réutilisables temporaires pour le prototypage. L'unité fonctionne ici en mode "Calibrage" (notez que la broche numérique 10 - le fil blanc - est connectée à la terre) et lit avec précision 39 cm sur la boîte que j'avais placée au hasard devant, comme le montre le ruban à mesurer. Dans ce mode, j'affiche le petit 'c' devant la mesure, juste pour indiquer que ce n'est pas la mesure normale.
En plus de Vcc (5v) et de la masse, le HC-SR04 a besoin de 2 autres connexions - le déclencheur (jaune à la broche 6) et l'écho (vert à la broche 7). L'affichage a également besoin de Vcc (5v) et de masse, et de 2 connexions supplémentaires - horloge (bleu à la broche 8) et DIO (violet à la broche 9). Comme déjà mentionné, le mode de fonctionnement est contrôlé par un haut ou un bas sur la broche 10 (blanc). Les connexions utiliseront les mêmes broches sur l'Arduino Pro Mini, mais seront définitivement soudées. Le mode de fonctionnement sera sélectionnable à l'aide d'un cavalier sur deux des trois broches d'en-tête, connectées respectivement à Vcc, à la broche 10 et à la terre.
Les spécifications officielles du HC-SR04 revendiquent quelque chose comme une erreur maximale de seulement 3 millimètres jusqu'à la distance de fonctionnement maximale conçue de 4 mètres, alors imaginez ma surprise de constater que mon appareil était certainement précis à ce degré jusqu'à 2 mètres - ce qui dépasse largement ce dont j'ai besoin. En raison de l'espace limité pour une configuration de test rapide et sale, mes résultats de test au-delà de cette distance étaient corrompus par des réflexions de surfaces autres que ma cible de test, car le faisceau de l'émetteur s'étendait et prenait une zone plus large. Mais tant que c'est bon à 1,5 mètre - ça me fera du bien, merci beaucoup:-)
Étape 5: Jauge d'eau de pluie Ino Sketch
Le code complet est joint, mais je vais inclure quelques extraits ci-dessous pour expliquer certaines des étapes.
Tout d'abord, la configuration…
#comprendre
#include #include // broches pour HC-SR04 #define pinTrig 6 #define pinEcho 7 NewPing sonar(pinTrig, pinEcho, 155); // 400 cm est au maximum pour le HC-SR04, 155 cm au maximum pour le réservoir // Broches de connexion du module LED (broches numériques) #define CLK 8 #define DIO 9 TM1637Affichage (CLK, DIO); // Autres broches #define opMode 10
En plus des bibliothèques TM1637 et NewPing, j'ai également inclus une bibliothèque Math, qui me donne accès à la fonction 'arrondi'. Je l'utilise dans certains calculs pour me permettre d'afficher le pourcentage au 5% près par exemple.
Ensuite, les broches des deux appareils sont définies et les appareils lancés.
Enfin, je définis la broche 10 pour le mode de fonctionnement.
// désactiver tous les segments pour tous les chiffres
uint8_t octets = { 0x00, 0x00, 0x00, 0x00 }; display.setSegments(octets);
Cette section de code montre une façon de contrôler le module d'affichage, permettant un contrôle individuel de chaque segment dans chaque chiffre. J'ai défini les 4 éléments du tableau appelés octets, tous à zéro. Cela signifie que chaque bit de chaque octet est égal à zéro. Les 8 bits sont utilisés pour contrôler chacun des 7 segments et le point décimal (ou les deux points dans un affichage de type horloge). Donc, si tous les bits sont à zéro, aucun des segments ne sera allumé. L'opération setSegments envoie le contenu du tableau à l'affichage et n'affiche (dans ce cas) rien. Tous les segments sont désactivés.
Le bit le plus significatif dans un octet contrôle le DP, puis les 7 bits restants contrôlent les 7 segments de G à A dans l'ordre inverse. Ainsi, pour afficher le nombre 1 par exemple, il faut les segments B et C, donc la représentation binaire serait '0b00000110'. (Merci à CircuitsToday.com pour l'image ci-dessus).
// Effectuez 10 lectures et utilisez la durée médiane.
durée int = sonar.ping_median(10); // la durée est en microsecondes if(duration == 0) // Erreur de mesure - non concluant ou pas d'écho { uint8_t bytes = { 0x00, 0b01111001, 0b01010000, 0b01010000 }; // Segments à épeler "Err" display.setSegments(bytes); }
Ici, je dis au HC-SR04 de prendre 10 lectures et de me donner le résultat moyen. Si aucune valeur n'est renvoyée, l'unité est hors plage. J'utilise ensuite la même technique que ci-dessus pour contrôler des segments spécifiques sur les 4 chiffres, pour épeler les lettres (vides), E, r et r. L'utilisation de la notation binaire facilite un peu la relation entre les bits individuels et les segments.
Étape 6: Chargement du code sur un Arduino Pro Mini (sans USB)
Comme je l'ai dit plus tôt, les articles des vendeurs ebay chinois prennent souvent 6 semaines ou plus pour arriver, et une grande partie de mon prototypage et de mon écriture de code a été effectuée en attendant l'arrivée de certains composants - l'Arduino Pro Mini étant l'un d'entre eux.
Une chose que je n'avais pas remarquée à propos du Pro Mini, jusqu'à ce que je l'aie déjà commandé, c'est qu'il n'a pas de port USB dessus pour télécharger le croquis. Ainsi, après quelques recherches frénétiques sur Google, j'ai découvert qu'il y avait deux façons de charger un croquis dans ce cas - l'une nécessite un câble spécial qui va de l'USB sur votre PC, à 6 broches spécifiques sur le Pro Mini. Ce groupe de 6 broches est connu sous le nom de broches ISP (programmeur intégré au système), et vous pouvez en fait utiliser cette méthode sur n'importe quel Arduino si vous le souhaitez - mais comme l'interface USB est disponible sur à peu près toutes les autres variantes d'Arduino (je penser), utiliser cette option est beaucoup plus simple. L'autre méthode nécessite que vous ayez un autre Arduino avec une interface USB dessus, pour agir comme un "intermédiaire".
Heureusement, avoir mon Arduino Uno signifiait que je pouvais utiliser la deuxième méthode, que je vais vous décrire ci-dessous. C'est ce qu'on appelle l'utilisation de « Arduino en tant que FAI ». En un mot, vous chargez un croquis spécial sur votre Arduino « intermédiaire », qui le transforme en une interface série. Chargez ensuite votre esquisse réelle, mais au lieu de l'option de téléchargement normale, vous utilisez une option du menu IDE qui télécharge « en utilisant l'Arduino comme FAI ». L'Arduino "intermédiaire" prend ensuite votre croquis réel de l'IDE et le transmet aux broches ISP du Pro Mini, plutôt que de le charger dans sa propre mémoire. Ce n'est pas difficile une fois que vous avez compris comment cela fonctionne, mais c'est une couche supplémentaire de complexité que vous voudrez peut-être éviter. Si c'est le cas, ou si vous n'avez pas d'autre Arduino que vous pouvez utiliser comme "intermédiaire", alors vous voudrez peut-être acheter un Arduino Nano, ou l'un des autres modèles à petit facteur de forme, qui inclut l'interface USB et rend la programmation plus simple.
Voici quelques ressources qui pourraient vous aider à comprendre le processus. La référence Arduino fait spécifiquement référence à la gravure d'un nouveau chargeur de démarrage sur le périphérique cible, mais vous pouvez tout aussi facilement charger un croquis de la même manière. J'ai trouvé que la vidéo de Julian Ilett rend le concept beaucoup plus clair, bien qu'il saute la partie de la référence Arduino qui explique comment câbler les deux Arduinos ensemble et programme à la place une puce nue sur une planche à pain.
- Le manuel de référence Arduino - Utilisation d'Arduino en tant que FAI
- Vidéo YouTube de Julian Ilett - Utiliser un Arduino comme FAI
Comme le Pro Mini n'a pas les 6 broches ISP regroupées de manière pratique, vous devez décoder lesquelles des broches numériques se rapportent aux 4 broches de programmation (les deux autres connexions ne sont que Vcc et Gnd - elles sont donc assez simples). Heureusement pour vous, j'ai déjà vécu cela - et je suis prêt à partager mes connaissances avec vous - quelle personne généreuse je suis !!
L'Arduino Uno, et bien d'autres de la famille Arduino, ont les 6 broches disposées de manière pratique dans un bloc 3x2, comme celui-ci (image de www.arduino.cc).
Malheureusement, le Pro Mini ne le fait pas. Comme vous pouvez le voir ci-dessous, ils sont en fait assez faciles à identifier et sont toujours disposés en 2 blocs de 3 broches. MOSI, MISO et SCK sont les mêmes que les broches numériques 11, 12 et 13 respectivement sur le Pro Mini et l'Arduino Uno, et pour la programmation ISP, connectez simplement 11 à 11, 12 à 12 et 13 à 13. Le Pro La broche de réinitialisation du Mini doit être connectée à la broche Uno 10, et le Vcc (5v)/Masse du Pro Mini doit être connecté à l'Arduino +5v/Masse. (Image de www.arduino.cc)
Étape 7: Assemblage
Comme je l'ai mentionné, j'ai pris un coup de volée sur l'affaire et je l'ai regretté. Pour intégrer tous les composants, c'était une vraie compression. En fait, j'ai dû plier les contacts du bouton-poussoir sur le côté et mettre un emballage à l'extérieur pour le soulever un peu plus afin qu'il rentre dans la profondeur de la boîte, et j'ai dû meuler 2-3 mm de chaque côté de la carte du module d'affichage pour qu'elle s'adapte aussi.
J'ai percé 2 trous dans le boîtier pour que les capteurs à ultrasons puissent passer à travers. J'ai percé les trous un peu trop petits, puis je les ai progressivement augmentés à l'aide d'une petite meuleuse rotative, afin de pouvoir les ajuster correctement. Malheureusement, ils étaient trop près des côtés pour pouvoir utiliser la meuleuse de l'intérieur de la boîte, et cela devait être fait de l'extérieur, ce qui a entraîné de nombreuses rayures et marques de patin là où la meuleuse a glissé - eh bien, c'est tout sur le fond de toute façon - qui s'en soucie..?
J'ai ensuite coupé une fente à une extrémité qui est de la bonne taille pour que l'écran puisse passer à travers. Encore une fois - ma conjecture sur la taille de la boîte m'a mordu à l'arrière car la fente m'a laissé un morceau très mince au-dessus de l'écran, qui s'est inévitablement cassé pendant que je le limais en douceur. Eh bien, c'est pour ça que la super-colle a été inventée…
Enfin, avec tous les composants grossièrement positionnés dans la boîte, j'ai mesuré où mettre le trou dans le couvercle, afin que le corps du bouton poussoir tombe dans l'espace disponible final. SEULEMENT!!!
Ensuite, j'ai soudé tous les composants ensemble pour tester qu'ils fonctionnaient toujours après mon pliage, mon meulage et mon rognage, avant de les assembler tous dans le boîtier. Vous pouvez voir la connexion du cavalier juste en dessous du module d'affichage, avec la broche 10 de l'Arduino (fil blanc) connectée à Gnd, mettant ainsi l'unité en mode d'étalonnage. L'écran affiche 122 cm au-dessus de mon banc - il a dû capter un signal réfléchi par le haut du cadre de la fenêtre (c'est trop bas pour être le plafond).
Ensuite, il s'agissait de sortir le pistolet à colle chaude et de mettre tous les composants en place. Après avoir fait cela, j'ai constaté que le petit espace entre le haut du module d'affichage et le couvercle, une fois le module collé en place, laissait un petit renflement où le couvercle ne s'adapterait pas aussi bien que je le voudrais. Je pourrais essayer de faire quelque chose à ce sujet un jour - ou plus probablement, je ne le ferai pas…
Étape 8: L'article fini
Après quelques tests post-assemblage, et une correction de mon code pour tenir compte de la profondeur du morceau de bois sur lequel j'avais vissé l'appareil (que j'avais complètement oublié dans mes calculs - d'oh !!), c'est tout fait. Finalement!
Tests assemblés
Avec l'unité juste assise face contre moi sur mon banc, il n'y aura évidemment pas de signal réfléchi, donc l'unité affiche correctement une condition d'erreur. La même chose serait vraie si la surface réfléchissante la plus proche est au-delà de la portée de l'unité.
On dirait que de mon banc au sol fait 76 cm (enfin, 72 cm plus les 4 cm de profondeur du morceau de bois).
Le dessous de l'appareil, montrant l'émetteur et le récepteur surplombant le morceau de bois - je devrais vraiment arrêter de l'appeler un morceau de bois - il sera désormais appelé la plate-forme de stabilisation de la jauge et de placement de précision ! Heureusement, c'est probablement la dernière fois que j'en parle;-)
Ooh - vous pouvez voir toutes ces vilaines égratignures et marques de patins dans celui-ci…
… et voici l'article fini, placé en mode de fonctionnement normal, mesurant effectivement la capacité de mon réservoir au 5% près. C'est un dimanche après-midi (très) pluvieux qui m'a vu terminer ce projet, d'où les gouttes de pluie sur l'appareil, et la très agréable lecture à 90%.
J'espère que vous avez apprécié la lecture de cette instructable, et que vous avez appris un peu sur la programmation Arduino, la physique et l'utilisation de la réflexion sonar/ultrasons, les pièges de l'utilisation de conjectures dans la planification de votre projet, et que vous avez été inspiré pour faire votre propre jauge de réservoir d'eau de pluie - puis d'installer un réservoir d'eau de pluie pour l'utiliser, tout en aidant un peu l'environnement et en économisant sur votre facture d'eau.
Veuillez lire la suite - pour ce qui s'est passé le lendemain…!
Étape 9: Post-scriptum - Cent (cinq) pour cent ?
Ainsi, le lundi suivant le dimanche pluvieux, le réservoir était absolument aussi plein qu'il pouvait l'être. Comme c'est l'une des rares fois où je l'ai jamais vu complètement plein, j'ai pensé que ce serait le moment idéal pour comparer la jauge, mais devinez quoi - elle s'est inscrite à 105%, donc il y avait manifestement quelque chose qui n'allait pas.
J'ai sorti ma jauge et j'ai découvert que mes hypothèses initiales de 140 cm de profondeur d'eau maximale et de 16 cm de hauteur libre (basées sur des estimations visuelles faites à l'extérieur du réservoir) étaient toutes deux un peu éloignées des mesures réelles. Donc armé des données réelles pour mon benchmark à 100%, j'ai pu peaufiner mon code et recharger l'Arduino.
La profondeur maximale de l'eau s'avère être de 147 cm, le point de mesure se situant à 160 cm, ce qui donne 13 cm de hauteur libre (la somme de la hauteur libre dans le réservoir, la hauteur du col du réservoir et la profondeur du morceau de… whoa, non, quoi ? Je veux dire la profondeur de la plate-forme de stabilisation de la jauge et de placement de précision !).
Après avoir corrigé les variables maxDepth et headroom en conséquence, ainsi qu'avoir réinitialisé la portée maximale de l'objet sonar à 160 cm, un nouveau test rapide a montré que 100 % tombait à 95 % lorsque je soulevais un peu la jauge (pour simuler une petite quantité de eau ayant été utilisée).
Travail accompli!
PS - c'est ma première tentative à un instructable. Si vous aimez mon style, mon sens de l'humour, l'honnêteté d'admettre ses erreurs (hé - même moi je ne suis pas parfait…), etc - faites le moi savoir et ça me donnera peut-être le coup de pouce pour en refaire un.
Étape 10: réflexions après coup
Capacité utilisable
Cela fait donc quelques semaines maintenant que j'ai publié ce Instructable, et j'ai eu de nombreux commentaires en réponse, dont certains ont suggéré des mécanismes alternatifs - à la fois électroniques et manuels. Mais cela m'a fait réfléchir, et il y a quelque chose que j'aurais probablement dû souligner au début.
- Mon réservoir a une pompe, qui est installée au niveau du sol - juste légèrement en dessous de la base du réservoir. Comme la pompe est le point le plus bas du système et que l'eau de la pompe est sous pression, je peux utiliser la pleine capacité de mon réservoir.
- CEPENDANT - si votre réservoir n'a pas de pompe et repose sur une alimentation par gravité, la capacité effective du réservoir est limitée par la hauteur de votre robinet. Une fois que l'eau restant dans votre réservoir est plus basse que le robinet, aucune eau ne coulera.
Ainsi, que vous utilisiez une jauge électronique, un voyant manuel ou un système de type flotteur et drapeau, sachez simplement que sans pompe, la «base» effective de votre réservoir est en fait la hauteur de la sortie du réservoir ou robinet.
Conseillé:
Détecteur de pluie utilisant Arduino et capteur de gouttes de pluie : 8 étapes
Détecteur de pluie à l'aide d'Arduino et d'un capteur de gouttes de pluie : dans ce tutoriel, nous allons apprendre à détecter une pluie à l'aide d'un capteur de pluie et à émettre un son à l'aide d'un module de buzzer et d'un écran OLED et Visuino.Regardez la vidéo
Un compteur de température, de conductivité et de niveau d'eau de l'eau de puits en temps réel : 6 étapes (avec photos)
Un compteur de température, de conductivité et de niveau d'eau de l'eau de puits en temps réel : ces instructions décrivent comment construire un compteur d'eau en temps réel à faible coût pour surveiller la température, la conductivité électrique (CE) et les niveaux d'eau dans les puits creusés. Le compteur est conçu pour être suspendu à l'intérieur d'un puits creusé, mesurer la température de l'eau, EC et
Compteur de capacité Arduino Nano : 8 étapes (avec photos)
Compteur de capacité Arduino Nano : ce projet est pratiquement en trois composants car il est formé d'un écran LCD 16X2, d'un potentiomètre 10K et d'un Arduino Nano tandis que le reste des pièces est un PCB conçu par moi à l'aide du logiciel EasyEda, 1 X 40 HEADER, 0,1"; ESPACEMENT, et 1x6 FEMELLE
Compteur de niveau de réservoir à ultrasons : 5 étapes (avec photos)
Indicateur de niveau de réservoir à ultrasons : Besoin de surveiller le niveau de liquide dans un puits de grand diamètre, un réservoir ou un conteneur ouvert ? Ce guide vous montrera comment fabriquer un sonar de niveau de fluide sans contact à l'aide d'électronique bon marché! Le croquis ci-dessus montre un aperçu de ce que nous visons avec t
Utilisation de capteurs de température, d'eau de pluie et de vibrations sur un Arduino pour protéger les chemins de fer : 8 étapes (avec photos)
Utilisation de capteurs de température, d'eau de pluie et de vibrations sur un Arduino pour protéger les chemins de fer : Dans la société moderne, une augmentation du nombre de passagers ferroviaires signifie que les entreprises ferroviaires doivent faire davantage pour optimiser les réseaux afin de répondre à la demande. Dans ce projet, nous montrerons à petite échelle comment les capteurs de température, d'eau de pluie et de vibration o