Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Ոչ, սա կոմերցիոն առաջարկ չէ, սա համակարգի բաղադրիչների արժեքն է, որոնք դուք կարող եք հավաքել հոդվածը կարդալուց հետո:

Մի փոքր նախապատմություն.

Որոշ ժամանակ առաջ որոշեցի մեղուներ ձեռք բերել, և նրանք հայտնվեցին... ամբողջ սեզոնին, բայց չլքեցին ձմեռային խրճիթը։
Եվ սա չնայած այն հանգամանքին, որ նա կարծես ամեն ինչ ճիշտ էր անում՝ աշնանային հավելյալ կերակրում, մեկուսացում ցուրտ եղանակից առաջ։
Փեթակը դասական փայտե «Դադան» համակարգ էր՝ 10 մմ տախտակներից պատրաստված 40 շրջանակներով։
Բայց այդ ձմռանը ջերմաստիճանի տատանումների պատճառով նույնիսկ փորձառու մեղվաբույծները սովորականից շատ ավելին են կորցրել։

Այսպես առաջացավ փեթակի վիճակի մոնիտորինգի համակարգի գաղափարը։
Habr-ում մի քանի հոդվածներ հրապարակելուց և մեղվաբույծների ֆորումում շփվելուց հետո ես որոշեցի պարզից անցնել բարդին:
Քաշը միակ անվիճելի պարամետրն է, սակայն, որպես կանոն, գոյություն ունեցող համակարգերը վերահսկում են միայն մեկ «տեղեկանք» փեթակ:
Եթե ​​դրա հետ ինչ-որ բան այն չէ (օրինակ, պարսից հեռանալը, մեղվի հիվանդությունը), ապա ցուցանիշները դառնում են անտեղի։

Հետևաբար, որոշվեց վերահսկել միանգամից երեք փեթակների քաշի փոփոխությունը՝ օգտագործելով մեկ միկրոկոնտրոլ, իսկ ավելի ուշ ավելացնել այլ «լավիկներ»:
Արդյունքն եղավ ինքնավար համակարգ՝ մոտ մեկ ամիս աշխատելով 18650 մարտկոցի մեկ լիցքավորմամբ և օրական մեկ անգամ վիճակագրություն ուղարկելով:
Ես փորձեցի հնարավորինս պարզեցնել դիզայնը, որպեսզի այն կրկնվի նույնիսկ առանց գծապատկերների, միայն լուսանկարներից:

Գործողության տրամաբանությունը հետևյալն է. առաջին մեկնարկի/վերակայման ժամանակ փեթակների տակ տեղադրված սենսորների ընթերցումները պահվում են EEPROM-ում:
Այնուհետև ամեն օր՝ մայրամուտից հետո, համակարգը «արթնանում է», կարդում է ընթերցումները և ուղարկում sms՝ օրվա քաշի փոփոխությամբ և այն միացնելու պահից:
Բացի այդ, փոխանցվում է մարտկոցի լարման արժեքը, և երբ այն իջնում ​​է մինչև 3.5 Վ, նախազգուշացում է տրվում լիցքավորման անհրաժեշտության մասին, քանի որ 3.4 Վ-ից ցածր կապի մոդուլը չի ​​միանում, և քաշի ընթերցումները արդեն «լողում են»:

«Հիշու՞մ եք, թե ինչպես սկսվեց ամեն ինչ։ Ամեն ինչ առաջին անգամ էր ու նորից»։
Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով
Այո, սա հենց այն ապարատային հավաքածուն է, որն ի սկզբանե եղել է, թեև միայն լարման չափիչներն ու լարերը գոյատևել են մինչև վերջնական տարբերակը, բայց առաջին հերթին առաջինը:
Փաստորեն, ձեզ մալուխի կծիկ պետք չէ, պարզապես պարզվեց, որ այն նույն գինն է, ինչ 30 մ ուղիղը:

Եթե ​​դուք չեք վախենում ապամոնտաժելուց 3 SMD LED- ներ և կես հարյուր միավոր սովորական (ելքային) զոդում, ապա գնացեք:

Այսպիսով, մեզ անհրաժեշտ կլինի սարքավորումների/նյութերի հետևյալ հավաքածուն.

  1. Arduino Pro Mini 3V
    Պետք է ուշադրություն դարձնեք գծային փոխարկիչի միկրոսխեմային, այն պետք է լինի ճիշտ 3.3 Վ - չիպի վրա, որը նշում է KB 33/LB 33/DE A10 - իմ չինացիս ինչ-որ բան սխալ է ստացել, և ամբողջ խմբաքանակը:
    Խանութում գտնվող տախտակները, պարզվեց, ունեն 5 վոլտ կարգավորիչներ և 16 ՄՀց բյուրեղներ։
  2. USB-Ttl CH340 չիպի վրա - կարող եք նույնիսկ օգտագործել 5 վոլտանոց, բայց հետո միկրոկառավարիչը թարթելիս Arduino-ն պետք է անջատվի GSM մոդուլից, որպեսզի վերջինս չայրվի:
    PL2303 չիպի վրա հիմնված տախտակները Windows 10-ում չեն աշխատում:
  3. GSM կապի մոդուլ Goouu Tech IOT GA-6-B կամ AI-THINKER A-6 Mini:
    Ինչո՞ւ եք կանգ առել այնտեղ: Neoway M590-ը՝ դիզայներին, որը պահանջում է առանձին պարեր դափերով, GSM SIM800L-ը, դուր չի եկել տրամաբանության ոչ ստանդարտ 2.8V մակարդակը, որը համակարգում է պահանջում նույնիսկ երեք վոլտանոց Arduino-ի հետ:
    Բացի այդ, AiThinker-ի լուծումն ունի նվազագույն էներգիայի սպառում (SMS ուղարկելիս 100 մԱ-ից բարձր հոսանք չեմ տեսել):
  4. GSM GPRS 3DBI ալեհավաք (վերևում գտնվող լուսանկարում՝ «պոչով» ուղղանկյուն շարֆ, ժամը 9-ին)
  5. Օպերատորի մեկնարկային փաթեթ՝ լավ ծածկույթով ձեր մեղվանոցի գտնվելու վայրում:
    Այո, փաթեթը նախ պետք է ակտիվացվի սովորական հեռախոսում, մուտքագրելիս ԱՆՋԱՏԵՑՆԻ PIN-ի հարցումը և լրացնի քո հաշիվը:
    Այժմ կան բազմաթիվ տարբերակներ «Sensor», «IoT» ոճով անուններով. դրանք ունեն մի փոքր ավելի ցածր բաժանորդային վճար:
  6. դուպոն մետաղալար 20սմ իգական-իգական - 3 հատ. (Arduino-ն USB-TTL-ին միացնելու համար)
  7. 3 հատ. HX711 - ADC կշեռքի համար
  8. 6 բեռնախցիկ մինչև 50 կգ քաշի համար
  9. 15 մետր 4 միջուկային հեռախոսային մալուխ՝ քաշային մոդուլները ARDUINO-ին միացնելու համար։
  10. Photoresistor GL5528 (սա ամենակարևորն է՝ 1 MΩ մուգ դիմադրությամբ և 10-20 kΩ թեթև դիմադրությամբ) և երկու սովորական 20 kΩ դիմադրություն:
  11. Երկկողմանի «հաստ» ժապավենի մի կտոր 18x18 մմ - Arduino-ն կապի մոդուլին միացնելու համար:
  12. 18650 մարտկոցի պահոցը և, փաստորեն, մարտկոցն ինքնին ~ 2600 մԱժ են:
  13. Մի քիչ մոմ կամ պարաֆին (մոմի-պլանշետի բուրմունք լամպ) - խոնավությունից պաշտպանվելու համար HX711
  14. Փայտե ճառագայթ 25x50x300 մմ լարման չափիչների հիմքի համար:
  15. Տասնյակ ինքնակպչուն պտուտակներ 4,2x19 մմ մամլիչով, սենսորները հիմքին միացնելու համար:

Մարտկոցը կարելի է վերցնել նոութբուքերի ապամոնտաժումից. այն մի քանի անգամ ավելի էժան է, քան նորը, և հզորությունը շատ ավելի մեծ կլինի, քան չինական UltraFire-ը. ես ստացել եմ 1500-ը 450-ի դիմաց (սա 6800 է կրակի համար 😉

Բացի այդ, ձեզ անհրաժեշտ կլինեն կայուն ձեռքեր, EPSN-25 զոդման երկաթ, ռոսին և POS-60 զոդ:

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Նույնիսկ 5 տարի առաջ ես օգտագործեցի սովետական ​​զոդման երկաթ՝ պղնձե ծայրով (զոդման կայաններն ինձ մոտ չաշխատեցին. ես այն վերցրեցի թեստային դրայվով և ավարտեցի շղթան EPSN-ով):
Բայց դրա ձախողումից և մի քանի չինական հրեշավոր կեղծիքներից հետո վերջինս կոչվեց Սպարտա, որը նույնքան դաժան բան էր, որքան իր անունը, դադարեց.
թերմոստատով արտադրանքի վրա:

Ուրեմն գնանք։

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Սկզբից մենք անջատում ենք երկու լուսադիոդ GSM մոդուլից (այն տեղը, որտեղ դրանք գտնվում էին, շրջանաձև է նարնջագույն օվալով)
Մենք SIM քարտը կոնտակտային բարձիկներով տեղադրում ենք տպագիր տպատախտակին, լուսանկարում թեքված անկյունը նշված է սլաքով:

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Այնուհետև մենք նմանատիպ պրոցեդուրա ենք իրականացնում Arduino տախտակի վրա գտնվող LED-ով (ձվաձեւ քառակուսի չիպի ձախ կողմում),
Զոդեք սանրը չորս կոնտակտների վրա (1),
Մենք վերցնում ենք երկու 20k դիմադրություն, պտտում ենք լարերը մի կողմից, պտտվում ենք A5 պտուտակի անցքի մեջ, մնացած լարերը arduino-ի RAW և GND են (2),
Մենք կարճացնում ենք ֆոտոռեզիստորի ոտքերը մինչև 10 մմ և այն կպչում տախտակի GND և D2 կապանքներին (3):

Այժմ եկել է երկկողմանի ժապավենի կապույտ էլեկտրական ժապավենի ժամանակը. մենք այն սոսնձում ենք կապի մոդուլի SIM քարտի պահարանի վրա, իսկ վերևում՝ Arduino-ն, կարմիր (արծաթագույն) կոճակը ուղղված է դեպի մեզ և գտնվում է SIM քարտի վերևում:

Մենք զոդում ենք էլեկտրամատակարարումը. գումարած կապի մոդուլի կոնդենսատորից (4) RAW arduino փին:
Փաստն այն է, որ կապի մոդուլն ինքնին պահանջում է 3.4-4.2 Վ էլեկտրամատակարարման համար, իսկ դրա PWR կոնտակտը միացված է աստիճանաբար ներքև փոխարկիչին, ուստի li-ion-ից աշխատելու համար լարումը պետք է մատակարարվի շրջանցելով շղթայի այս հատվածը:

Arduino-ում, ընդհակառակը, մենք էլեկտրաէներգիա ենք մատակարարում գծային փոխարկիչի միջոցով. ցածր հոսանքի սպառման դեպքում լարման անկումը 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):

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Վերևի լուսանկարում ներկայացված է համակարգի առաջին տարբերակը (երեքից), որն օգտագործվել է վրիպազերծման համար:

Բայց հիմա մենք մի որոշ ժամանակ կդադարենք զոդման երկաթից և կանցնենք ծրագրային մասին:
Ես նկարագրելու եմ Windows-ի գործողությունների հաջորդականությունը.
Նախ, դուք պետք է ներբեռնեք և տեղադրեք/փաթաթեք ծրագիրը Arduino IDE - ընթացիկ տարբերակը 1.8.9 է, բայց ես օգտագործում եմ 1.6.4

Պարզության համար մենք բացում ենք արխիվը C թղթապանակում՝ arduino - «your_version_number», ներսում մենք կունենանք թղթապանակներ /dist, դրայվերներ, օրինակներ, սարքավորումներ, java, lib, գրադարաններ, հղումներ, գործիքներ, ինչպես նաև arduino գործարկվող ֆայլ: (ուրիշների մեջ).

Այժմ մեզ անհրաժեշտ է գրադարան ADC-ի հետ աշխատելու համար HX711 — կանաչ կոճակ «կլոնավորել կամ ներբեռնել» — ներբեռնել ZIP.
Բովանդակությունը (թղթապանակ HX711-master) տեղադրված է գրացուցակում C:arduino-«your_version_number»libraries

Եվ, իհարկե, վարորդը USB-TTL նույն github-ից - չփաթեթավորված արխիվից տեղադրումը պարզապես գործարկվում է SETUP ֆայլով:

Լավ, եկեք գործարկենք և կարգավորենք ծրագիրը C:arduino-«your_version_number»arduino

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Գնացեք «Գործիքներ» կետը - ընտրեք «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-ին, ես ձեզ կասեմ, թե ինչպես է աշխատում ծրագիրը.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Լուսանկարը ցույց է տալիս վրիպազերծման ստենդի երկրորդ տարբերակը:

Երբ առաջին անգամ միացված է, համակարգը ստուգում է EEPROM-ի 500 և 501 համարի բայթերը, եթե դրանք հավասար են, ապա տրամաչափման տվյալները չեն գրանցվում, և ալգորիթմը անցնում է կարգավորումների բաժին:
Նույնը տեղի է ունենում, եթե, երբ միացված է, ֆոտոռեզիստորը ստվերում է (գրիչի գլխարկով) - վերակայման ռեժիմն ակտիվանում է:

Բեռնախցիկները պետք է արդեն տեղադրվեն փեթակների տակ, քանի որ մենք պարզապես ամրագրում ենք նախնական զրոյական մակարդակը, այնուհետև չափում ենք քաշի փոփոխությունը (հիմա զրոները պարզապես կգան, քանի որ մենք դեռ ոչինչ չենք միացրել):
Միևնույն ժամանակ, 13-րդ փին ներկառուցված LED-ը կսկսի թարթել Arduino-ում:
Եթե ​​վերակայումը տեղի չի ունենում, LED-ը վառվում է 12 վայրկյան:
Դրանից հետո փորձնական SMS է ուղարկվում «ՆԱԽՆԱԿԱՆ ԲԱՑՈՒՄԸ OK» հաղորդագրությամբ և մարտկոցի լարման հետ:
Հաղորդակցման մոդուլն անջատվում է, և 3 րոպե հետո Arduino-ի սալիկը դնում է HX711 ADC տախտակները քնի ռեժիմի և ինքն է քնում:
Այս ուշացումն արվել է, որպեսզի չվերցնի միջամտությունը աշխատող GSM մոդուլից (անջատելուց հետո այն որոշ ժամանակ «լոբալ» է անում):

Հաջորդը, մենք ունենք լուսանկարչական սենսորի ընդհատում երկրորդ փին (պլյուս ֆունկցիան միացված է):
Այս դեպքում գործարկումից հետո ֆոտոռեզիստորի վիճակը ստուգվում է ևս 3 րոպե՝ կրկնվող/կեղծ հրահրումը վերացնելու համար:
Բնորոշն այն է, որ առանց որևէ ճշգրտման համակարգը ակտիվանում է ամպամած եղանակին աստղագիտական ​​մայրամուտից 10 րոպե հետո, իսկ պարզ եղանակին` 20 րոպե:
Այո, որպեսզի համակարգը ամեն անգամ միացնելիս չվերակայվի, առնվազն պետք է միացված լինի առաջին HX711 մոդուլը (կցորդներ DT-D10, SCK-A0):

Այնուհետև վերցվում են լարման չափիչների ընթերցումները, հաշվարկվում է քաշի փոփոխությունը նախորդ գործողությունից (փեթակից հետո տողում առաջին համարը) և առաջին ակտիվացումից ստուգվում է մարտկոցի լարումը և այս տեղեկատվությունը ուղարկվում է որպես SMS.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Ի դեպ, ստացե՞լ եք sms-ը։ Շնորհավորում եմ: Մենք հասել ենք ճանապարհի կեսին: Մարտկոցն առայժմ հնարավոր է հանել պահարանից, համակարգիչը մեզ այլևս պետք չի լինի:

Ի դեպ, առաքելության կառավարման կենտրոնն այնքան կոմպակտ է ստացվել, որ այն կարելի է տեղադրել մայոնեզի տարայի մեջ, իմ դեպքում 30x60x100 մմ չափսերով կիսաթափանցիկ տուփը (այցեքարտերից) հիանալի տեղավորվում է։

Այո, քնելու համակարգը սպառում է ~2.3 մԱ - 90% կապի մոդուլի շնորհիվ - այն ամբողջովին չի անջատվում, բայց անցնում է սպասման ռեժիմ:

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Եկեք սկսենք սենսորներ պատրաստել, նախ անդրադառնանք սենսորների դասավորությանը.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Սա փեթակի հատակագիծ է՝ վերևից։

Դասականորեն անկյուններում տեղադրվում են 4 սենսորներ (1,2,3,4)

Մենք այլ կերպ ենք չափելու. Ավելի ճիշտ՝ նույնիսկ երրորդ ճանապարհով։ Քանի որ BroodMinder-ի տղաները դա այլ կերպ են անում.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Այս դիզայնում սենսորները տեղադրվում են 1-ին և 2-րդ դիրքերում, 3,4-րդ և XNUMX-րդ կետերը հենվում են ճառագայթի վրա:
Հետո սենսորներին բաժին է ընկնում քաշի միայն կեսը:
Այո, այս մեթոդն ավելի քիչ ճշգրտություն ունի, բայց դեռևս դժվար է պատկերացնել, որ մեղուները բոլոր շրջանակները կառուցեն մեղրախորիսխների «լեզուներով» փեթակի մեկ պատի երկայնքով:

Այսպիսով, ես առաջարկում եմ ընդհանուր առմամբ նվազեցնել տվիչները մինչև 5-րդ կետը, ապա համակարգը պաշտպանելու կարիք չկա, և թեթև փեթակներ օգտագործելիս լիովին անհրաժեշտ է բավարարվել մեկ սենսորով:

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Ընդհանուր առմամբ, մենք փորձարկեցինք երկու տեսակի մոդուլներ HX711-ի վրա, երկու տեսակի սենսորներ և դրանք միացնելու երկու տարբերակ՝ ամբողջական Wheatstone կամրջով (2 սենսոր) և կեսով, երբ երկրորդ մասը լրացվում է 1k ռեզիստորներով: հանդուրժողականություն 0.1%:
Բայց վերջին մեթոդը անցանկալի է և խորհուրդ չի տրվում նույնիսկ սենսորային արտադրողների կողմից, ուստի ես նկարագրելու եմ միայն առաջինը:

Այսպիսով, մեկ փեթակի համար մենք կտեղադրենք երկու լարման չափիչ և մեկ HX711 մոդուլ, միացման դիագրամը հետևյալն է.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

ADC տախտակից մինչև Arduino 5 մետր 4 լարով հեռախոսային մալուխ կա. մենք հիշում ենք, թե ինչպես մեղուները չեն սիրում GSM սարքերը փեթակում.

Ընդհանուր առմամբ, մենք սենսորների վրա թողնում ենք 8 սմ «պոչեր», հանում ենք ոլորված զույգը և զոդում ամեն ինչ, ինչպես վերևի լուսանկարում:

Նախքան ատաղձագործությունը սկսելը, մոմը/պարաֆինը տեղադրեք համապատասխան տարայի մեջ, որպեսզի հալվի ջրային բաղնիքում:

Այժմ մենք վերցնում ենք մեր փայտանյութը և այն բաժանում ենք երեք հատվածի՝ յուրաքանչյուրը 100 մմ

Այնուհետև մենք նշում ենք երկայնական ակոս 25 մմ լայնությամբ, 7-8 մմ խորությամբ, հեռացնում ենք ավելցուկը սղոցով և սղոցով. պետք է առաջանա U-աձև պրոֆիլ:

Մոմը տաքացվա՞ծ է: — մենք մեր ADC տախտակները թաթախում ենք այնտեղ — սա դրանք կպաշտպանի խոնավությունից/մառախուղից.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Մենք այդ ամենը դնում ենք փայտե հիմքի վրա (այն պետք է բուժվի հակասեպտիկով, որպեսզի չփչանա).

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Եվ վերջապես, մենք սենսորները ամրացնում ենք ինքնահոսով պտուտակներով.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Կար նաև կապույտ էլեկտրական ժապավենով տարբերակ, բայց մարդասիրական նկատառումներից ելնելով չեմ ներկայացնում 😉

Arduino-ի կողմից մենք անում ենք հետևյալը.

Հեռացնում ենք մեր հեռախոսի մալուխները, պտտում ենք գունավոր լարերը և թիթեղապատում:

Դրանից հետո միացրեք տախտակի կոնտակտներին, ինչպես լուսանկարում.

Երեք մեղվափեթակների քաշի SMS-մոնիթորինգ 30 դոլարով

Ահա և վերջ, հիմա վերջնական ստուգման համար մենք սենսորները դնում ենք շրջանագծի հատվածներում, վերևում նրբատախտակի մի կտոր, կարգավորիչը վերակայում ենք (ֆոտոդիոդի վրա գրիչի գլխարկով մարտկոց ենք դնում):

Միևնույն ժամանակ, Arduino-ի լուսադիոդը պետք է թարթվի և պետք է գա թեստային SMS:

Այնուհետև հանեք գլխարկը ֆոտոխցիկից և գնացեք ջուրը լցնել 1.5 լիտրանոց պլաստիկ շշի մեջ:
Շիշը դնում ենք նրբատախտակի վրա և եթե այն միացնելուց մի քանի րոպե է անցել, գլխարկը նորից դնում ենք ֆոտոռեզիստորի վրա (մայրամուտի նմանակում):

Երեք րոպե անց Arduino-ի լուսադիոդը կվառվի, և բոլոր դիրքերում դուք պետք է ստանաք SMS՝ մոտ 1 կգ քաշով:

Շնորհավորում եմ: Համակարգը հաջողությամբ հավաքվել է:

Եթե ​​մենք հիմա ստիպենք համակարգը նորից աշխատել, ապա առաջին քաշային սյունակը կունենա զրոներ:

Այո, իրական պայմաններում նպատակահարմար է ուղղորդել ֆոտոռեզիստորը ուղղահայաց վերև:

Այժմ ես կտամ օգտվողի կարճ ձեռնարկ.

  1. Փեթակների հետևի պատերի տակ տեղադրեք լարման չափիչներ (առջևի պատերի տակ դրեք ճառագայթ/տախտակ ~ 30 մմ հաստությամբ)
  2. Ստվերեք ֆոտոռեզիստորը և տեղադրեք մարտկոցը. լուսադիոդը պետք է թարթվի, և դուք պետք է ստանաք փորձնական SMS՝ «ՆԱԽԱԲՆԱԿԱՆ ԲԱՑՈՒՄԸ OK» տեքստով:
  3. Տեղադրեք կենտրոնական միավորը փեթակներից առավելագույն հեռավորության վրա և այնպես, որ լարերը չխանգարեն մեղուների հետ աշխատելիս:
    Ամեն երեկո, մայրամուտից հետո, դուք կստանաք SMS ձեր քաշի փոփոխության օրվա և գործարկման պահից սկսած:
    Երբ մարտկոցի լարումը հասնում է 3.5 Վ-ի, SMS-ը կավարտվի «!!! ԼԻՑԵԼ ՄԱՐՏԿՈՑ!!!»
    Մեկ 2600 mAh մարտկոցի վրա աշխատելու ժամանակը մոտ մեկ ամիս է:
    Եթե ​​մարտկոցը փոխարինվի, փեթակների քաշի ամենօրյա փոփոխությունները չեն հիշվում:

Ինչ հաջորդ?

  1. Պարզեք, թե ինչպես կարելի է այս ամենը դնել github-ի նախագծի մեջ
  2. Սկսեք 3 մեղուների ընտանիքներ Պալիվոդայի համակարգի փեթակներում (կամ եղջյուրավոր մարդկանց մեջ)
  3. Ավելացնել «բլիթներ»՝ չափելով խոնավությունը, ջերմաստիճանը և ամենակարևորը՝ վերլուծելով մեղուների բզզոցը:

Առայժմ այսքանը, անկեղծորեն ձերն է, էլեկտրական մեղվապահ Անդրեյ

Source: www.habr.com

Добавить комментарий