
Non, ce n'est pas une offre commerciale, c'est le coût des composants du systÚme que vous pourrez assembler aprÚs avoir lu l'article.
Un peu d'historique :
Il y a quelque temps, j'ai décidé d'adopter des abeilles, et elles sont bien arrivées⊠pour toute une saison, mais elles n'ont pas survécu à l'hiver.
Et cela malgrĂ© le fait que je pensais avoir tout fait correctement â alimentation d'automne, isolation avant le froid.
La ruche était en bois classique du systÚme « Dadant » avec 10 cadres en planche de 40 mm.
Mais cet hiver, Ă cause des « variations » de tempĂ©rature, mĂȘme les apiculteurs expĂ©rimentĂ©s ont perdu beaucoup plus que d'habitude.
C'est ainsi qu'est venue l'idée d'un systÚme de surveillance de l'état de la ruche.
AprÚs la publication de plusieurs articles sur Habr et des échanges sur le forum des apiculteurs, j'ai décidé de partir du simple vers le complexe.
Le poids est le seul paramÚtre incontestable, mais en général, les systÚmes existants surveillent seulement une ruche « étalon ».
Si quelque chose ne va pas (par exemple, l'envol d'un essaim, maladie des abeilles), les indicateurs deviennent obsolĂštes.
Il a donc été décidé de suivre l'évolution du poids de trois ruches avec un seul microcontrÎleur, et d'ajouter d'autres « fonctionnalités » par la suite.
Au final, j'ai obtenu un systĂšme autonome avec environ un mois de fonctionnement sur une seule charge de batterie 18650, envoyant des statistiques une fois par jour.
J'ai essayĂ© de simplifier la construction autant que possible, afin qu'elle puisse ĂȘtre rĂ©pĂ©tĂ©e mĂȘme sans schĂ©mas, juste avec des photos.
La logique de fonctionnement est la suivante : lors du premier démarrage/réinitialisation, les valeurs des capteurs installés sous les ruches sont mémorisées dans l'EEPROM.
Ensuite, chaque jour, aprÚs le coucher du soleil, le systÚme « s'éveille », lit les données et envoie un SMS avec les variations de poids sur les 24 heures et depuis le moment de l'activation.
De plus, la valeur de la tension de la batterie est transmise, et lorsque cela descend en dessous de 3,5 V, un avertissement est émis concernant la nécessité de recharger, car en dessous de 3,4 V, le module de communication ne s'allume pas, et les indications de poids « s'échappent » déjà .
« Tu te souviens comment tout a commencé. Tout était nouveau et encore une fois. »

Oui, c'est exactement ce jeu d'équipements qui était à l'origine, bien que seuls les capteurs de force et les fils aient survécu jusqu'à la version finale, mais nous y reviendrons.
En rĂ©alitĂ©, une bobine de cĂąble n'est pas nĂ©cessaire, car elle s'est rĂ©vĂ©lĂ©e au mĂȘme prix que 30 m en coupe.
Si le dĂ©montage de 3 LED SMD et d'une cinquantaine de points de soudure ordinaires (en sortie) ne vous fait pas peur â alors en avant !
Nous aurons besoin du matériel suivant :
- Arduino Pro Mini 3V
Il faut faire attention Ă la puce du rĂ©gulateur linĂ©aire â elle doit ĂȘtre de 3.3V â avec les marquages KB 33/LB 33/DE A10 â les Chinois ont commis une erreur, et tout le lot
de cartes en magasin Ă©tait Ă©quipĂ© de rĂ©gulateurs de 5 volts et de quartz Ă 16 MHz. - USB-Ttl avec puce CH340 â mĂȘme un 5 volts peut fonctionner, mais pendant la programmation du microcontrĂŽleur, il faudra dĂ©connecter l'Arduino du module GSM pour ne pas le dĂ©truire.
Les cartes avec puce PL2303 ne fonctionnent pas sous Windows 10. - Module de communication GSM Goouu Tech IOT GA-6-B ou AI-THINKER A-6 Mini.
Pourquoi avoir optĂ© pour lui ? Neoway M590 â un constructeur qui nĂ©cessite des manipulations spĂ©cifiques, GSM SIM800L â je n'ai pas aimĂ© le niveau logique non standard de 2.8V, qui nĂ©cessite un compromis mĂȘme avec l'Arduino 3 volts.
De plus, la solution d'AiThinker a une consommation d'Ă©nergie minimale (en envoyant des SMS, je n'ai pas vu de courant dĂ©passer 100mA). - Antenne GSM GPRS 3DBI (sur la photo ci-dessus â petite plaque rectangulaire avec "queue", Ă 9 heures)
- Pack de dĂ©marrage d'un opĂ©rateur ayant une bonne couverture dans le lieu oĂč se trouve votre ruche.
Oui, le pack doit d'abord ĂȘtre activĂ© sur un tĂ©lĂ©phone ordinaire, DĂCONNECTER LA DEMANDE DE PIN lors de l'entrĂ©e, et recharger le solde.
Il existe actuellement de nombreuses options avec des noms comme «Capteur», «IoT» â leur abonnement est lĂ©gĂšrement moins cher. - CĂąble dupont 20 cm femelle-femelle â 3 piĂšces (pour connecter l'Arduino au USB-TTL)
- 3 piĂšces HX711 â ADC pour balances
- 6 capteurs de tension pour un poids maximal de 50 kg
- 15 mĂštres de cĂąble tĂ©lĂ©phonique 4 fils â pour connecter les modules de poids Ă l'ARDUINO.
- Photo-résistance GL5528 (il est important qu'elle soit exactement celle-ci, avec une résistance sombre de 1MΩ et une résistance lumineuse de 10-20kΩ) et deux résistances ordinaires de 20kΩ
- Un morceau de ruban double face "Ă©pais" 18x18 mm â pour fixer l'Arduino au module de communication.
- Support de batterie 18650 et, en fait, la batterie elle-mĂȘme d'environ 2600mAh.
- Un peu de cire ou de paraffine (bougie tablette d'aromathĂ©rapie) â pour protĂ©ger l'HX711 de l'humiditĂ©.
- Un morceau de bois de 25x50x300 mm pour la base des capteurs de tension.
- Une douzaine de vis avec rondelle de pression 4,2x19 mm pour fixer les capteurs Ă la base.
La batterie peut ĂȘtre rĂ©cupĂ©rĂ©e d'ordinateurs portables â beaucoup moins cher qu'une nouvelle, et sa capacitĂ© sera bien plus grande que celle de la chinoise UltraFire â j'ai obtenu 1500 contre 450 (c'est 6800 pour l'UltraFire đ
En plus, il vous faudra des mains habiles, un fer à souder EPSN-25, de la résine et de l'étain POS-60.

Il y a cinq ans, j'utilisais un fer Ă souder soviĂ©tique avec une pointe en cuivre (je n'ai jamais Ă©tĂ© convaincu par les stations de soudage â j'ai testĂ©, puis j'ai terminĂ© le circuit avec un EPSN).
Mais aprĂšs sa dĂ©faillance et plusieurs horribles contrefaçons chinoises, la derniĂšre s'appelait Sparta â un objet aussi sĂ©vĂšre que son nom, j'ai arrĂȘtĂ©
sur un produit avec un thermorégulateur.
Alors, c'est parti !

Pour commencer, retirons deux LED du module GSM (l'endroit oĂč elles se trouvaient est entourĂ© d'un ovale orange).
Insérons la carte SIM avec les contacts vers le circuit imprimé, l'angle biseauté sur la photo est marqué par une flÚche.

Nous effectuons ensuite la mĂȘme procĂ©dure pour la LED sur la carte Arduino (ovale Ă gauche de la puce carrĂ©e),
Nous souderons un connecteur Ă quatre contacts (1),
Prenons deux résistances de 20k, tordons les fils d'un cÎté, souder la torsion dans le trou du contact A5, les fils restants dans RAW et GND de l'Arduino (2),
Raccourcissons les pattes du photo-résistor à 10mm et le souderons aux bornes GND et D2 de la carte (3).
Il est maintenant temps d'utiliser du ruban adhĂ©sif double face â nous le collons sur le support de la carte SIM du module de communication, et par-dessus â l'Arduino â le bouton rouge (argentĂ©) est tournĂ© vers nous et se trouve au-dessus de la SIM.
Nous soudons l'alimentation : le positif du condensateur du module de communication (4) vers le contact RAW de l'Arduino.
En effet, le module de communication nĂ©cessite une alimentation de 3,4 Ă 4,2V, et son contact PWR est reliĂ© Ă un convertisseur abaisseur, donc pour fonctionner avec une batterie Li-ion, la tension doit ĂȘtre fournie en contournant cette partie du circuit.
Dans l'Arduino, en revanche, nous alimentons Ă travers un rĂ©gulateur linĂ©aire â pour des courants faibles, la chute de tension est de 0,1V.
En fournissant une tension rĂ©gulĂ©e aux modules HX711, nous Ă©vitons d'avoir Ă les adapter Ă une tension infĂ©rieure (et par la mĂȘme occasion de gĂ©nĂ©rer des bruits supplĂ©mentaires en raison de cette opĂ©ration).
Ensuite, nous soudons des ponts (5) entre les contacts PWR-A1, URX-D4 et UTX-D5, la « terre » GND-G (6) et enfin l'alimentation du support de batterie 18650 (7), nous connectons l'antenne (8).
Prenons maintenant un convertisseur USB-TTL et connectons-le avec des fils Dupont Ă l'ARDUINO (connecteur 1) aux contacts RXD-TXD, TXD-RXD, GND-GND :

Sur la photo ci-dessus â encore la premiĂšre version (sur trois) du systĂšme, qui a Ă©tĂ© utilisĂ©e pour le dĂ©bogage.
Et maintenant, nous allons nous éloigner un moment du fer à souder et passer à la partie logicielle.
Je vais décrire la séquence d'actions pour Windows :
Tout d'abord, il est nĂ©cessaire de tĂ©lĂ©charger et d'installer/dĂ©compresser le programme â la version actuelle est 1.8.9, mais j'utilise 1.6.4
Pour plus de simplicité, nous décompressons l'archive dans le dossier C:\arduino-«numéro_de_votre_version», à l'intérieur nous aurons les dossiers /dist, drivers, examples, hardware, java, lib, libraries, reference, tools, ainsi que le fichier exécutable arduino (en plus d'autres).
Nous aurons maintenant besoin d'une bibliothĂšque pour travailler avec l'ADC â le bouton vert «clone or download» â tĂ©lĂ©charger ZIP.
Le contenu (dossier HX711-master) va dans le répertoire C:\arduino-«numéro_de_votre_version»libraries
Et bien sĂ»r, le pilote pour du mĂȘme github â depuis l'archive dĂ©compressĂ©e, il suffit de lancer l'installation avec le fichier SETUP.
Ok, lançons et configurons le programme C:\arduino-«numéro_de_votre_version»arduino

Allons dans le menu «Outils» - sĂ©lectionnons la carte «Arduino Pro ou Pro Mini», processeur Atmega 328 3.3V 8 MHz, port â numĂ©ro autre que le COM1 systĂšme (il apparaĂźt aprĂšs l'installation du pilote CH340 avec l'adaptateur USB-TTL connectĂ©)
Ok, copions le sketch (programme) ci-dessous et collons-le dans la fenĂȘtre de l'Arduino IDE
char phone_no[]="+123456789012"; // Your phone number that receive SMS with counry code
#include <avr/sleep.h> // ARDUINO sleep mode library
#include <SoftwareSerial.h> // Sofrware serial library
#include "HX711.h" // HX711 lib. https://github.com/bogde/HX711
#include <EEPROM.h> // EEPROM lib.
HX711 scale0(10, 14);
HX711 scale1(11, 14);
HX711 scale2(12, 14);
#define SENSORCNT 3
HX711 *scale[SENSORCNT];
SoftwareSerial mySerial(5, 4); // Set I/O-port TXD, RXD of GSM-shield
byte pin2sleep=15; // Set powerON/OFF pin
float delta00; // delta weight from start
float delta10;
float delta20;
float delta01; // delta weight from yesterday
float delta11;
float delta21;
float raw00; //raw data from sensors on first start
float raw10;
float raw20;
float raw01; //raw data from sensors on yesterday
float raw11;
float raw21;
float raw02; //actual raw data from sensors
float raw12;
float raw22;
word calibrate0=20880; //calibration factor for each sensor
word calibrate1=20880;
word calibrate2=20880;
word daynum=0; //numbers of day after start
int notsunset=0;
boolean setZero=false;
float readVcc() { // Read battery voltage function
long result1000;
float rvcc;
result1000 = analogRead(A5);
rvcc=result1000;
rvcc=6.6*rvcc/1023;
return rvcc;
}
void setup() { // Setup part run once, at start
pinMode(13, OUTPUT); // Led pin init
pinMode(2, INPUT_PULLUP); // Set pullup voltage
Serial.begin(9600);
mySerial.begin(115200); // Open Software Serial port to work with GSM-shield
pinMode(pin2sleep, OUTPUT);// Itit ON/OFF pin for GSM
digitalWrite(pin2sleep, LOW); // Turn ON modem
delay(16000); // Wait for its boot
scale[0] = &scale0; //init scale
scale[1] = &scale1;
scale[2] = &scale2;
scale0.set_scale();
scale1.set_scale();
scale2.set_scale();
delay(200);
setZero=digitalRead(2);
if (EEPROM.read(500)==EEPROM.read(501) || setZero) // first boot/reset with hiding photoresistor
//if (setZero)
{
raw00=scale0.get_units(16); //read data from scales
raw10=scale1.get_units(16);
raw20=scale2.get_units(16);
EEPROM.put(500, raw00); //write data to eeprom
EEPROM.put(504, raw10);
EEPROM.put(508, raw20);
for (int i = 0; i <= 24; i++) { //blinking LED13 on reset/first boot
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}
else {
EEPROM.get(500, raw00); // read data from eeprom after battery change
EEPROM.get(504, raw10);
EEPROM.get(508, raw20);
digitalWrite(13, HIGH); // turn on LED 13 on 12sec.
delay(12000);
digitalWrite(13, LOW);
}
delay(200); // Test SMS at initial boot
//
mySerial.println("AT+CMGF=1"); // Send SMS part
delay(2000);
mySerial.print("AT+CMGS="");
mySerial.print(phone_no);
mySerial.write(0x22);
mySerial.write(0x0D); // hex equivalent of Carraige return
mySerial.write(0x0A); // hex equivalent of newline
delay(2000);
mySerial.println("INITIAL BOOT OK");
mySerial.print("V Bat= ");
mySerial.println(readVcc());
if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
delay(500);
mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(3000);
//
raw02=raw00;
raw12=raw10;
raw22=raw20;
//scale0.power_down(); //power down all scales
//scale1.power_down();
//scale2.power_down();
}
void loop() {
attachInterrupt(0, NULL , RISING); // Interrupt on high lewel
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //Set ARDUINO sleep mode
digitalWrite(pin2sleep, HIGH); // Turn OFF GSM-shield
delay(2200);
digitalWrite(pin2sleep, LOW); // Turn OFF GSM-shield
delay(2200);
digitalWrite(pin2sleep, HIGH);
digitalWrite(13, LOW);
scale0.power_down(); //power down all scales
scale1.power_down();
scale2.power_down();
delay(90000);
sleep_mode(); // Go to sleep
detachInterrupt(digitalPinToInterrupt(0)); // turn off external interrupt
notsunset=0;
for (int i=0; i <= 250; i++){
if ( !digitalRead(2) ){ notsunset++; } //is a really sunset now? you shure?
delay(360);
}
if ( notsunset==0 )
{
digitalWrite(13, HIGH);
digitalWrite(pin2sleep, LOW); // Turn-ON GSM-shield
scale0.power_up(); //power up all scales
scale1.power_up();
scale2.power_up();
raw01=raw02;
raw11=raw12;
raw21=raw22;
raw02=scale0.get_units(16); //read data from scales
raw12=scale1.get_units(16);
raw22=scale2.get_units(16);
daynum++;
delta00=(raw02-raw00)/calibrate0; // calculate weight changes
delta01=(raw02-raw01)/calibrate0;
delta10=(raw12-raw10)/calibrate1;
delta11=(raw12-raw11)/calibrate1;
delta20=(raw22-raw20)/calibrate2;
delta21=(raw22-raw21)/calibrate2;
delay(16000);
mySerial.println("AT+CMGF=1"); // Send SMS part
delay(2000);
mySerial.print("AT+CMGS="");
mySerial.print(phone_no);
mySerial.write(0x22);
mySerial.write(0x0D); // hex equivalent of Carraige return
mySerial.write(0x0A); // hex equivalent of newline
delay(2000);
mySerial.print("Turn ");
mySerial.println(daynum);
mySerial.print("Hive1 ");
mySerial.print(delta01);
mySerial.print(" ");
mySerial.println(delta00);
mySerial.print("Hive2 ");
mySerial.print(delta11);
mySerial.print(" ");
mySerial.println(delta10);
mySerial.print("Hive3 ");
mySerial.print(delta21);
mySerial.print(" ");
mySerial.println(delta20);
mySerial.print("V Bat= ");
mySerial.println(readVcc());
if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
delay(500);
mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
delay(3000);
}
}
Dans la premiĂšre ligne, entre guillemets char phone_no[]="+123456789012"; â au lieu de 123456789012, mettez votre numĂ©ro de tĂ©lĂ©phone avec l'indicatif du pays, sur lequel les SMS arriveront.
Maintenant, appuyons sur le bouton vĂ©rifier (au-dessus du chiffre un sur la capture d'Ă©cran ci-dessus) â si en bas (sous le trois sur l'Ă©cran) il est marquĂ© «Compilation terminĂ©e» â alors nous pouvons flasher le microcontrĂŽleur.
Ainsi, l'USB-TTL est connecté à l'ARDUINO et à l'ordinateur, plaçons une batterie chargée dans le support (généralement sur une nouvelle Arduino, la LED clignote avec une fréquence d'une fois par seconde).
Maintenant pour le flashage â entraĂźnons-nous Ă appuyer sur le bouton rouge (argentĂ©) du microcontrĂŽleur â il faudra le faire strictement Ă un moment donnĂ© !!!
C'est bon ? Appuyons sur le bouton «Téléverser» (au-dessus du deux sur la capture d'écran), et regardons attentivement la ligne en bas de l'interface (sous le trois de l'écran).
DĂšs que l'inscription «compilation» se transforme en «tĂ©lĂ©versement» â appuyons sur le bouton rouge (reset) â si tout va bien â des lumiĂšres clignoteront joyeusement sur l'adaptateur USB-TTL, et en bas de l'interface, l'inscription «TĂ©lĂ©versé»
Maintenant, pendant que nous attendons la réception d'un SMS de test sur le téléphone, je vais vous expliquer comment fonctionne le programme :

Sur la photo â la deuxiĂšme version de la plateforme de test.
Au premier démarrage, le systÚme compare les octets numéro 500 et 501 EEPROM s'ils sont égaux, cela signifie que les données de calibration ne sont pas enregistrées, et l'algorithme passe à la section de configuration.
Il en va de mĂȘme si le photorĂ©sistor est ombragĂ© lors de l'allumage (avec un capuchon de stylo) â le mode de rĂ©initialisation des paramĂštres est activĂ©.
Les capteurs de force doivent dĂ©jĂ ĂȘtre installĂ©s sous les ruches, car nous fixons simplement le niveau de rĂ©fĂ©rence et mesurons ensuite la variation de poids (pour l'instant, nous obtiendrons juste des zĂ©ros, car nous n'avons pas encore connectĂ© quoi que ce soit).
Sur l'Arduino, la LED intégrée de la pin 13 commencera à clignoter.
Si la réinitialisation ne se produit pas, la LED s'allume pendant 12 secondes.
AprÚs cela, un SMS de test est envoyé avec le message «INITIAL BOOT OK» et la tension de la batterie.
Le module de communication est dĂ©sactivĂ©, et au bout de 3 minutes, la carte Arduino met les cartes ADC HX711 en mode veille et s'endort elle-mĂȘme.
Ce retard est fait pour éviter de capter des interférences du module GSM en fonctionnement (aprÚs désactivation, il émet des perturbations pendant un certain temps).
Ensuite, nous avons une interruption par le photodétecteur sur la deuxiÚme broche (une résistance de tirage positive est activée par la fonction pullup).
AprĂšs le dĂ©clenchement, l'Ă©tat du photorĂ©sistor est vĂ©rifiĂ© pendant encore 3 minutes â pour Ă©viter des dĂ©clenchements rĂ©pĂ©tĂ©s ou faussement positifs.
Il est caractéristique que, sans aucun réglage, le systÚme se déclenche 10 minutes aprÚs le coucher astronomique du soleil par temps nuageux et 20 minutes par temps clair.
Oui, pour Ă©viter que le systĂšme ne redĂ©marre Ă chaque activation, le premier module HX711 doit ĂȘtre connectĂ© (broches DT-D10, SCK-A0).
Ensuite, les lectures des capteurs de force sont effectuées, la variation de poids depuis le dernier déclenchement est calculée (le premier nombre sur la ligne aprÚs Hive) et depuis la premiÚre activation, la tension de la batterie est vérifiée et ces informations sont envoyées sous forme de SMS :

Au fait, avez-vous reçu le SMS ? Félicitations ! Nous sommes à mi-chemin ! Vous pouvez retirer la batterie du support, l'ordinateur ne nous sera plus nécessaire.
à titre de remarque, le centre de contrÎle des vols est si compact qu'il peut tenir dans un pot de mayonnaise, dans mon cas, une boßte semi-transparente de taille 30x60x100 mm (pour les cartes de visite) a parfaitement fonctionné.
Oui, le systĂšme en veille consomme environ 2,3 mA â Ă 90 % Ă cause du module de communication â il ne s'Ă©teint pas complĂštement, mais passe en mode veille.

Passons à la fabrication des capteurs, pour commencer, nous allons toucher au schéma de disposition des capteurs :

Voici le plan de la ruche - vue de dessus.
Classiquement, 4 capteurs sont installés dans les coins (1, 2, 3, 4)
Nous allons mesurer diffĂ©remment. Plus prĂ©cisĂ©ment mĂȘme d'une troisiĂšme maniĂšre. Puisque les gars de BroodMinder font les choses autrement :

Dans cette configuration, les capteurs sont installés aux positions 1 et 2, les points 3 et 4 reposent sur la poutre.
Dans ce cas, les capteurs ne supportent que la moitié du poids.
Oui, cette méthode a une précision inférieure, mais il est difficile d'imaginer que les abeilles construisent tous les cadres avec des « langues » de cire le long d'un seul cÎté de la ruche.
Donc, je propose de consolider les capteurs au point 5 â cela supprimera le besoin d'Ă©crans pour le systĂšme, et en utilisant des ruches lĂ©gĂšres, un seul capteur suffira.

En somme, deux types de modules sur HX711 ont Ă©tĂ© testĂ©s, deux types de capteurs, et deux variantes de leur connexion â avec un pont de Wheatstone complet (2 capteurs) et avec une partie, oĂč la seconde est complĂ©tĂ©e par des rĂ©sistances de 1k avec une tolĂ©rance de 0,1%.
Mais cette derniĂšre mĂ©thode est indĂ©sirable et mĂȘme dĂ©conseillĂ©e par les fabricants de capteurs, je vais donc dĂ©crire seulement la premiĂšre.
Ainsi, un seul rucher aura deux capteurs de contrainte et un module HX711, le schéma de cùblage est le suivant :

De la carte ADC jusqu'Ă l'Arduino, il y a 5 mĂštres de cĂąble tĂ©lĂ©phonique Ă 4 fils â .
En somme, nous laissons des « queues » de 8 cm sur les capteurs, nous dénudons la paire torsadée et tout soudons comme sur la photo ci-dessus.
Avant de commencer la partie menuiserie, mettez la cire / paraffine dans un récipient approprié pour fondre au bain-marie.
Maintenant, prenons notre poutre et la divisons en trois segments de 100 mm.
Ensuite, marquons la rainure longitudinale de 25 mm de large, d'une profondeur de 7 Ă 8 mm, Ă l'aide d'une scie et d'un ciseau Ă bois pour enlever l'excĂšs â cela devrait donner un profil en P.
La cire est-elle chaude ? â plongeons nos cartes ADC dans celle-ci â cela les protĂ©gera de l'humiditĂ© / de la condensation :

Nous plaçons le tout sur une base en bois (il est nécessaire de le traiter avec un agent antiseptique contre la pourriture) :

Et enfin, fixons les capteurs avec des vis auto-perceuses :

Il y avait aussi une option avec du ruban adhĂ©sif bleu, mais pour des raisons d'humanitĂ©, je ne la prĂ©sente pas đ.
Du cÎté de l'Arduino, nous faisons ceci :
Nous dénudons nos cùbles téléphoniques, torsadons les fils colorés ensemble, puis les étamons.
AprĂšs cela, nous soudeons aux contacts de la carte comme sur la photo :

VoilĂ , maintenant pour la vĂ©rification finale, disposons les capteurs par secteurs en cercle, au-dessus â un morceau de contreplaquĂ©, effaçons le contrĂŽleur (mettons la batterie avec un capuchon de stylo posĂ© sur la photodiode).
Le voyant LED sur l'Arduino doit commencer Ă clignoter et vous devez recevoir un SMS de test.
Ensuite, retirez le capuchon du photoélément et allez remplir une bouteille en plastique de 1,5 litre avec de l'eau.
Placez la bouteille sur du contreplaqué et si quelques minutes se sont écoulées depuis l'allumage, remettez le capuchon sur le photorésistor (en imitant un coucher de soleil).
Dans trois minutes, la LED sur l'Arduino s'allumera, et vous devriez recevoir un SMS avec des valeurs de poids d'environ 1 kg sur toutes les positions.
Félicitations ! Le systÚme est assemblé avec succÚs !
Si vous faites maintenant fonctionner le systÚme à nouveau, la premiÚre colonne de poids affichera des zéros.
Oui, dans des conditions réelles, il est préférable d'orienter le photorésistor verticalement vers le haut.
Voici un petit manuel d'utilisation :
- Installer les capteurs de pesage sous les parois arriÚre des ruches (placer une poutre / planche d'environ 30 mm d'épaisseur sous les parois avant)
- Obscurcir le photorĂ©sistor et mettre la batterie â la LED doit clignoter et vous devriez recevoir un SMS de test avec le texte « INITIAL BOOT OK »
- Placer le bloc central Ă la distance maximale des ruches, de maniĂšre Ă ce que les fils ne gĂȘnent pas lors du travail avec les abeilles.
Chaque soir, aprÚs le coucher du soleil, un SMS sera envoyé avec le changement de poids sur une période de 24 heures et depuis le lancement.
Lorsque la tension de la batterie atteint 3,5 V, le SMS se terminera par la phrase « !!! CHARGE BATTERY !!! »
Le temps de fonctionnement avec une batterie de 2600 mAh est d'environ un mois.
En cas de remplacement de la batterie, les changements de poids journaliers des ruches ne sont pas mémorisés.
UPD AVERTISSEMENT !
DANS DES CONDITIONS DE FAIBLE SIGNAUX, le module GSM augmente sa puissance, ce qui entraĂźne un REDĂMARRAGE DU SYSTĂME.
Cela a été constaté lors des tests « sur le terrain » (il n'est pas clair pourquoi les utilisateurs des boucliers GSM ne signalent pas de tels problÚmes).
Je prépare actuellement un nouveau schéma :

AprÚs vérification réussie, cette publication sera mise à jour.
Electrochauffeur André.
Source : habr.com
