SMS monitoring ng bigat ng tatlong pantal para sa $30

SMS monitoring ng bigat ng tatlong pantal para sa $30

Hindi, hindi ito isang komersyal na alok, ito ang halaga ng mga bahagi ng system na maaari mong tipunin pagkatapos basahin ang artikulo.

Isang maliit na background:

Ilang oras na ang nakalipas nagpasya akong kumuha ng mga bubuyog, at lumitaw sila... sa buong panahon, ngunit hindi umalis sa kubo ng taglamig.
At ito sa kabila ng katotohanan na tila ginagawa niya nang tama ang lahat - komplementaryong pagpapakain sa taglagas, pagkakabukod bago ang malamig na panahon.
Ang pugad ay isang klasikong kahoy na "Dadan" na sistema na may 10 frame na gawa sa 40 mm na tabla.
Ngunit sa taglamig na iyon, dahil sa mga pagbabago sa temperatura, kahit na ang mga nakaranasang beekeepers ay nawala nang higit kaysa karaniwan.

Ito ay kung paano nabuo ang ideya ng isang sistema para sa pagsubaybay sa kalagayan ng pugad.
Pagkatapos mag-publish ng ilang mga artikulo sa Habr at makipag-usap sa forum ng mga beekeepers, nagpasya akong pumunta mula sa simple hanggang sa kumplikado.
Ang timbang ay ang tanging hindi mapag-aalinlanganang parameter, ngunit bilang isang panuntunan, ang mga umiiral na sistema ay sinusubaybayan lamang ang isang "reference" na pugad.
Kung may mali dito (halimbawa, ang pag-alis ng isang kuyog, sakit sa pukyutan), kung gayon ang mga tagapagpahiwatig ay nagiging hindi nauugnay.

Samakatuwid, napagpasyahan na subaybayan ang pagbabago sa bigat ng tatlong pantal nang sabay-sabay gamit ang isang microcontroller, at magdagdag ng iba pang "goodies" sa ibang pagkakataon.
Ang resulta ay isang autonomous system na may operating time na halos isang buwan sa isang charge ng 18650 na baterya at pagpapadala ng mga istatistika isang beses sa isang araw.
Sinubukan kong gawing simple ang disenyo hangga't maaari upang ito ay maulit kahit na walang mga diagram, mula lamang sa mga litrato.

Ang operating logic ay ang mga sumusunod: sa unang pagsisimula/pag-reset, ang mga pagbabasa ng mga sensor na naka-install sa ilalim ng mga pantal ay naka-imbak sa EEPROM.
Pagkatapos, araw-araw, pagkatapos ng paglubog ng araw, ang system ay "nagising", binabasa ang mga pagbabasa at nagpapadala ng isang SMS na may pagbabago sa timbang para sa araw at mula sa sandaling ito ay naka-on.
Bilang karagdagan, ang halaga ng boltahe ng baterya ay ipinadala, at kapag bumaba ito sa 3.5V, isang babala ang ibinibigay tungkol sa pangangailangan na singilin, dahil sa ibaba ng 3.4V ang module ng komunikasyon ay hindi naka-on, at ang mga pagbabasa ng timbang ay "lumulutang" na.

"Naaalala mo ba kung paano nagsimula ang lahat. Ang lahat ay sa unang pagkakataon at muli.”
SMS monitoring ng bigat ng tatlong pantal para sa $30
Oo, ito mismo ang set ng hardware na orihinal, bagama't ang mga strain gauge at wire lang ang nakaligtas hanggang sa huling bersyon, ngunit una sa lahat.
Sa katunayan, hindi mo kailangan ng cable coil, ito ay naging kapareho ng presyo ng isang 30m na ​​tuwid.

Kung hindi ka natatakot na i-dismantling ang 3 SMD LEDs at kalahating daang puntos ng conventional (output) na paghihinang, pagkatapos ay pumunta!

Kaya, kakailanganin natin ang sumusunod na hanay ng mga kagamitan/materyal:

  1. Arduino Pro Mini 3V
    Dapat mong bigyang pansin ang linear converter microcircuit - dapat itong eksaktong 3.3V - sa chip na nagmamarka ng KB 33/LB 33/DE A10 - nagkamali ang aking Chinese, at ang buong batch
    Ang mga board sa tindahan ay may 5-volt regulators at 16MHz crystals.
  2. USB-Ttl sa isang CH340 chip - maaari ka ring gumamit ng isang 5-volt, ngunit pagkatapos ay habang nag-flash ng microcontroller, ang Arduino ay kailangang idiskonekta mula sa GSM module upang hindi masunog ang huli.
    Ang mga board batay sa PL2303 chip ay hindi gumagana sa ilalim ng Windows 10.
  3. GSM communication module Goouu Tech IOT GA-6-B o AI-THINKER A-6 Mini.
    Bakit ka tumigil dyan? Ang Neoway M590 - isang taga-disenyo na nangangailangan ng magkakahiwalay na sayaw na may mga tamburin, GSM SIM800L - ay hindi nagustuhan ang hindi pamantayang 2.8V na antas ng lohika, na nangangailangan ng koordinasyon kahit na may tatlong boltahe na Arduino.
    Bilang karagdagan, ang solusyon mula sa AiThinker ay may kaunting pagkonsumo ng enerhiya (wala akong nakitang kasalukuyang mas mataas kaysa sa 100mA kapag nagpapadala ng SMS).
  4. GSM GPRS 3DBI antenna (sa larawan sa itaas - isang hugis-parihaba na scarf na may "buntot", sa 9 na oras)
  5. Starter package ng isang operator na may magandang coverage sa lokasyon ng iyong apiary.
    Oo, kailangan munang i-activate ang package sa isang regular na telepono, I-disable ang PIN REQUEST sa pagpasok, at i-top up ang iyong account.
    Ngayon ay maraming mga pagpipilian na may mga pangalan sa istilo ng "Sensor", "IoT" - mayroon silang bahagyang mas mababang bayad sa subscription.
  6. dupont wire 20cm female-female - 3 pcs. (upang ikonekta ang Arduino sa USB-TTL)
  7. 3 pcs. HX711 - ADC para sa mga kaliskis
  8. 6 na load cell para sa mga timbang na hanggang 50kg
  9. 15 metro ng 4-core na cable ng telepono - para sa pagkonekta ng mga weight module sa ARDUINO.
  10. Photoresistor GL5528 (ito ang mahalaga, na may madilim na pagtutol ng 1 MΩ at isang magaan na pagtutol ng 10-20 kΩ) at dalawang ordinaryong 20 kΩ resistors
  11. Isang piraso ng double-sided na "makapal" na tape na 18x18mm - para sa paglakip ng Arduino sa module ng komunikasyon.
  12. Ang 18650 na may hawak ng baterya at, sa katunayan, ang baterya mismo ay ~2600mAh.
  13. Isang maliit na wax o paraffin (candle-tablet aroma lamp) - para sa moisture protection HX711
  14. Isang piraso ng wooden beam na 25x50x300mm para sa base ng mga strain gauge.
  15. Isang dosenang self-tapping screws na may 4,2x19 mm press washer para sa pagkakabit ng mga sensor sa base.

Ang baterya ay maaaring kunin mula sa disassembly ng mga laptop - ito ay ilang beses na mas mura kaysa sa isang bago, at ang kapasidad ay magiging mas malaki kaysa sa Chinese UltraFire - Nakakuha ako ng 1500 kumpara sa 450 (ito ay 6800 para sa sunog 😉

Bilang karagdagan, kakailanganin mo ng matatag na mga kamay, isang EPSN-25 na panghinang na bakal, rosin at POS-60 na panghinang.

SMS monitoring ng bigat ng tatlong pantal para sa $30

Kahit na 5 taon na ang nakalilipas gumamit ako ng isang Sobyet na panghinang na bakal na may dulo ng tanso (ang mga istasyon ng paghihinang ay hindi gumana para sa akin - kinuha ko ito para sa isang test drive at natapos ang circuit na may isang EPSN).
Ngunit pagkatapos ng kabiguan nito at ilang napakalaking pekeng Tsino, ang huli ay tinawag na Sparta - isang bagay na kasing lubha ng pangalan nito, tumigil.
sa isang produkto na may thermostat.

Kaya tara na!

SMS monitoring ng bigat ng tatlong pantal para sa $30

Upang magsimula, tinanggal namin ang dalawang LED mula sa GSM module (ang lugar kung saan sila matatagpuan ay nakabilog sa isang orange na hugis-itlog)
Ipinasok namin ang SIM card na may mga contact pad sa naka-print na circuit board, ang beveled na sulok sa larawan ay ipinahiwatig ng isang arrow.

SMS monitoring ng bigat ng tatlong pantal para sa $30

Pagkatapos ay nagsasagawa kami ng isang katulad na pamamaraan sa LED sa Arduino board (oval sa kaliwa ng square chip),
Ihinang ang suklay sa apat na contact (1),
Kumuha kami ng dalawang 20k resistors, i-twist ang mga lead sa isang gilid, ihinang ang twist sa butas ng pin A5, ang natitirang mga lead ay nasa RAW at GND ng arduino (2),
Pinaikli namin ang mga binti ng photoresistor sa 10mm at ihinang ito sa GND at D2 pin ng board (3).

Ngayon ay oras na para sa asul na electrical tape ng double-sided tape - idinikit namin ito sa may hawak ng SIM card ng module ng komunikasyon, at sa itaas - ang Arduino - nakaharap sa amin ang pulang (pilak) na buton at matatagpuan sa itaas ng SIM card.

Ihinang namin ang power supply: plus mula sa communication module capacitor (4) hanggang sa RAW arduino pin.
Ang katotohanan ay ang module ng komunikasyon mismo ay nangangailangan ng 3.4-4.2V para sa power supply nito, at ang PWR contact nito ay konektado sa isang step-down converter, kaya upang gumana mula sa li-ion, ang boltahe ay dapat ibigay sa pamamagitan ng pag-bypass sa bahaging ito ng circuit.

Sa Arduino, sa kabaligtaran, nagbibigay kami ng kapangyarihan sa pamamagitan ng isang linear converter - sa mababang kasalukuyang pagkonsumo, ang drop-out na pagbagsak ng boltahe ay 0.1V.
Ngunit sa pamamagitan ng pagbibigay ng isang nagpapatatag na boltahe sa mga module ng HX711, inaalis namin ang pangangailangan na baguhin ang mga ito sa isang mas mababang boltahe (at sa parehong oras mula sa pagtaas ng ingay bilang resulta ng operasyong ito).

Susunod ay nagso-solder kami ng mga jumper (5) sa pagitan ng mga pin PWR-A1, URX-D4 at UTX-D5, ground GND-G (6) at sa wakas ay pinalakas mula sa 18650 na may hawak ng baterya (7), ikonekta ang antenna (8).
Ngayon ay kumuha kami ng USB-TTL converter at ikinonekta ang RXD-TXD at TXD-RXD, GND-GND na mga contact na may mga Dupont wire sa ARDUINO (suklay 1):

SMS monitoring ng bigat ng tatlong pantal para sa $30

Ipinapakita ng larawan sa itaas ang unang bersyon (ng tatlo) ng system, na ginamit para sa pag-debug.

Ngunit ngayon ay magpapahinga muna tayo sandali sa paghihinang at magpatuloy sa bahagi ng software.
Ilalarawan ko ang pagkakasunud-sunod ng mga aksyon para sa Windows:
Una, kailangan mong i-download at i-install/i-unpack ang program Arduino IDE — ang kasalukuyang bersyon ay 1.8.9, ngunit gumagamit ako ng 1.6.4

Para sa pagiging simple, i-unpack namin ang archive sa folder C: arduino - "your_version_number", sa loob ay magkakaroon kami ng mga folder /dist, driver, mga halimbawa, hardware, java, lib, library, reference, mga tool, pati na rin ang arduino executable file (Bukod sa iba pa).

Ngayon kailangan namin ng isang silid-aklatan upang gumana sa ADC HX711 — berdeng button na “clone or download” — i-download ang ZIP.
Ang mga nilalaman (folder HX711-master) ay inilalagay sa direktoryo na C:arduino-“your_version_number” na mga aklatan

At syempre ang driver para USB-TTL mula sa parehong github - mula sa hindi naka-pack na archive, ang pag-install ay inilunsad lamang gamit ang SETUP file.

Ok, ilunsad at i-configure natin ang program C:arduino-“your_version_number”arduino

SMS monitoring ng bigat ng tatlong pantal para sa $30

Pumunta sa item na "Tools" - piliin ang board na "Arduino Pro o Pro Mini", Atmega 328 3.3V 8 MHz processor, port - isang numero maliban sa system COM1 (lumalabas ito pagkatapos i-install ang driver ng CH340 na may USB-TTL adapter konektado)

Ok, kopyahin ang sumusunod na sketch (program) at i-paste ito sa Arduino IDE window

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);

  }

}

Sa unang linya, sa mga panipi, char phone_no[]=”+123456789012″; — sa halip na 123456789012, ilagay ang iyong numero ng telepono kasama ang country code kung saan ipapadala ang SMS.

Ngayon pinindot namin ang check button (sa itaas ng numero uno sa screenshot sa itaas) - kung nasa ibaba (sa ilalim ng numero tatlo sa screen) "Kumpleto na ang compilation" - pagkatapos ay maaari naming i-flash ang microcontroller.

Kaya, ang USB-TTL ay konektado sa ARDUINO at sa computer, ilagay ang naka-charge na baterya sa lalagyan (kadalasan ang LED sa bagong Arduino ay nagsisimulang kumukurap nang isang beses bawat segundo).

Ngayon para sa firmware - nagsasanay kami upang pindutin ang pulang (pilak) na pindutan ng microcontroller - ito ay kailangang gawin nang mahigpit sa isang tiyak na sandali!!!
kumain? I-click ang pindutang "Mag-load" (sa itaas ng dalawa sa screenshot), at maingat na tingnan ang linya sa ibaba ng interface (sa ilalim ng tatlo sa screenshot).
Sa sandaling ang inskripsyon ng "compilation" ay nagbago sa "pag-download", pindutin ang pulang pindutan (i-reset) - kung ang lahat ay ok, ang mga ilaw sa USB-TTL adapter ay kumikislap nang masaya, at sa ilalim ng interface ang inskripsyon na "Na-upload ”

Ngayon, habang hinihintay namin ang pagsubok na SMS na dumating sa telepono, sasabihin ko sa iyo kung paano gumagana ang programa:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Ipinapakita ng larawan ang pangalawang bersyon ng debugging stand.

Kapag naka-on sa unang pagkakataon, sinusuri ng system ang mga byte na numero 500 at 501 ng EEPROM; kung pantay ang mga ito, hindi naitala ang data ng pagkakalibrate, at ang algorithm ay nagpapatuloy sa seksyon ng pag-setup.
Ang parehong bagay ay mangyayari kung, kapag naka-on, ang photoresistor ay may kulay (sa pamamagitan ng isang takip ng panulat) - ang reset mode ay isinaaktibo.

Ang mga load cell ay dapat na naka-install sa ilalim ng mga pantal, dahil inaayos lang namin ang paunang antas ng zero at pagkatapos ay sukatin ang pagbabago sa timbang (ngayon ay darating ang mga zero, dahil wala pa kaming nakakonekta).
Kasabay nito, ang built-in na LED ng pin 13 ay magsisimulang kumurap sa Arduino.
Kung hindi maganap ang pag-reset, ang LED ay iilaw sa loob ng 12 segundo.
Pagkatapos nito, ang isang pagsubok na SMS ay ipinadala na may mensaheng "INITIAL BOOT OK" at ang boltahe ng baterya.
Ang module ng komunikasyon ay naka-off, at pagkatapos ng 3 minuto inilalagay ng Arduino board ang HX711 ADC boards sa sleep mode at nakatulog mismo.
Ang pagkaantala na ito ay ginawa upang hindi makakuha ng interference mula sa isang gumaganang GSM module (pagkatapos i-off, ito ay "beans" nang ilang oras).

Susunod, mayroon kaming photo sensor interrupt sa pangalawang pin (naka-enable ang plus function).
Sa kasong ito, pagkatapos ng pag-trigger, ang estado ng photoresistor ay sinuri para sa isa pang 3 minuto - upang maalis ang paulit-ulit/maling pag-trigger.
Ang karaniwan ay na walang anumang pagsasaayos ang system ay naisaaktibo 10 minuto pagkatapos ng astronomical na paglubog ng araw sa maulap na panahon at 20 sa maaliwalas na panahon.
Oo, upang ang system ay hindi mag-reset sa tuwing ito ay naka-on, hindi bababa sa unang HX711 module (pins DT-D10, SCK-A0) ay dapat na konektado

Pagkatapos ay kinuha ang mga pagbabasa ng mga strain gauge, ang pagbabago sa timbang mula sa nakaraang operasyon ay kinakalkula (ang unang numero sa linya pagkatapos ng Hive) at mula sa unang pag-activate, ang boltahe ng baterya ay nasuri at ang impormasyong ito ay ipinadala bilang isang SMS:

SMS monitoring ng bigat ng tatlong pantal para sa $30

By the way, natanggap mo ba ang SMS? Binabati kita! Nasa kalahati na tayo! Maaaring tanggalin ang baterya mula sa lalagyan sa ngayon; hindi na namin kakailanganin ang computer.

Sa pamamagitan ng paraan, ang mission control center ay naging napaka-compact na maaari itong ilagay sa isang garapon ng mayonesa; sa aking kaso, ang isang translucent na kahon na may sukat na 30x60x100mm (mula sa mga business card) ay ganap na magkasya.

Oo, ang sistema ng pagtulog ay kumokonsumo ng ~2.3mA - 90% dahil sa module ng komunikasyon - hindi ito ganap na naka-off, ngunit napupunta sa standby mode.

SMS monitoring ng bigat ng tatlong pantal para sa $30

Simulan natin ang paggawa ng mga sensor; una, hawakan natin ang layout ng mga sensor:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Ito ay isang plano ng hive - top view.

Karaniwan, 4 na sensor ang naka-install sa mga sulok (1,2,3,4)

Iba-iba ang ating susukatin. O sa halip, kahit sa ikatlong paraan. Dahil iba ang ginagawa ng mga lalaki mula sa BroodMinder:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Sa disenyo na ito, ang mga sensor ay naka-install sa mga posisyon 1 at 2, ang mga punto 3,4 at XNUMX ay nakasalalay sa sinag.
Pagkatapos ang mga sensor ay nagkakahalaga lamang ng kalahati ng timbang.
Oo, ang pamamaraang ito ay hindi gaanong katumpakan, ngunit mahirap pa ring isipin na ang mga bubuyog ay gagawa ng lahat ng mga frame na may "mga dila" ng mga pulot-pukyutan sa isang dingding ng pugad.

Kaya, ipinapanukala kong pangkalahatang bawasan ang mga sensor sa punto 5 - pagkatapos ay hindi na kailangang protektahan ang system, at kapag gumagamit ng mga magaan na pantal, ito ay ganap na kinakailangan upang gawin sa isang sensor.

SMS monitoring ng bigat ng tatlong pantal para sa $30

Sa pangkalahatan, sinubukan namin ang dalawang uri ng mga module sa HX711, dalawang uri ng sensor, at dalawang pagpipilian para sa pagkonekta sa kanila - na may isang buong tulay ng Wheatstone (2 sensor) at may kalahati, kapag ang pangalawang bahagi ay pupunan ng 1k resistors na may isang tolerance ng 0.1%.
Ngunit ang huling paraan ay hindi kanais-nais at hindi inirerekomenda kahit na ng mga tagagawa ng sensor, kaya ilalarawan ko lamang ang una.

Kaya, para sa isang pugad ay mag-i-install kami ng dalawang strain gauge at isang HX711 module, ang wiring diagram ay ang mga sumusunod:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Mayroong 5 metrong 4-wire na cable ng telepono mula sa ADC board hanggang sa Arduino - naaalala namin kung paano hindi gusto ng mga bubuyog ang mga GSM device sa pugad.

Sa pangkalahatan, iniiwan namin ang 8cm na "mga buntot" sa mga sensor, hubarin ang twisted pair at ihinang ang lahat tulad ng sa larawan sa itaas.

Bago mo simulan ang bahagi ng karpintero, ilagay ang wax/paraffin sa isang angkop na lalagyan upang matunaw sa isang paliguan ng tubig.

Ngayon ay kinuha namin ang aming mga troso at hatiin ito sa tatlong mga seksyon ng 100mm bawat isa

Susunod, minarkahan namin ang isang longitudinal groove na 25 mm ang lapad, 7-8 mm ang lalim, alisin ang labis gamit ang isang hacksaw at pait - isang profile na hugis-U ay dapat lumabas.

Napapainit ba ang wax? — nilulubog namin ang aming mga ADC board doon — poprotektahan sila nito mula sa moisture/fog:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Inilalagay namin ang lahat sa isang kahoy na base (dapat itong tratuhin ng isang antiseptiko upang maiwasan ang pagkabulok):

SMS monitoring ng bigat ng tatlong pantal para sa $30

At sa wakas, inaayos namin ang mga sensor gamit ang mga self-tapping screws:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Nagkaroon din ng isang opsyon na may asul na electrical tape, ngunit para sa mga kadahilanan ng sangkatauhan ay hindi ko ito ipinakita 😉

Mula sa bahagi ng Arduino ginagawa namin ang sumusunod:

Hinubad namin ang aming mga kable ng telepono, pinaikot ang mga may kulay na mga wire nang magkakasama, at itinakda ang mga ito.

Pagkatapos nito, maghinang sa mga contact sa board tulad ng sa larawan:

SMS monitoring ng bigat ng tatlong pantal para sa $30

Iyon lang, ngayon para sa pangwakas na tseke, inilalagay namin ang mga sensor sa mga sektor ng bilog, isang piraso ng playwud sa itaas, i-reset ang controller (naglalagay kami ng baterya na may takip ng panulat sa photodiode).

Kasabay nito, ang LED sa Arduino ay dapat kumurap at isang pagsubok na SMS ay dapat dumating.

Susunod, alisin ang takip mula sa photocell at punuin ang tubig sa isang 1.5 litro na bote ng plastik.
Inilagay namin ang bote sa playwud at kung ilang minuto na ang lumipas mula nang ito ay naka-on, ibinalik namin ang takip sa photoresistor (ginagaya ang paglubog ng araw).

Pagkatapos ng tatlong minuto, sisindi ang LED sa Arduino, at dapat kang makatanggap ng SMS na may mga halaga ng timbang na humigit-kumulang 1 kg sa lahat ng posisyon.

Binabati kita! Ang sistema ay matagumpay na na-assemble!

Kung pipilitin natin ngayon ang system na gumana muli, ang unang column ng timbang ay magkakaroon ng mga zero.

Oo, sa totoong mga kondisyon ipinapayong i-orient ang photoresistor patayo pataas.

Ngayon ay magbibigay ako ng maikling user manual:

  1. Maglagay ng mga strain gauge sa ilalim ng mga dingding sa likuran ng mga pantal (maglagay ng beam/board ~30mm ang kapal sa ilalim ng mga nasa harap)
  2. I-shade ang photoresistor at i-install ang baterya - dapat kumurap ang LED at dapat kang makatanggap ng test SMS na may text na "INITIAL BOOT OK"
  3. Ilagay ang gitnang yunit sa pinakamataas na distansya mula sa mga pantal at upang ang mga wire ay hindi makagambala kapag nagtatrabaho sa mga bubuyog.
    Tuwing gabi, pagkatapos ng paglubog ng araw, isang SMS ang ipapadala kasama ng iyong mga pagbabago sa timbang para sa araw at mula sa sandali ng paglulunsad.
    Kapag umabot sa 3.5V ang boltahe ng baterya, magtatapos ang SMS sa linyang “!!! CHARGE BATTERY!!!"
    Ang oras ng pagpapatakbo sa isang 2600mAh na baterya ay halos isang buwan.
    Kung ang baterya ay papalitan, ang araw-araw na pagbabago sa bigat ng mga pantal ay hindi naaalala.

Ano ang susunod?

  1. Alamin kung paano ilagay ang lahat ng ito sa isang proyekto para sa github
  2. Magsimula ng 3 pamilya ng bubuyog sa mga pantal ng Palivoda system (o mga may sungay sa mga tao)
  3. Magdagdag ng "buns" - pagsukat ng halumigmig, temperatura, at higit sa lahat - pag-aaral ng paghiging ng mga bubuyog.

Iyon lang sa ngayon, taos-puso sa iyo, electric beekeeper Andrey

Pinagmulan: www.habr.com

Magdagdag ng komento