Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Hapana, hii sio toleo la kibiashara, hii ni gharama ya vipengele vya mfumo ambavyo unaweza kukusanyika baada ya kusoma makala.

Mandharinyuma kidogo:

Wakati fulani uliopita niliamua kupata nyuki, na walionekana ... kwa msimu mzima, lakini hawakuondoka kwenye kibanda cha baridi.
Na hii licha ya ukweli kwamba alionekana kufanya kila kitu kwa usahihi - kulisha nyongeza ya vuli, insulation kabla ya hali ya hewa ya baridi.
Mzinga ulikuwa mfumo wa kawaida wa mbao wa "Dadan" na fremu 10 zilizotengenezwa kwa bodi 40 mm.
Lakini msimu huo wa baridi, kwa sababu ya mabadiliko ya joto, hata wafugaji nyuki wenye uzoefu walipoteza zaidi kuliko kawaida.

Hivi ndivyo wazo la mfumo wa ufuatiliaji wa hali ya mzinga ulikuja.
Baada ya kuchapisha nakala kadhaa juu ya Habr na kuwasiliana kwenye kongamano la wafugaji nyuki, niliamua kutoka rahisi hadi ngumu.
Uzito ndio paramu pekee isiyoweza kuepukika, lakini kama sheria, mifumo iliyopo inafuatilia mzinga mmoja tu wa "rejeleo".
Ikiwa kitu kinakwenda vibaya (kwa mfano, kuondoka kwa pumba, ugonjwa wa nyuki), basi viashiria vinakuwa visivyofaa.

Kwa hiyo, iliamuliwa kufuatilia mabadiliko katika uzito wa mizinga mitatu mara moja kwa kutumia microcontroller moja, na kuongeza "goodies" nyingine baadaye.
Matokeo yake yalikuwa mfumo wa uhuru na muda wa kufanya kazi wa karibu mwezi kwa malipo moja ya betri ya 18650 na kutuma takwimu mara moja kwa siku.
Nilijaribu kurahisisha muundo iwezekanavyo ili iweze kurudiwa hata bila michoro, kutoka kwa picha tu.

Mantiki ya operesheni ni kama ifuatavyo: wakati wa kuanza / kuweka upya kwanza, usomaji wa sensorer zilizowekwa chini ya mizinga huhifadhiwa kwenye EEPROM.
Kisha, kila siku, baada ya jua kutua, mfumo "huamka", unasoma usomaji na kutuma SMS na mabadiliko ya uzito kwa siku na tangu wakati umewashwa.
Kwa kuongeza, thamani ya voltage ya betri hupitishwa, na inaposhuka hadi 3.5V, onyo hutolewa kuhusu haja ya malipo, kwa sababu chini ya 3.4V moduli ya mawasiliano haina kugeuka, na usomaji wa uzito tayari "huelea".

"Unakumbuka jinsi yote yalianza. Kila kitu kilikuwa kwa mara ya kwanza na tena."
Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30
Ndio, hii ndio seti ya vifaa ambavyo hapo awali vilikuwa, ingawa viwango vya shida tu na waya zilinusurika hadi toleo la mwisho, lakini mambo ya kwanza kwanza.
Kwa kweli, huna haja ya coil ya cable, iligeuka tu kuwa bei sawa na 30m moja kwa moja.

Ikiwa hauogopi kuvunja LED za SMD 3 na alama za nusu mia za soldering ya kawaida (pato), kisha uende!

Kwa hivyo, tutahitaji seti ifuatayo ya vifaa / nyenzo:

  1. Arduino Pro Mini 3V
    Unapaswa kuzingatia microcircuit ya kibadilishaji laini - inapaswa kuwa 3.3V haswa - kwenye chip inayoashiria KB 33/LB 33/DE A10 - Wachina wangu walipata kitu kibaya, na kundi zima.
    Bodi katika duka ziligeuka kuwa na vidhibiti 5-volt na fuwele 16MHz.
  2. USB-Ttl kwenye chip CH340 - unaweza hata kutumia 5-volt, lakini wakati wa kuangaza microcontroller, Arduino itahitaji kukatwa kutoka kwa moduli ya GSM ili usichome mwisho.
    Bodi kulingana na chip ya PL2303 haifanyi kazi chini ya Windows 10.
  3. Moduli ya mawasiliano ya GSM Goouu Tech IOT GA-6-B au AI-THINKER A-6 Mini.
    Kwa nini uliishia hapo? Neoway M590 - mbuni anayehitaji densi tofauti na matari, GSM SIM800L - hakupenda mantiki isiyo ya kawaida ya 2.8V, ambayo inahitaji uratibu hata na Arduino ya volt tatu.
    Kwa kuongeza, suluhisho kutoka kwa AiThinker ina matumizi madogo ya nishati (sijaona sasa ya juu kuliko 100mA wakati wa kutuma SMS).
  4. Antenna ya GSM GPRS 3DBI (katika picha hapo juu - kitambaa cha mstatili na "mkia", saa 9:XNUMX)
  5. Kifurushi cha kuanzia cha opereta kilicho na chanjo nzuri kwenye eneo la nyumba yako ya wanyama.
    Ndiyo, kifurushi lazima kwanza kianzishwe katika simu ya kawaida, ZIMA OMBI LA PIN unapoingia, na ujaze akaunti yako.
    Sasa kuna chaguzi nyingi zilizo na majina katika mtindo wa "Sensor", "IoT" - wana ada ya chini kidogo ya usajili.
  6. dupont waya 20cm kike-kike - 3 pcs. (kuunganisha Arduino kwa USB-TTL)
  7. 3 pcs. HX711 - ADC kwa mizani
  8. Seli 6 za mzigo kwa uzani hadi 50kg
  9. Mita 15 za cable 4-msingi ya simu - kwa kuunganisha moduli za uzito kwa ARDUINO.
  10. Photoresistor GL5528 (hii ndiyo muhimu, yenye upinzani wa giza wa 1 MΞ© na upinzani wa mwanga wa 10-20 kΞ©) na vipinga viwili vya kawaida vya 20 kΞ©.
  11. Kipande cha mkanda "nene" wa pande mbili 18x18mm - kwa kuunganisha Arduino kwenye moduli ya mawasiliano.
  12. Kishikilia betri cha 18650 na, kwa kweli, betri yenyewe ni ~ 2600mAh.
  13. Nta kidogo au mafuta ya taa (taa ya harufu ya mshumaa-kibao) - kwa ulinzi wa unyevu HX711
  14. Kipande cha boriti ya mbao 25x50x300mm kwa msingi wa vipimo vya matatizo.
  15. skrubu kadhaa za kujigonga zenye mashine ya kuosha vyombo vya habari ya mm 4,2x19 ili kuambatisha vitambuzi kwenye msingi.

Betri inaweza kuchukuliwa kutoka kwa disassembly ya laptops - ni mara kadhaa nafuu kuliko mpya, na uwezo utakuwa mkubwa zaidi kuliko ile ya UltraFire ya Kichina - nilipata 1500 dhidi ya 450 (hii ni 6800 kwa moto πŸ˜‰

Kwa kuongeza, utahitaji mikono ya kutosha, chuma cha soldering cha EPSN-25, rosin na solder POS-60.

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Hata miaka 5 iliyopita nilitumia chuma cha Soviet soldering na ncha ya shaba (vituo vya soldering havikufanya kazi kwangu - nilichukua kwa gari la mtihani na kumaliza mzunguko na EPSN).
Lakini baada ya kushindwa kwake na bandia kadhaa za kutisha za Wachina, mwisho huo uliitwa Sparta - jambo kali kama jina lake, lilisimamishwa.
kwenye bidhaa iliyo na thermostat.

Basi twende!

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Kuanza, tunaondoa taa mbili za LED kutoka kwa moduli ya GSM (mahali zilipowekwa zimezungukwa kwenye mviringo wa machungwa)
Tunaingiza SIM kadi na usafi wa mawasiliano kwenye bodi ya mzunguko iliyochapishwa, kona iliyopigwa kwenye picha inaonyeshwa na mshale.

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Kisha tunafanya utaratibu kama huo na LED kwenye bodi ya Arduino (mviringo upande wa kushoto wa chip ya mraba),
Solder sega kwa viunga vinne (1),
Tunachukua vipinga viwili vya 20k, pindua miongozo kwa upande mmoja, solder twist ndani ya shimo la pini A5, miongozo iliyobaki iko kwenye RAW na GND ya arduino (2),
Tunafupisha miguu ya photoresistor hadi 10mm na kuiuza kwa GND na pini za D2 za bodi (3).

Sasa ni wakati wa mkanda wa umeme wa bluu wa mkanda wa pande mbili - tunaibandika kwenye kishikilia SIM kadi ya moduli ya mawasiliano, na juu - Arduino - kifungo nyekundu (fedha) kinatukabili na iko juu ya SIM kadi.

Tunauza usambazaji wa umeme: pamoja na kutoka kwa capacitor ya moduli ya mawasiliano (4) hadi pini ya RAW arduino.
Ukweli ni kwamba moduli ya mawasiliano yenyewe inahitaji 3.4-4.2V kwa ugavi wake wa nguvu, na mawasiliano yake ya PWR yanaunganishwa na kibadilishaji cha hatua ya chini, ili kufanya kazi kutoka kwa li-ion, voltage lazima itolewe kwa kupita sehemu hii ya mzunguko.

Katika Arduino, kinyume chake, tunatoa nguvu kwa njia ya kubadilisha fedha - kwa matumizi ya chini ya sasa, kushuka kwa voltage ya kuacha ni 0.1V.
Lakini kwa kusambaza voltage iliyoimarishwa kwa moduli za HX711, tunaondoa hitaji la kuzibadilisha kwa voltage ya chini (na wakati huo huo kutoka kwa kelele inayoongezeka kama matokeo ya operesheni hii).

Kisha tunauza viruka (5) kati ya pini PWR-A1, URX-D4 na UTX-D5, GND-G (6) ya ardhini na hatimaye nguvu kutoka kwa kishikilia betri cha 18650 (7), kuunganisha antena (8).
Sasa tunachukua kigeuzi cha USB-TTL na kuunganisha anwani za RXD-TXD na TXD-RXD, GND-GND na waya za Dupont kwa ARDUINO (comb 1):

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Picha hapo juu inaonyesha toleo la kwanza (la tatu) la mfumo, ambalo lilitumika kwa utatuzi.

Lakini sasa tutachukua mapumziko kutoka kwa chuma cha soldering kwa muda na kuendelea na sehemu ya programu.
Nitaelezea mlolongo wa vitendo kwa Windows:
Kwanza, unahitaji kupakua na kusakinisha/kufungua programu Kitambulisho cha Arduino - toleo la sasa ni 1.8.9, lakini ninatumia 1.6.4

Kwa unyenyekevu, tunafungua kumbukumbu kwenye folda C: arduino - "your_version_number", ndani tutakuwa na folda / dist, madereva, mifano, vifaa, java, lib, maktaba, kumbukumbu, zana, na faili inayoweza kutekelezwa ya arduino. (miongoni mwa wengine).

Sasa tunahitaji maktaba ya kufanya kazi na ADC HX711 β€” kitufe cha kijani β€œlinganisha au pakua” β€” pakua ZIP.
Yaliyomo (folda HX711-master) yamewekwa kwenye saraka C:arduino-maktaba za "your_version_number"

Na bila shaka dereva kwa USB-TTL kutoka kwa github sawa - kutoka kwa kumbukumbu isiyofunguliwa, usakinishaji unazinduliwa tu na faili ya SETUP.

Sawa, wacha tuzindue na tusanidi programu C:arduino-"nambari_ya_ya_toleo"arduino

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Nenda kwenye kipengee cha "Zana" - chagua bodi ya "Arduino Pro au Pro Mini", processor ya Atmega 328 3.3V 8 MHz, bandari - nambari nyingine isipokuwa mfumo COM1 (inaonekana baada ya kusakinisha kiendesha CH340 na adapta ya USB-TTL. kushikamana)

Sawa, nakili mchoro ufuatao (mpango) na ubandike kwenye dirisha la 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);

  }

}

Katika mstari wa kwanza, katika nukuu, char phone_no[]=”+123456789012β€³; β€” badala ya 123456789012, weka nambari yako ya simu pamoja na msimbo wa nchi ambayo SMS itatumwa.

Sasa tunabonyeza kitufe cha kuangalia (juu ya nambari moja kwenye skrini hapo juu) - ikiwa chini (chini ya nambari tatu kwenye skrini) "Mkusanyiko umekamilika" - basi tunaweza kuwasha kidhibiti kidogo.

Kwa hivyo, USB-TTL imeunganishwa na ARDUINO na kompyuta, weka betri iliyoshtakiwa kwenye kishikilia (kawaida LED kwenye Arduino mpya huanza kupepesa mara moja kwa sekunde).

Sasa kwa firmware - tunafundisha kushinikiza kifungo nyekundu (fedha) cha microcontroller - hii itahitaji kufanywa madhubuti kwa wakati fulani !!!
Kula? Bofya kitufe cha "Mzigo" (juu ya hizo mbili kwenye skrini), na uangalie kwa makini mstari ulio chini ya interface (chini ya tatu kwenye skrini).
Mara tu maandishi ya "mkusanyiko" yanabadilika kuwa "kupakua", bonyeza kitufe chekundu (weka upya) - ikiwa kila kitu kiko sawa, taa kwenye adapta ya USB-TTL itawaka kwa furaha, na chini ya kiolesura maandishi "Imepakiwa. ”

Sasa, tunaposubiri SMS ya majaribio ifike kwenye simu, nitakuambia jinsi programu inavyofanya kazi:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Picha inaonyesha toleo la pili la msimamo wa kurekebisha.

Inapowashwa kwa mara ya kwanza, mfumo hukagua baiti nambari 500 na 501 za EEPROM; ikiwa ni sawa, basi data ya urekebishaji haijarekodiwa, na algorithm inaendelea hadi sehemu ya usanidi.
Kitu kimoja kinatokea ikiwa, wakati wa kugeuka, photoresistor ni kivuli (na kofia ya kalamu) - hali ya upya imeanzishwa.

Seli za mzigo zinapaswa kuwekwa tayari chini ya mizinga, kwa kuwa tunarekebisha tu kiwango cha sifuri cha awali na kisha kupima mabadiliko ya uzito (sasa zero zitakuja tu, kwani bado hatujaunganisha chochote).
Wakati huo huo, LED iliyojengwa ya pin 13 itaanza kuangaza kwenye Arduino.
Ikiwa upya haufanyiki, LED inawaka kwa sekunde 12.
Baada ya hayo, SMS ya mtihani inatumwa na ujumbe "INITIAL BOOT OK" na voltage ya betri.
Moduli ya mawasiliano inazima, na baada ya dakika 3 bodi ya Arduino inaweka bodi za HX711 ADC kwenye hali ya usingizi na hulala yenyewe.
Ucheleweshaji huu ulifanywa ili usichukue kuingiliwa kutoka kwa moduli ya kazi ya GSM (baada ya kuzima, "maharagwe" kwa muda fulani).

Ifuatayo, tuna usumbufu wa sensor ya picha kwenye pini ya pili (kazi ya kuongeza imewezeshwa).
Katika kesi hiyo, baada ya kuchochea, hali ya photoresistor inachunguzwa kwa dakika nyingine 3 - kuondokana na kuchochea mara kwa mara / uongo.
Kinachojulikana ni kwamba bila marekebisho yoyote mfumo huwashwa dakika 10 baada ya jua kutua katika hali ya hewa ya mawingu na 20 katika hali ya hewa ya wazi.
Ndiyo, ili mfumo usiweke upya kila wakati unapowashwa, angalau moduli ya kwanza ya HX711 (pini DT-D10, SCK-A0) lazima iunganishwe.

Kisha usomaji wa vipimo vya shida huchukuliwa, mabadiliko ya uzito kutoka kwa operesheni ya awali huhesabiwa (nambari ya kwanza kwenye mstari baada ya Hive) na kutoka kwa uanzishaji wa kwanza, voltage ya betri inakaguliwa na habari hii inatumwa kama SMS:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Kwa njia, ulipokea SMS? Hongera! Tuko katikati! Betri inaweza kuondolewa kutoka kwa kishikiliaji kwa sasa; hatutahitaji tena kompyuta.

Kwa njia, kituo cha udhibiti wa misheni kiligeuka kuwa ngumu sana kwamba inaweza kuwekwa kwenye jarida la mayonnaise; kwa upande wangu, sanduku la uwazi la kupima 30x60x100mm (kutoka kadi za biashara) linafaa kikamilifu.

Ndiyo, mfumo wa kulala hutumia ~ 2.3mA - 90% kutokana na moduli ya mawasiliano - haina kuzima kabisa, lakini huenda kwenye hali ya kusubiri.

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Wacha tuanze kutengeneza sensorer; kwanza, wacha tuguse mpangilio wa sensorer:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Huu ni mpango wa mzinga - mtazamo wa juu.

Kawaida, sensorer 4 zimewekwa kwenye pembe (1,2,3,4)

Tutapima tofauti. Au tuseme, hata kwa njia ya tatu. Kwa sababu wavulana kutoka BroodMinder hufanya tofauti:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Katika muundo huu, sensorer zimewekwa kwenye nafasi 1 na 2, pointi 3,4 na XNUMX hupumzika kwenye boriti.
Kisha sensorer huhesabu nusu ya uzito tu.
Ndiyo, njia hii ina usahihi mdogo, lakini bado ni vigumu kufikiria kwamba nyuki wangejenga viunzi vyote kwa "ndimi" za masega kando ya ukuta mmoja wa mzinga.

Kwa hiyo, napendekeza kwa ujumla kupunguza sensorer kwa uhakika 5 - basi hakuna haja ya kukinga mfumo, na wakati wa kutumia mizinga ya mwanga, ni muhimu kabisa kufanya na sensor moja.

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Kwa ujumla, tulijaribu aina mbili za moduli kwenye HX711, aina mbili za sensorer, na chaguzi mbili za kuziunganisha - na daraja kamili la Wheatstone (sensorer 2) na nusu, wakati sehemu ya pili inaongezewa na vipinga 1k na uvumilivu wa 0.1%.
Lakini njia ya mwisho haifai na haifai hata na watengenezaji wa sensorer, kwa hivyo nitaelezea ya kwanza tu.

Kwa hivyo, kwa mzinga mmoja tutaweka vipimo viwili vya shida na moduli moja ya HX711, mchoro wa wiring ni kama ifuatavyo.

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Kuna mita 5 za kebo ya simu ya waya 4 kutoka bodi ya ADC hadi Arduino - tunakumbuka jinsi nyuki hawapendi vifaa vya GSM kwenye mzinga.

Kwa ujumla, tunaacha "mikia" ya 8cm kwenye sensorer, tunavua jozi iliyopotoka na kuuza kila kitu kama kwenye picha hapo juu.

Kabla ya kuanza sehemu ya useremala, weka nta/parafini kwenye chombo kinachofaa ili kuyeyusha katika umwagaji wa maji.

Sasa tunachukua mbao zetu na kuigawanya katika sehemu tatu za 100mm kila mmoja

Ifuatayo, tunaweka alama ya groove ya longitudinal 25 mm kwa upana, 7-8 mm kina, kuondoa ziada kwa kutumia hacksaw na chisel - wasifu wa U-umbo unapaswa kutokea.

Je, nta imepashwa joto? - tunachovya bodi zetu za ADC pale - hii itazilinda kutokana na unyevu/ukungu:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Tunaweka yote kwenye msingi wa mbao (lazima itibiwe na antiseptic ili kuzuia kuoza):

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Na mwishowe, tunarekebisha sensorer na screws za kujigonga:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Pia kulikuwa na chaguo na mkanda wa umeme wa bluu, lakini kwa sababu za ubinadamu sijawasilisha πŸ˜‰

Kutoka upande wa Arduino tunafanya yafuatayo:

Tunavua nyaya zetu za simu, tunasokota waya zenye rangi pamoja, na kuzitia bati.

Baada ya hayo, solder kwa anwani za bodi kama kwenye picha:

Ufuatiliaji wa SMS wa uzito wa mizinga mitatu kwa $30

Hiyo ndiyo yote, sasa kwa hundi ya mwisho, tunaweka sensorer katika sekta za mduara, kipande cha plywood juu, kuweka upya mtawala (tunaweka betri na kofia ya kalamu kwenye photodiode).

Wakati huo huo, LED kwenye Arduino inapaswa kuangaza na SMS ya mtihani inapaswa kufika.

Ifuatayo, ondoa kofia kutoka kwa seli ya picha na uende kujaza maji kwenye chupa ya plastiki ya lita 1.5.
Tunaweka chupa kwenye plywood na ikiwa dakika kadhaa tayari zimepita tangu imewashwa, tunaweka kofia kwenye photoresistor (kuiga jua).

Baada ya dakika tatu, LED kwenye Arduino itawaka, na unapaswa kupokea SMS yenye maadili ya uzito wa kilo 1 katika nafasi zote.

Hongera! Mfumo umeunganishwa kwa ufanisi!

Ikiwa sasa tunalazimisha mfumo kufanya kazi tena, basi safu ya kwanza ya uzito itakuwa na zero.

Ndiyo, katika hali halisi inashauriwa kuelekeza photoresistor wima juu.

Sasa nitatoa mwongozo mfupi wa mtumiaji:

  1. Weka vipimo vya matatizo chini ya kuta za nyuma za mizinga (weka boriti/ubao ~30mm nene chini ya zile za mbele)
  2. Tia kivuli kiboreshaji picha na usakinishe betri - LED inapaswa kumeta na unapaswa kupokea SMS ya majaribio yenye maandishi "INITIAL BOOT OK"
  3. Weka kitengo cha kati kwa umbali wa juu kutoka kwa mizinga na ili waya zisiingilie wakati wa kufanya kazi na nyuki.
    Kila jioni, baada ya jua kutua, utapokea SMS na mabadiliko ya uzito wako kwa siku na kutoka wakati wa uzinduzi.
    Wakati voltage ya betri inafikia 3.5V, SMS itaisha na mstari "!!! CHAJI BETRI!!!"
    Muda wa kufanya kazi kwenye betri moja ya 2600mAh ni karibu mwezi.
    Ikiwa betri inabadilishwa, mabadiliko ya kila siku katika uzito wa mizinga hayakumbukwa.

Nini hapo?

  1. Fikiria jinsi ya kuweka haya yote katika mradi wa github
  2. Anzisha familia 3 za nyuki kwenye mizinga ya mfumo wa Palivoda (au wenye pembe katika watu)
  3. Ongeza "buns" - unyevu wa kupima, joto, na muhimu zaidi - kuchambua mlio wa nyuki.

Hiyo ni yote kwa sasa, kwa dhati, mfugaji nyuki wa umeme Andrey

Chanzo: mapenzi.com

Kuongeza maoni