30 долларға үш ара ұясының салмағын SMS-бақылау

30 долларға үш ара ұясының салмағын SMS-бақылау

Жоқ, бұл коммерциялық ұсыныс емес, бұл мақаланы оқығаннан кейін жинауға болатын жүйе құрамдастарының құны.

Кішкене фон:

Біраз уақыт бұрын мен аралар алуды шештім, олар бүкіл маусым бойы ... пайда болды, бірақ қысты қалдырмады.
Бұл оның бәрін дұрыс істеп жатқанына қарамастан - күзгі қосымша тағамдар, суықтан бұрын жылыну.
Ұя 10 мм тақтадан 40 кадрға арналған «Дадан» классикалық ағаш жүйесі болды.
Бірақ сол қыста температураның өзгеруіне байланысты тәжірибелі омарташылар да әдеттегіден әлдеқайда көп жоғалтты.

Ұяның денсаулығын бақылау жүйесі идеясы осылай пайда болды.
Хабр туралы бірнеше мақалалар жариялап, омарташылар форумында сөйлескеннен кейін мен қарапайымнан күрделіге өтуді шештім.
Салмақ жалғыз даусыз параметр болып табылады, бірақ, әдетте, бар жүйелер тек бір «анықтамалық» ұяны бақылайды.
Егер бірдеңе дұрыс болмаса (мысалы, үйірдің кетуі, ара ауруы), онда көрсеткіштер маңызды емес болады.

Сондықтан бір микроконтроллермен бірден үш ұяшық салмағының өзгеруін бақылап, кейін басқа «жақсыларды» қосу туралы шешім қабылданды.
Нәтижесінде біз бір 18650 аккумуляторлық зарядта жұмыс уақыты шамамен бір ай болатын және статистиканы күніне бір рет жіберетін автономды жүйеге ие болдық.
Мен дизайнды мүмкіндігінше жеңілдетуге тырыстым, ол тіпті диаграммасыз, бір фотосуреттен қайталануы мүмкін.

Жұмыс логикасы келесідей: бірінші іске қосу / қалпына келтіру кезінде ұялар астында орнатылған сенсорлардың көрсеткіштері EEPROM-да сақталады.
Әрі қарай, күн сайын, күн батқаннан кейін жүйе «оянады», көрсеткіштерді оқиды және күніне және қосылған сәттен бастап салмағының өзгеруімен SMS жібереді.
Сонымен қатар, батарея кернеуінің мәні беріледі және ол 3.5 В дейін төмендеген кезде зарядтау қажеттілігі туралы ескерту беріледі, өйткені 3.4 В төмен байланыс модулі қосылмайды, ал салмақ көрсеткіштері қазірдің өзінде «қалқымалы» алыс».

«Бәрі қалай басталғаны есіңде ме? Барлығы бірінші рет болды.
30 долларға үш ара ұясының салмағын SMS-бақылау
Иә, бұл «темірдің» жиынтығы болды, бірақ соңғы нұсқаға дейін тек тензорметрлер мен сымдар ғана аман қалды, бірақ бірінші кезекте.
Шындығында, кабель ұясы қажет емес, ол жай ғана 30м түзу бағамен бірдей болып шықты.

Егер сіз 3 smd-LED және жарты жүз кәдімгі (шығыс) дәнекерлеу нүктелерін бөлшектеуден қорықпасаңыз, онда барыңыз!

Сонымен, бізге келесі жабдықтар / материалдар жинағы қажет:

  1. Arduino Pro Mini 3V
    Сіз сызықтық түрлендіргіш чипіне назар аударуыңыз керек - ол дәл 3.3 В болуы керек - чипте KB 33 / LB 33 / DE A10 белгісі бар - қытайлықтар менімен және бүкіл партиямен бірдеңені шатастырды.
    дүкендегі тақталар 5 вольтты реттегіштермен және 16 МГц жиілікте кварцты болып шықты.
  2. CH340 чипіндегі USB-Ttl - тіпті 5 вольт болуы мүмкін, бірақ содан кейін микроконтроллердің микробағдарламасы кезінде Arduino-ны GSM модулінен ажырату керек, сондықтан соңғысын күйдірмеу керек.
    PL2303 чипіне негізделген тақталар Windows 10 жүйесінде жұмыс істемейді.
  3. GSM байланыс модулі Goouu Tech IOT GA-6-B немесе AI-THINKER A-6 Mini.
    Неге сонда тоқтадың? Neoway M590 - бубенмен бөлек билерді қажет ететін конструктор, GSM SIM800L - тіпті үш вольтты ардуиномен үйлестіруді қажет ететін стандартты емес 2.8 В логикалық деңгейді ұнатпады.
    Сонымен қатар, AiThinker шешімі ең аз қуат тұтынуға ие (SMS жіберген кезде мен 100 мА жоғары токты көрмедім).
  4. GSM GPRS 3DBI антеннасы (жоғарыдағы суретте - «құйрығы бар тікбұрышты шарф», сағат 9-да)
  5. Омартаның орналасқан жерінде жақсы қамтуы бар операторға арналған бастапқы пакет.
    Иә, пакетті алдымен кәдімгі телефонда қосу керек, кіре берісте PIN СҰРАУДЫ ӨШІРІП, шотты толтыру керек.
    Қазір «Сенсор», «IoT» сияқты атаулары бар көптеген опциялар бар - олардың ай сайынғы төлемі сәл төмен.
  6. сым дупон 20см әйел-әйел — 3 дана. (Arduino-ны USB-TTL-ге қосу үшін)
  7. 3 дана. HX711 - таразыға арналған ADC
  8. 6 кг-ға дейінгі салмаққа арналған 50 жүк ұяшығы
  9. 15 метр 4 сымды телефон кабелі - салмақ модульдерін ARDUINO-мен қосу үшін.
  10. Фоторезистор GL5528 (1МΩ қараңғы кедергісі және 10-20кОм жарық кедергісі бар дәл осы маңызды) және екі кәдімгі 20к резистор
  11. 18x18 мм екі жақты «қалың» таспаның бір бөлігі - arduino-ны байланыс модуліне бекітуге арналған.
  12. 18650 батарея ұстағышы және шын мәнінде батареяның өзі ~ 2600 мАч.
  13. Аздап балауыз немесе парафин (хош иісті шам-шам-таблетка) - ылғалдан қорғау үшін HX711
  14. 25x50x300мм ағаш арқалықтың бір бөлігі тензометрлердің негізі үшін.
  15. Датчиктерді негізге бекітуге арналған 4,2х19 мм пресс-шайбасы бар ондаған өздігінен бұрап тұратын бұрандалар.

Аккумуляторды ноутбуктерді бөлшектеуден алуға болады - жаңадан бірнеше есе арзан, ал сыйымдылығы қытайлық UltraFire-ден әлдеқайда үлкен болады - мен 1500-ге қарсы 450 алдым (бұл 6800 өрт үшін 😉

Сонымен қатар, сізге қисық емес қолдар, EPSN-25 дәнекерлеу үтігі, канифоль және POS-60 дәнекерлеуі қажет.

30 долларға үш ара ұясының салмағын SMS-бақылау

5 жыл бұрын мен кеңестік дәнекерлеу үтікін мыс шаншуымен қолдандым (дәнекерлеу станциялары мен үшін жұмыс істемеді - мен оны сынақ жүргізуге алып, EPSN схемасын аяқтадым).
Бірақ ол сәтсіздікке ұшырағаннан кейін және бірнеше қытайлық сұмдық жалған (d) ағаштары, соңғысы Спарта деген атқа ие болды - аты сияқты қатал нәрсе тоқтады.
термостат бар өнімде.

Ендеше кеттік!

30 долларға үш ара ұясының салмағын SMS-бақылау

Алдымен біз GSM модулінен екі жарықдиодты ажыратамыз (олар қызғылт сары сопақпен айналдырылған жер)
Біз SIM картасын контактілі тақтайшалары бар баспа платасына саламыз, фотосуреттегі қиғаш бұрыш көрсеткі арқылы көрсетілген.

30 долларға үш ара ұясының салмағын SMS-бақылау

Содан кейін Arduino тақтасындағы жарықдиодты шаммен ұқсас процедураны орындаймыз (шаршы чиптің сол жағындағы сопақ),
Біз тарақты төрт контактіге дәнекерлейміз (1),
Біз екі 20к резисторды аламыз, сымдарды бір жағынан бұрамыз, бұралуды A5 контактінің тесігіне дәнекерлейміз, қалған сымдарды RAW және arduino GND (2),
Біз фоторезистордың аяқтарын 10 мм-ге дейін қысқартамыз және оны тақтаның GND және D2 түйреуіштеріне дәнекерлейміз (3).

Енді екі жақты таспаның көк электрлік таспасының уақыты келді - біз оны байланыс модулінің SIM картасының ұстағышына жабыстырамыз, ал жоғарғы жағында - arduino - қызыл (күміс) түйме бізге қарайды және SIM картасының үстінде.

Біз қуатты дәнекерлейміз: плюс байланыс модулінің конденсаторынан (4) RAW arduino істікшесіне дейін.
Шындығында, байланыс модулінің өзі оны қоректендіру үшін 3.4-4.2 В қажет, ал оның PWR контактісі төмендеткіш түрлендіргішке қосылған, сондықтан ли-ионнан жұмыс істеу үшін кернеу тізбектің осы бөлігін айналып өту керек.

Ардуинода, керісінше, біз желілік түрлендіргіш арқылы қуат береміз - аз ток тұтыну кезінде кернеудің төмендеуі 0.1 В құрайды.
Бірақ HX711 модульдеріне тұрақтандырылған кернеуді қолдану арқылы біз оларды төменгі кернеуге өзгерту қажеттілігінен (және сонымен бірге осы операция нәтижесінде шудың жоғарылауынан) құтыламыз.

Содан кейін біз секіргіштерді (5) PWR-A1, URX-D4 және UTX-D5 контактілері, GND-G жері (6) және соңында 18650 батарея ұстағышынан (7) қуат көзімен дәнекерлейміз, антеннаны (8) қосамыз. ).
Енді біз USB-TTL түрлендіргішін алып, RXD-TXD және TXD-RXD, GND-GND контактілерін Dupont сымдарымен ARDUINO-ға қосамыз (1-тарақ):

30 долларға үш ара ұясының салмағын SMS-бақылау

Жоғарыдағы фотода отладтау үшін пайдаланылған жүйенің бірінші нұсқасы (үшеуінің ішінде) көрсетілген.

Енді біз дәнекерлеу үтікінен біраз уақыт шығып, бағдарламалық қамтамасыз ету бөлігіне көшеміз.
Мен Windows үшін әрекеттер тізбегін сипаттаймын:
Біріншіден, бағдарламаны жүктеп алып, орнату/орамадан шығару керек Arduino IDE - ағымдағы нұсқасы 1.8.9, бірақ мен 1.6.4 пайдаланамын

Қарапайымдылық үшін мұрағатты C: arduino-"your_version number" қалтасына шығарамыз, ішінде бізде /dist, драйверлер, мысалдар, аппараттық құрал, java, lib, кітапханалар, анықтамалар, құралдар қалталары, сондай-ақ arduino орындалатын файлы болады. (басқалардың арасында).

Енді бізге ADC-мен жұмыс істеу үшін кітапхана қажет HX711 - жасыл түйме «клондау немесе жүктеп алу» - ZIP жүктеп алу.
Мазмұн (HX711-мастер қалтасы) C: arduino-"your_version_number"кітапханалары каталогында орналастырылған.

Және, әрине, жүргізуші USB-TTL сол github-тан - қаптамадан шығарылған мұрағаттан орнату жай ғана SETUP файлымен іске қосылады.

Жарайды, C бағдарламасын іске қосыңыз және конфигурациялаңыз: arduino-"your_version number" arduino

30 долларға үш ара ұясының салмағын SMS-бақылау

Біз «Құралдар» тармағына өтеміз - «Arduino Pro немесе Pro Mini» тақтасын, Atmega 328 3.3V 8 МГц процессорын, портты - COM1 жүйесінен басқа нөмірді таңдаңыз (ол CH340 драйверін USB-TTL арқылы орнатқаннан кейін пайда болады) адаптер қосылған)

Жарайды, келесі эскизді (бағдарламаны) көшіріп, оны 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);

  }

}

Бірінші жолда тырнақша ішінде char phone_no[]="+123456789012"; - 123456789012 орнына біз SMS жіберілетін ел кодын көрсететін телефон нөмірімізді қоямыз.

Енді біз тексеру түймесін басамыз (жоғарыдағы скриншоттағы бірінші нөмірдің үстінде) - егер төменде (экрандағы үшеуінің астында) «Компиляция аяқталды» болса - онда біз микроконтроллерді жыпылықтай аламыз.

Сонымен, USB-TTL ARDUINO-ға және компьютерге қосылған, біз зарядталған батареяны ұстағышқа саламыз (әдетте жаңа arduino-да жарық диоды секундына бір рет жиілікте жыпылықтай бастайды).

Енді микробағдарлама - біз микроконтроллердің қызыл (күміс) түймесін басуды үйренеміз - бұл белгілі бір уақытта қатаң түрде орындалуы керек !!!
Тамақтану керек пе? «Жүктеп салу» түймесін басыңыз (скриншоттағы екеуінің үстінде) және интерфейстің төменгі жағындағы жолды мұқият қараңыз (экранның үшеуінің астында).
«Компиляция» жазуы «жүктеу» дегенге ауыстырылғаннан кейін – қызыл түймені басыңыз (қалпына келтіру) – бәрі дұрыс болса – USB-TTL адаптеріндегі шамдар қуанышпен жыпылықтайды, ал интерфейстің төменгі жағында «Жүктелді» деген жазу бар. "

Енді біз телефонға сынақ SMS келуін күтіп жатқанда, мен сізге бағдарламаның қалай жұмыс істейтінін айтып беремін:

30 долларға үш ара ұясының салмағын SMS-бақылау

Фотосуретте - жөндеу стендінің екінші нұсқасы.

Алғаш қосылған кезде жүйе EEPROM 500 және 501 байт нөмірлерін тексереді, егер олар тең болса, онда калибрлеу деректері жазылмайды, ал алгоритм орнату бөліміне өтеді.
Дәл осылай болады, егер қосулы кезде фоторезистор көлеңкеленген болса (қалам қақпағы бар) - қалпына келтіру режимі іске қосылады.

Жүктеме ұяшықтары ұяшықтардың астына орнатылуы керек, өйткені біз жай ғана нөлдік деңгейді бекітеміз, содан кейін салмақтың өзгеруін өлшейміз (енді ол жай ғана нөлге тең болады, өйткені біз әлі ештеңе қосқан жоқпыз).
Сонымен қатар, Arduino-да 13 түйреуіштің кірістірілген жарық диоды жыпылықтайды.
Егер қалпына келтіру орын алмаса, жарық диоды 12 секунд бойы жанады.
Осыдан кейін «БАСТАУЫ ЖҮКТЕЛУ ОК» хабары және батарея кернеуі бар сынақ SMS жіберіледі.
Байланыс модулі өшеді және 3 минуттан кейін Arduino тақтасы HX711 ADC тақталарын ұйқы режиміне қойып, өздігінен ұйықтап қалады.
Мұндай кідіріс жұмыс істейтін GSM модулінен пикаптарды ұстамау үшін жасалады (оны өшіргеннен кейін ол біраз уақытқа «фониттер»).

Әрі қарай, бізде екінші түйреуіште фото сенсорлық үзіліс бар (оң тарту функциясы тарту функциясымен қосылған).
Сонымен қатар, тағы 3 минут іске қосқаннан кейін фоторезистордың күйі тексеріледі - қайталанатын / жалған позитивтерді болдырмау үшін.
Айтпақшы, жүйе бұлтты ауа-райында астрономиялық күн батқаннан кейін 10 минуттан кейін және ашық ауа райында 20 минуттан кейін ешқандай реттеусіз жұмыс істейді.
Иә, жүйе қосылған сайын қалпына келтірілмеуі үшін кем дегенде бірінші HX711 модулін қосу керек (DT-D10, SCK-A0 түйреуіштері)

Содан кейін жүктеме жасушаларының көрсеткіштері қабылданады, салмақтың өзгеруі алдыңғы операциядан есептеледі (Ұяшықтан кейінгі жолдағы бірінші сан) және бірінші қосудан бастап батарея кернеуі тексеріледі және бұл ақпарат түрінде жіберіледі ҚЫСҚАША ХАБАР ҚЫЗМЕТІ:

30 долларға үш ара ұясының салмағын SMS-бақылау

Айтпақшы, сізге смс келді ме? Құттықтаймыз! Біз жолдың ортасындамыз! Батареяны әлі де ұстағыштан алуға болады, бізге одан әрі компьютер қажет болмайды.

Айтпақшы, миссияны басқару орталығы соншалықты ықшам болды, ол майонез құмырасына сыяды, менің жағдайда 30x60x100 мм өлшемді мөлдір қорап (визит карточкаларынан) өте жақсы сәйкес келеді.

Иә, ұйықтау жүйесі ~2.3мА тұтынады - байланыс модулінің арқасында 90% - ол толығымен өшпейді, бірақ күту режиміне өтеді.

30 долларға үш ара ұясының салмағын SMS-бақылау

Біз сенсорларды өндіруге кірісеміз, алдымен сенсорлардың орналасуына тоқталайық:

30 долларға үш ара ұясының салмағын SMS-бақылау

Бұл ұяның жоспары - жоғарғы көрініс.

Классикалық түрде бұрыштарда 4 сенсор орнатылған (1,2,3,4)

Біз басқаша өлшейтін боламыз. Дәлірек айтқанда, тіпті үшінші жолмен. Себебі BroodMinder жігіттері мұны басқаша жасайды:

30 долларға үш ара ұясының салмағын SMS-бақылау

Бұл дизайнда датчиктер 1 және 2 позицияларында орнатылады, 3,4 және XNUMX нүктелер пучкаға тіреледі.
Сонда сенсорлар салмақтың жартысын ғана құрайды.
Иә, бұл әдістің дәлдігі аз, бірақ аралар ұяның бір қабырғасының бойына бал ұяларының «тілдері» бар барлық жақтауларды салғанын елестету әлі де қиын.

Сонымен, мен сенсорларды жалпы 5-тармаққа дейін азайтуды ұсынамын - содан кейін жүйені қорғаудың қажеті жоқ, ал жеңіл ұяшықтарды пайдаланған кезде сіз бір сенсормен мүлдем жасай аласыз.

30 долларға үш ара ұясының салмағын SMS-бақылау

Жалпы, HX711-де модульдердің екі түрі, сенсорлардың екі түрі және оларды қосудың екі нұсқасы - толық Wheatstone көпірімен (2 сенсор) және жартысы бар, екінші бөлігі 1к резисторлармен толықтырылған кезде сыналды. төзімділік 0.1%.
Бірақ соңғы әдіс қалаусыз және сенсор өндірушілерімен де ұсынылмайды, сондықтан мен тек біріншісін сипаттаймын.

Сонымен, бір ұяшыққа біз екі жүктеме ұяшығы мен бір HX711 модулін орнатамыз, электр схемасы келесідей:

30 долларға үш ара ұясының салмағын SMS-бақылау

ADC тақтасынан arduino-ға дейін 5 метр 4 ядролы телефон кабелі бар - аралар ұядағы GSM құрылғыларын қалай ұнатпайтыны есімізде.

Тұтастай алғанда, сенсорларда әрқайсысы 8 см болатын «құйрықтарды» қалдырамыз, бұралған жұпты тазалап, жоғарыдағы фотодағыдай бәрін ашамыз.

Ағаш өңдеуді бастамас бұрын, балауызды/парафинді су ваннасында еріту үшін қолайлы контейнерге салыңыз.

Енді біз ағашымызды алып, оны әрқайсысы 100 мм болатын үш сегментке бөлеміз

Әрі қарай, біз ені 25 мм, тереңдігі 7-8 мм бойлық ойықты белгілейміз, артығын алып тастау үшін ара мен қашауды қолданамыз - U-тәрізді профиль шығуы керек.

Балауыз жылыды ма? - біз ADC тақталарын сол жерге батырамыз - бұл оларды ылғалдан / тұманнан қорғайды:

30 долларға үш ара ұясының салмағын SMS-бақылау

Біз мұның бәрін ағаш негізге қоямыз (оны ыдырауға қарсы антисептикпен емдеу керек):

30 долларға үш ара ұясының салмағын SMS-бақылау

Соңында біз сенсорларды өздігінен бұрап тұратын бұрандалармен бекітеміз:

30 долларға үш ара ұясының салмағын SMS-бақылау

Көгілдір электр лентасы бар тағы бір нұсқа болды, бірақ мен оны адамгершілікке байланысты қозғамаймын 😉

Arduino жағынан келесі әрекеттерді орындаңыз:

Телефон кабельдерін тазалаймыз, түрлі-түсті сымдарды біріктіреміз, трюк ойнаймыз.

Осыдан кейін, фотосуреттегідей тақтаның контактілеріне дәнекерлеңіз:

30 долларға үш ара ұясының салмағын SMS-бақылау

Міне, енді соңғы тексеру үшін біз сенсорларды шеңбердің секторларына, үстіне - фанердің бір бөлігін саламыз, контроллерді қалпына келтіреміз (батареяны фотодиодқа қалам қақпағымен қоямыз).

Бұл кезде arduino-дағы жарық диоды жыпылықтап, сынақ SMS келуі керек.

Содан кейін біз фотоэлементтен қақпақты алып, 1.5 литрлік пластик бөтелкеге ​​су жинауға барамыз.
Біз бөтелкені фанераға қойдық және қосудан бірнеше минут өткен болса, қақпақты фоторезисторға қайта саламыз (күннің батуын имитациялау).

Үш минуттан кейін arduino-дағы жарық диоды жанады және сіз барлық позицияларда шамамен 1 кг салмақ мәндері бар SMS алуыңыз керек.

Құттықтаймыз! жүйе сәтті құрастырылды!

Енді жүйені қайтадан жұмыс істеуге мәжбүрлейтін болсақ, онда салмақтың бірінші бағанында нөлдер алынады.

Иә, нақты жағдайда фоторезисторды тігінен жоғары бағыттаған жөн.

Енді мен пайдалану үшін қысқаша нұсқаулық беремін:

  1. Ұялардың артқы қабырғаларының астына жүк ұяшықтарын орнатыңыз (алдыңғы қабырғалардың астына қалыңдығы ~ 30 мм арқалық / тақтаны ауыстырыңыз)
  2. Фоторезисторды көлеңкелеп, батареяны салыңыз - жарық диоды жыпылықтайды және «БАСТАУЫ ЖҮКТЕЛУ ОК» мәтінімен сынақ SMS келеді.
  3. Орталық блокты ұялардан максималды қашықтықта және аралармен жұмыс істегенде сымдар кедергі жасамайтындай етіп орналастырыңыз.
    Күн сайын кешке, күн батқаннан кейін, күніне және іске қосылған сәттен бастап салмақтың өзгеруімен SMS келеді.
    Аккумулятордың кернеуі 3.5 В жеткенде SMS «!!! Батареяны зарядтаңыз!!!"
    Сыйымдылығы 2600 мАч бір батареяның жұмыс уақыты шамамен бір ай.
    Батарея ауыстырылса, ұяшықтардың күнделікті салмағының өзгерістері есте қалмайды.

Ары қарай не?

  1. Мұның бәрін github жобасында қалай ұйымдастыруға болатынын анықтаңыз
  2. Паливода жүйесінің ұяларында 3 ара колониясы бар (немесе адамдарда мүйізді)
  3. «Тоқаштарды» қосыңыз - ылғалдылықты, температураны өлшеу, ең бастысы - аралардың ызылдағанын талдау.

Әзірше осымен, шын жүректен, электрлік омарташы Андрей

Ақпарат көзі: www.habr.com

пікір қалдыру