30 dollarga uchta asalari uyasining vaznini SMS-monitoring

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Yo'q, bu tijorat taklifi emas, bu maqolani o'qib chiqqandan keyin yig'ishingiz mumkin bo'lgan tizim komponentlarining narxi.

Bir oz fon:

Bir muncha vaqt oldin men asalarilarni olishga qaror qildim va ular butun mavsum davomida paydo bo'ldi, lekin qishki kulbani tark etmadi.
Va bu, u hamma narsani to'g'ri bajarayotgandek tuyulganiga qaramay - kuzgi qo'shimcha oziqlantirish, sovuq havodan oldin izolyatsiya.
Uya 10 mm taxtalardan yasalgan 40 ta ramkali klassik yog'och "Dadan" tizimi edi.
Ammo o'sha qishda, haroratning o'zgarishi tufayli, hatto tajribali asalarichilar ham odatdagidan ko'proq narsani yo'qotishdi.

Uyaning holatini kuzatish tizimi g'oyasi shunday paydo bo'ldi.
Habr haqida bir nechta maqolalarni nashr etganimdan va asalarichilar forumida muloqot qilgandan so'ng, men oddiydan murakkabga o'tishga qaror qildim.
Og'irlik yagona shubhasiz parametrdir, lekin qoida tariqasida mavjud tizimlar faqat bitta "mos yozuvlar" uyasini kuzatadi.
Agar biror narsa noto'g'ri bo'lsa (masalan, to'daning ketishi, ari kasalligi), unda ko'rsatkichlar ahamiyatsiz bo'lib qoladi.

Shu sababli, bitta mikrokontroller yordamida bir vaqtning o'zida uchta uyaning vazni o'zgarishini kuzatish va keyinroq boshqa "yaxshiliklarni" qo'shishga qaror qilindi.
Natijada 18650 akkumulyatorining bir zaryadida taxminan bir oy ish vaqti va kuniga bir marta statistik ma'lumotlarni yuboradigan avtonom tizim paydo bo'ldi.
Men dizaynni iloji boricha soddalashtirishga harakat qildim, shunda uni diagrammalarsiz ham, faqat fotosuratlardan takrorlash mumkin edi.

Ishlash mantig'i quyidagicha: birinchi ishga tushirish/qayta o'rnatish vaqtida uyalar ostida o'rnatilgan sensorlarning o'qishlari EEPROMda saqlanadi.
Keyin, har kuni, quyosh botgandan so'ng, tizim "uyg'onadi", o'qishlarni o'qiydi va kun davomida va yoqilgan paytdan boshlab vaznning o'zgarishi bilan SMS yuboradi.
Bundan tashqari, batareyaning kuchlanish qiymati uzatiladi va u 3.5 V ga tushganda, zaryadlash zarurligi haqida ogohlantirish beriladi, chunki 3.4 V dan pastroqda aloqa moduli yoqilmaydi va vazn ko'rsatkichlari allaqachon "suzib ketadi".

"Hammasi qanday boshlanganini eslaysizmi? Hammasi birinchi marta va yana bo'ldi."
30 dollarga uchta asalari uyasining vaznini SMS-monitoring
Ha, bu aynan dastlab bo'lgan apparatlar to'plami, garchi oxirgi versiyagacha faqat kuchlanish o'lchagichlar va simlar saqlanib qolgan, lekin birinchi navbatda.
Aslida, sizga simi bobini kerak emas, shunchaki 30 m tekislik bilan bir xil narx bo'lib chiqdi.

Agar siz 3 ta SMD LEDni va an'anaviy (chiqish) lehimning yarim yuz nuqtasini demontaj qilishdan qo'rqmasangiz, boring!

Shunday qilib, bizga quyidagi uskunalar/materiallar to'plami kerak bo'ladi:

  1. Arduino Pro Mini 3V
    Chiziqli konvertor mikrosxemasiga e'tibor berishingiz kerak - bu aniq 3.3V bo'lishi kerak - chipda KB 33/LB 33/DE A10 belgisi - mening xitoyliklarim noto'g'ri ishladilar va butun partiya.
    Do'kondagi platalar 5 voltli regulyatorlar va 16 MGts kristallarga ega bo'lib chiqdi.
  2. CH340 chipidagi USB-Ttl - siz hatto 5 voltlidan ham foydalanishingiz mumkin, ammo keyin mikrokontroller yonib-o'chib ketayotganda, ikkinchisini yoqmaslik uchun Arduinoni GSM modulidan uzib qo'yish kerak bo'ladi.
    PL2303 chipiga asoslangan platalar Windows 10 da ishlamaydi.
  3. GSM aloqa moduli Goouu Tech IOT GA-6-B yoki AI-THINKER A-6 Mini.
    Nega u erda to'xtadingiz? Neoway M590 - daflar bilan alohida raqslarni talab qiladigan dizayner, GSM SIM800L - hatto uch voltli Arduino bilan ham muvofiqlashtirishni talab qiladigan nostandart 2.8V darajasidagi mantiqni yoqtirmadi.
    Bundan tashqari, AiThinker-dan yechim minimal energiya sarfiga ega (SMS yuborishda 100mA dan yuqori oqimni ko'rmadim).
  4. GSM GPRS 3DBI antennasi (yuqoridagi fotosuratda - "dumli" to'rtburchak sharf, soat 9 da)
  5. Asalarixonangiz joylashgan joyda yaxshi qamrovga ega bo'lgan operatorning boshlang'ich paketi.
    Ha, paket avval oddiy telefonda faollashtirilgan bo'lishi kerak, kirishda PIN SO'ROVNI O'CHIRISh va hisobingizni to'ldirish kerak.
    Endi "Sensor", "IoT" uslubidagi nomlarga ega ko'plab variantlar mavjud - ularning abonent to'lovi biroz pastroq.
  6. dupont tel 20 sm ayol-ayol - 3 dona. (Arduino-ni USB-TTL ga ulash uchun)
  7. 3 dona. HX711 - tarozilar uchun ADC
  8. Og'irligi 6 kg gacha bo'lgan 50 yuk xujayrasi
  9. 15 metrli 4 yadroli telefon kabeli - og'irlik modullarini ARDUINO ga ulash uchun.
  10. Fotorezistor GL5528 (bu muhim, qorong'u qarshilik 1 MŌ va yorug'lik qarshiligi 10-20 kŌ) va ikkita oddiy 20 kŌ rezistorlar
  11. 18x18 mm o'lchamdagi ikki tomonlama "qalin" lenta - Arduino-ni aloqa moduliga ulash uchun.
  12. 18650 batareya ushlagichi va aslida batareyaning o'zi ~ 2600 mAh.
  13. Bir oz mum yoki kerosin (shamli planshetli aroma lampasi) - namlikdan himoya qilish uchun HX711
  14. Deformatsiya o'lchagichlar asosi uchun 25x50x300 mm yog'och nurning bir qismi.
  15. Datchiklarni taglikka ulash uchun 4,2x19 mm o'lchamdagi press yuvish mashinasi bilan o'nlab o'z-o'zidan tejamkor vintlardek.

Batareyani noutbuklarni demontaj qilishdan olish mumkin - bu yangisidan bir necha baravar arzon va sig'imi Xitoy UltraFire-dan ancha katta bo'ladi - men 1500 ga nisbatan 450 ni oldim (bu yong'in uchun 6800 😉)

Bundan tashqari, sizga barqaror qo'llar, EPSN-25 lehimli temir, rozin va POS-60 lehim kerak bo'ladi.

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Hatto 5 yil oldin men mis uchi bo'lgan sovet lehimli temirdan foydalanganman (lehim stantsiyalari men uchun ishlamadi - men uni sinovdan o'tkazdim va sxemani EPSN bilan tugatdim).
Ammo uning muvaffaqiyatsizligi va bir nechta dahshatli xitoylik soxta narsalardan so'ng, ikkinchisi Sparta deb ataldi - uning nomi kabi jiddiy narsa to'xtadi.
termostatli mahsulotda.

Shunday ekan, ketaylik!

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Boshlash uchun biz GSM modulidan ikkita LEDni echamiz (ular joylashgan joy to'q sariq oval bilan o'ralgan)
Biz SIM-kartani kontakt yostiqchalari bilan bosilgan elektron plataga joylashtiramiz, fotosuratdagi egilgan burchak o'q bilan ko'rsatilgan.

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Keyin biz shunga o'xshash protsedurani Arduino taxtasidagi LED bilan bajaramiz (kvadrat chipning chap tomonidagi oval),
Taroqni to'rtta kontaktga lehimlang (1),
Biz ikkita 20k rezistorni olamiz, simlarni bir tomonga buramiz, burama A5 pinining teshigiga lehimlaymiz, qolgan simlar arduino RAW va GND da (2),
Biz fotorezistorning oyoqlarini 10 mm ga qisqartiramiz va uni taxtaning GND va D2 pinlariga (3) lehimlaymiz.

Endi ikki tomonlama lentaning ko'k elektr lentasini olish vaqti keldi - biz uni aloqa modulining SIM-karta ushlagichiga yopishtiramiz va tepada - Arduino - qizil (kumush) tugma bizga qaragan va SIM-kartaning tepasida joylashgan.

Biz quvvat manbaini lehimlaymiz: plyus aloqa moduli kondansatkichidan (4) RAW arduino piniga.
Gap shundaki, aloqa modulining o'zi elektr ta'minoti uchun 3.4-4.2V kuchlanishni talab qiladi va uning PWR kontakti pastga tushiruvchi konvertorga ulangan, shuning uchun li-iondan ishlash uchun kontaktlarning zanglashiga olib keladigan qismini chetlab o'tib, kuchlanish berilishi kerak.

Arduino-da, aksincha, biz quvvatni chiziqli konvertor orqali ta'minlaymiz - past oqim iste'molida, tushish kuchlanishining pasayishi 0.1V ni tashkil qiladi.
Ammo HX711 modullariga barqarorlashtirilgan kuchlanishni etkazib berish orqali biz ularni pastroq kuchlanishga o'zgartirish zaruratidan xalos bo'lamiz (va shu bilan birga, ushbu operatsiya natijasida shovqinning kuchayishidan).

Keyin biz PWR-A5, URX-D1 va UTX-D4 pinlari orasiga jumperlarni (5) lehimlaymiz, GND-G (6) tuproqli va nihoyat 18650 batareya ushlagichidan quvvat (7), antennani (8) ulaymiz.
Endi biz USB-TTL konvertorini olamiz va RXD-TXD va TXD-RXD, GND-GND kontaktlarini Dupont simlari bilan ARDUINO ga ulaymiz (1 taroq):

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Yuqoridagi fotosuratda nosozliklarni tuzatish uchun foydalanilgan tizimning birinchi versiyasi (uchtasi) ko'rsatilgan.

Ammo endi biz lehimli temirdan bir muddat tanaffus qilamiz va dasturiy ta'minot qismiga o'tamiz.
Men Windows uchun harakatlar ketma-ketligini tasvirlab beraman:
Birinchidan, siz dasturni yuklab olishingiz va o'rnatishingiz / ochishingiz kerak Arduino IDE — joriy versiya 1.8.9, lekin men 1.6.4 dan foydalanaman

Oddiylik uchun biz arxivni C papkasiga ochamiz: arduino - "sizning_versiya_raqamingiz", uning ichida bizda papkalar /dist, drayverlar, misollar, apparat, java, lib, kutubxonalar, ma'lumotnoma, asboblar, shuningdek arduino bajariladigan fayl bo'ladi. (Boshqalar orasida).

Endi bizga ADC bilan ishlash uchun kutubxona kerak HX711 — yashil tugma “klonlash yoki yuklab olish” — ZIP-ni yuklab oling.
Tarkib (HX711-master papkasi) C: arduino-“your_version_number” kutubxonalari katalogiga joylashtirilgan.

Va, albatta, haydovchi USB-TTL xuddi shu githubdan - ochilmagan arxivdan o'rnatish SETUP fayli bilan oddiygina ishga tushiriladi.

OK, keling C: arduino-“your_version_number” arduino dasturini ishga tushiramiz va sozlaymiz

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

"Asboblar" bandiga o'ting - "Arduino Pro yoki Pro Mini" platasini, Atmega 328 3.3V 8 MGts protsessorini, portni - COM1 tizimidan boshqa raqamni tanlang (u USB-TTL adapteri bilan CH340 drayverini o'rnatgandan so'ng paydo bo'ladi. ulangan)

OK, quyidagi eskizni (dasturni) nusxalang va uni Arduino IDE oynasiga joylashtiring

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

  }

}

Birinchi qatorda, tirnoq ichida, char phone_no[]=”+123456789012″; — 123456789012 oʻrniga SMS yuboriladigan mamlakat kodini telefon raqamingizni kiriting.

Endi biz tekshirish tugmasini bosamiz (yuqoridagi skrinshotda birinchi raqam ustida) - agar pastki qismida (ekrandagi uchinchi raqam ostida) "Tuzish tugallangan" bo'lsa, biz mikrokontrollerni miltillashimiz mumkin.

Shunday qilib, USB-TTL ARDUINO va kompyuterga ulangan, zaryadlangan batareyani ushlagichga qo'ying (odatda yangi Arduinodagi LED soniyada bir marta miltillay boshlaydi).

Endi proshivka uchun - biz mikrokontrollerning qizil (kumush) tugmachasini bosishni o'rgatamiz - buni ma'lum bir vaqtda qat'iy bajarish kerak bo'ladi!!!
Yemoq? "Yuklash" tugmasini bosing (skrinshotda ikkitadan yuqorida) va interfeysning pastki qismidagi chiziqni diqqat bilan ko'rib chiqing (skrinshotda uchtasi ostida).
"Kompilyatsiya" yozuvi "yuklab olish" ga o'zgarishi bilan qizil tugmani bosing (qayta tiklash) - agar hamma narsa yaxshi bo'lsa, USB-TTL adapteridagi chiroqlar quvonch bilan miltillaydi va interfeysning pastki qismida "Yuklab olingan" yozuvi ”

Endi biz telefonga test SMS kelishini kutayotganimizda, men sizga dastur qanday ishlashini aytib beraman:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Suratda disk raskadrovka stendining ikkinchi versiyasi ko'rsatilgan.

Birinchi marta yoqilganda, tizim EEPROM-ning 500 va 501-raqamli baytlarini tekshiradi, agar ular teng bo'lsa, kalibrlash ma'lumotlari yozilmaydi va algoritm sozlash bo'limiga o'tadi.
Xuddi shu narsa, agar yoqilganda, fotorezistor soyalangan bo'lsa (qalam qopqog'i bilan) sodir bo'ladi - qayta o'rnatish rejimi yoqilgan.

Yuk xujayralari allaqachon uyalar ostiga o'rnatilgan bo'lishi kerak, chunki biz shunchaki boshlang'ich nol darajasini o'rnatamiz va keyin og'irlikdagi o'zgarishlarni o'lchaymiz (endi nollar keladi, chunki biz hali hech narsani ulamaganmiz).
Shu bilan birga, pin 13 o'rnatilgan LED Arduino-da miltillay boshlaydi.
Qayta tiklash sodir bo'lmasa, LED 12 soniya davomida yonadi.
Shundan so'ng, "INITIAL BOOT OK" xabari va batareya quvvati bilan sinov SMS yuboriladi.
Aloqa moduli o'chadi va 3 daqiqadan so'ng Arduino platasi HX711 ADC platalarini uyqu rejimiga o'tkazadi va o'zi uxlab qoladi.
Ushbu kechikish ishlaydigan GSM modulidan shovqinni olmaslik uchun qilingan (o'chirilgandan keyin u bir muncha vaqt "loviya" qiladi).

Keyinchalik, bizda ikkinchi pinda foto sensori uzilishi mavjud (plyus funktsiyasi yoqilgan).
Bunday holda, tetiklashdan so'ng, fotorezistorning holati yana 3 daqiqa davomida tekshiriladi - takroriy/noto'g'ri tetiklashni bartaraf etish uchun.
Oddiy narsa shundaki, tizim hech qanday sozlashsiz bulutli ob-havoda astronomik quyosh botganidan keyin 10 daqiqadan so'ng va ochiq havoda 20 daqiqadan so'ng faollashadi.
Ha, tizim har safar yoqilganda qayta o'rnatilmasligi uchun hech bo'lmaganda birinchi HX711 moduli (DT-D10, SCK-A0 pinlari) ulangan bo'lishi kerak.

Keyin deformatsiya o'lchagichlarning ko'rsatkichlari olinadi, oldingi operatsiyadan og'irlikning o'zgarishi hisoblab chiqiladi (Hivedan keyingi qatordagi birinchi raqam) va birinchi faollashtirilgandan boshlab batareyaning kuchlanishi tekshiriladi va bu ma'lumot SMS sifatida yuboriladi:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Aytgancha, siz SMS-xabar oldingizmi? Tabriklaymiz! Biz yarim yo'ldamiz! Hozircha batareyani ushlagichdan olib tashlash mumkin, endi bizga kompyuter kerak bo'lmaydi.

Aytgancha, missiyani boshqarish markazi shunchalik ixcham bo'lib chiqdiki, uni mayonez idishiga solib qo'yish mumkin, mening holimda 30x60x100 mm o'lchamdagi shaffof quti (vizit kartalaridan) juda mos keladi.

Ha, uyqu tizimi ~2.3mA iste'mol qiladi - aloqa moduli tufayli 90% - u to'liq o'chmaydi, lekin kutish rejimiga o'tadi.

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Keling, datchiklarni yasashni boshlaylik; avvalo, sensorlarning joylashuviga to'xtalib o'tamiz:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Bu uyaning rejasi - tepadan ko'rinish.

Klassik ravishda burchaklarga 4 ta sensor o'rnatilgan (1,2,3,4)

Biz boshqacha o'lchaymiz. To'g'rirog'i, hatto uchinchi usulda ham. Chunki BroodMinder yigitlari buni boshqacha qilishadi:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Ushbu dizaynda datchiklar 1 va 2-pozitsiyalarga o'rnatiladi, 3,4 va XNUMX nuqtalar nurga tayanadi.
Keyin sensorlar og'irlikning faqat yarmini tashkil qiladi.
Ha, bu usul kamroq aniqlikka ega, ammo asalarilar uyaning bir devori bo'ylab asalarilarning "tillari" bilan barcha ramkalarni qurishlarini tasavvur qilish qiyin.

Shunday qilib, men odatda datchiklarni 5-bandga qisqartirishni taklif qilaman - keyin tizimni himoya qilishning hojati yo'q va yorug'lik uyalarini ishlatganda, bitta sensor bilan ishlashni to'liq bajarish kerak.

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Umuman olganda, biz HX711-da ikkita turdagi modullarni, ikkita turdagi sensorlarni va ularni ulashning ikkita variantini sinab ko'rdik - to'liq Wheatstone ko'prigi (2 datchik) va yarmi bilan, ikkinchi qismi 1k rezistorlar bilan to'ldirilganda. 0.1% bardoshlik.
Ammo oxirgi usul istalmagan va hatto sensor ishlab chiqaruvchilar tomonidan tavsiya etilmaydi, shuning uchun men faqat birinchisini tasvirlab beraman.

Shunday qilib, bitta uya uchun ikkita kuchlanish o'lchagich va bitta HX711 modulini o'rnatamiz, ulanish sxemasi quyidagicha:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

ADC platasidan Arduinoga 5 metrli 4 simli telefon kabeli mavjud - asalarilar uyada GSM qurilmalarini yoqtirmasligini eslaymiz.

Umuman olganda, biz datchiklarda 8 sm "dumlar" qoldiramiz, o'ralgan juftlikni echib tashlaymiz va yuqoridagi fotosuratda bo'lgani kabi hamma narsani lehimlaymiz.

Duradgorlik qismini boshlashdan oldin, mumni / kerosinni suv hammomida eritish uchun mos idishga joylashtiring.

Endi biz yog'ochimizni olamiz va uni har biri 100 mm bo'lgan uchta qismga ajratamiz

Keyinchalik, kengligi 25 mm, chuqurligi 7-8 mm bo'lgan uzunlamasına yivni belgilaymiz, ortiqcha qismini arra va chisel yordamida olib tashlaymiz - U shaklidagi profil paydo bo'lishi kerak.

Mum isitiladimi? — biz ADC platalarimizni u yerga botiramiz — bu ularni namlik/tumandan himoya qiladi:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Biz barchasini yog'och poydevorga joylashtiramiz (chirilishini oldini olish uchun uni antiseptik bilan davolash kerak):

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Va nihoyat, biz sensorlarni o'z-o'zidan tejamkor vintlar bilan mahkamlaymiz:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Moviy elektr lenta bilan variant ham bor edi, lekin insoniy sabablarga ko'ra men uni taqdim qilmayapman 😉

Arduino tomonidan biz quyidagilarni bajaramiz:

Biz telefon kabellarimizni echib tashlaymiz, rangli simlarni bir-biriga bog'laymiz va ularni qalay qilamiz.

Shundan so'ng, fotosuratda bo'lgani kabi, taxta kontaktlarini lehimlang:

30 dollarga uchta asalari uyasining vaznini SMS-monitoring

Mana, endi yakuniy tekshirish uchun biz datchiklarni doira sektorlariga joylashtiramiz, ustiga kontrplak bo'lagini qo'yamiz, boshqaruvchini qayta o'rnatamiz (fotodiodga qalam qopqog'i bo'lgan batareyani qo'yamiz).

Shu bilan birga, Arduino-dagi LED miltillashi va sinov SMS-xabari kelishi kerak.

Keyin fotoseldan qopqoqni olib tashlang va suvni 1.5 litrli plastik shishaga to'ldiring.
Biz shishani kontrplak ustiga qo'yamiz va agar u yoqilgandan keyin bir necha daqiqa o'tgan bo'lsa, biz qopqoqni fotorezistorga qo'yamiz (quyosh botishini taqlid qilish).

Uch daqiqadan so'ng, Arduino-dagi LED yonadi va siz barcha pozitsiyalarda taxminan 1 kg vaznli SMS-xabar olishingiz kerak.

Tabriklaymiz! Tizim muvaffaqiyatli yig'ildi!

Agar biz tizimni qayta ishlashga majbur qilsak, unda birinchi og'irlik ustunida nolga ega bo'ladi.

Ha, haqiqiy sharoitda fotorezistorni vertikal ravishda yuqoriga yo'naltirish tavsiya etiladi.

Endi men qisqacha foydalanuvchi qo'llanmasini beraman:

  1. Uyalarning orqa devorlari ostiga deformatsiya o'lchagichlarni o'rnating (oldingi devorlari ostiga ~ 30 mm qalinlikdagi nur / taxta qo'ying)
  2. Fotorezistorni soya qiling va batareyani o'rnating - LED miltillashi kerak va siz "INITIAL BOOT OK" matni bilan sinov SMS-xabarini olishingiz kerak.
  3. Markaziy blokni uyalardan maksimal masofada joylashtiring va simlar asalarilar bilan ishlashda xalaqit bermasligi uchun.
    Har kuni kechqurun, quyosh botgandan so'ng, kun davomida va ishga tushirilgan paytdan boshlab vazningiz o'zgarishi haqida SMS olasiz.
    Batareya quvvati 3.5V ga yetganda, SMS “!!!” qatori bilan tugaydi. BATARYANI QUVVATLASH!!!"
    Bitta 2600 mA / soat batareyaning ishlash muddati taxminan bir oy.
    Agar batareya almashtirilsa, uyalarning og'irligidagi kunlik o'zgarishlar esga olinmaydi.

Keyin nima?

  1. Bularning barchasini github uchun loyihaga qanday kiritish kerakligini aniqlang
  2. Palivoda tizimining uyalaridagi (yoki odamlarda shoxli) 3 ta asalari oilasini boshlang.
  3. "Bunlarni" qo'shing - namlik, haroratni o'lchash va eng muhimi - asalarilarning shovqinini tahlil qilish.

Hozircha hammasi shu, chin dildan, elektr asalarichi Andrey

Manba: www.habr.com

a Izoh qo'shish