SMS-şopandina giraniya sê mêşên hingiv bi $30

SMS-şopandina giraniya sê mêşên hingiv bi $30

Na, ev ne pêşniyarek bazirganî ye, ev lêçûna hêmanên pergalê ye ku hûn dikarin piştî xwendina gotarê berhev bikin.

Paşnavek piçûk:

Demek berê min biryar da ku mêşên hingiv bigirim, û ew xuya bûn ... ji bo tevahiya demsalê, lê ji holika zivistanê derneketin.
Û ev tevî wê yekê ku ew dixuye ku her tiştî rast dike - xwarina temamker a payizê, îzolekirina beriya hewaya sar.
Hîv pergalek darîn a klasîk a "Dadan" bû ku bi 10 çarçeweyan ji tabloyên 40 mm hatine çêkirin.
Lê wê zivistanê, ji ber guheztina germahiyê, hingivên xwedî ezmûn jî ji her dem pir zêdetir winda kirin.

Bi vî rengî ramana pergalek ji bo şopandina rewşa hêlînê derket holê.
Piştî weşandina çend gotarên li ser Habrê û ragihandina li ser foruma mêşên hingiv, min biryar da ku ez ji sade berbi tevlihev ve biçim.
Giraniya yekane pîvana nerazî ye, lê wekî qaîdeyek, pergalên heyî tenê yek hêlîna "referans" dişopînin.
Ger tiştek bi wê re xelet bibe (mînakî, derketina qirikê, nexweşiya hingiv), wê hingê nîşanker ne girîng dibin.

Ji ber vê yekê, biryar hate girtin ku bi karanîna yek mîkrokontrolerê veguheztina giraniya sê hingiv bi yekcarî bişopînin, û paşê "baş"ên din lê zêde bikin.
Encam pergalek xweser bû ku bi qasî mehekê dema xebitandinê li ser yek barkirina battera 18650 û şandina statîstîkên rojê carekê bû.
Min hewl da ku sêwiranê bi qasî ku gengaz hêsan bikim da ku ew bêyî diagraman jî, tenê ji wêneyan were dubare kirin.

Mantiqa xebitandinê wiha ye: Di dema destpêkirina / vesazkirina yekem de, xwendinên senzorên ku di binê hêlînan de hatine saz kirin di EEPROM de têne hilanîn.
Dûv re, her roj, piştî rojavabûnê, pergal "ji xew radibe", xwendinan dixwîne û bi guheztina giraniya rojê û ji dema ku vekiriye ve SMSek dişîne.
Wekî din, nirxa voltaja pîlê tê veguheztin, û gava ku ew dakeve 3.5V, hişyariyek li ser hewcedariya barkirinê tê dayîn, ji ber ku li jêr 3.4V modula ragihandinê venabe, û xwendinên giraniyê jixwe "diherikin".

"Ma tê bîra te ku çawa hemî dest pê kir. Her tişt ji bo cara yekem û dîsa bû."
SMS-şopandina giraniya sê mêşên hingiv bi $30
Erê, ev tam komek hardware ye ku di eslê xwe de bû, her çend tenê pîvan û têl heya guhertoya dawîn sax mane, lê yekem tiştên pêşîn.
Di rastiyê de, hûn ne hewce ne kulîlkek kabloyê, ew tenê bi bihayê 30 m rasterast bû.

Ger hûn netirsin ku 3 LED-yên SMD û nîv sed xalên ziravkirina konvansiyonel (derketin) hilweşînin, wê hingê biçin!

Ji ber vê yekê, em ê hewceyê komek amûr / materyalên jêrîn bikin:

  1. Arduino Pro Mini 3V
    Pêdivî ye ku hûn bala xwe bidin mîkroçîra veguherînerê xêzkirî - divê ew tam 3.3V be - li ser çîpê nîşana KB 33/LB 33/DE A10 - Çîniya min tiştek xelet kir, û tevhev
    Tabloyên di firotgehê de derket holê ku xwediyê rêgezên 5-volt û krîstalên 16MHz in.
  2. USB-Ttl li ser çîpek CH340 - hûn dikarin yekî 5-volt jî bikar bînin, lê dûv re dema ku mîkrokontroller dişewitîne, pêdivî ye ku Arduino ji modula GSM were qut kirin da ku ya paşîn neşewitîne.
    Panelên ku li ser çîpê PL2303-ê têne çêkirin di bin Windows 10 de naxebitin.
  3. Modula ragihandinê ya GSM Goouu Tech IOT GA-6-B an AI-THINKER A-6 Mini.
    Çima hûn li wir rawestiyan? Neoway M590 - sêwiranek ku hewceyê dansên cihêreng ên bi tembûran, GSM SIM800L - ji asta ne-standard a mentiqê 2.8V hez nekir, ku tewra bi Arduino-ya sê volt re jî hevrêziyê hewce dike.
    Wekî din, çareseriya ji AiThinker xwedan xerckirina enerjiyê ya hindik e (min di şandina SMS-ê de ji 100mA-a niha mezintir nedît).
  4. Antena GSM GPRS 3DBI (di wêneya li jor de - şapikek çargoşe ya bi "dûvik", di demjimêr 9 de)
  5. Pakêta destpêk a operatorek bi vegirtina baş li cîhê mejiyê we.
    Erê, pêdivî ye ku pakêt pêşî di têlefonek birêkûpêk de were aktîf kirin, di dema têketinê de DAXWAZA PIN BIKIN, û hesabê xwe zêde bike.
    Naha gelek vebijarkên bi navên bi şêwaza "Sensor", "IoT" hene - heqê abonetiya wan hinekî kêmtir heye.
  6. têl dupont 20cm mê-jin - 3 pcs. (ji bo girêdana Arduino bi USB-TTL)
  7. 3 pcs. HX711 - ADC ji bo pîvanan
  8. 6 hucreyên barkirinê ji bo giraniya heya 50 kg
  9. 15 metre kabloya têlefonê ya 4-core - ji bo girêdana modulên giraniyê bi ARDUINO re.
  10. Photoresistor GL5528 (ev ya girîng e, bi berxwedana tarî ya 1 MΩ û berxwedana ronahiyê ya 10-20 kΩ) û du berxwedêrên asayî yên 20 kΩ.
  11. Parçeyek kaseta "qûr" a dualî 18x18 mm - ji bo girêdana Arduino bi modula ragihandinê.
  12. Xwediyê pîlê 18650 û, bi rastî, pîlê bixwe ~ 2600mAh in.
  13. Piçek mûm an parafîn (lampa bîhnxweşiya mûm-tablet) - ji bo parastina şilbûnê HX711
  14. Parçeyek tîrêjê darîn 25x50x300mm ji bo bingeha pîvanên tîrêjê.
  15. Ji bo girêdana senzoran bi bingehê re bi dehan pêlên xwe-teqandinê bi şûştina çapê 4,2x19 mm.

Pîl dikare ji jihevxistina laptopan were girtin - ew çend caran ji ya nû erzantir e, û kapasîteya wê ji ya UltraFire ya Chineseînî pir mezintir be - min 1500 ber 450 girt (ev ji bo agir 6800 e 😉

Wekî din, hûn ê hewceyê destên domdar, hesinek EPSN-25, rosin û POS-60 bixin.

SMS-şopandina giraniya sê mêşên hingiv bi $30

Tewra 5 sal berê jî min hesinek sovêtê ya bi tîpek sifir bikar anî (stasyonên lêdanê ji min re nexebitîn - min ew ji bo ceribandinek ajotinê girt û bi EPSN-ê çerxek qedand).
Lê piştî têkçûna wê û çend sextekarên cinawirên çînî, ya paşîn hate gotin Sparta - tiştek bi qasî navê wê giran, rawestiya.
li ser hilberek bi termostatek.

Îcar em herin!

SMS-şopandina giraniya sê mêşên hingiv bi $30

Ji bo destpêkê, em du LED-ên ji modula GSM-ê vediqetînin (cihê ku ew lê bûn di nav ovalek porteqalî de dorpêçkirî ye)
Em SIM-kartê bi pêlên pêwendiyê ve têxin ser panela çapkirî, goşeya xêzkirî ya di wêneyê de bi tîrek tê destnîşan kirin.

SMS-şopandina giraniya sê mêşên hingiv bi $30

Dûv re em bi LED-ê re li ser panela Arduino (oval li çepê çîpê çargoşe) pêvajoyek wusa pêk tînin.
Komê li çar têkiliyan bihejînin (1),
Em du berxwedêrên 20k digirin, lûleyan ji aliyekî ve dizivirînin, zivirandinê di qulika pin A5 de vedişêrin, berikên mayî di RAW û GND ya arduino de ne (2),
Em lingên fotoresîstorê bi 10 mm kurt dikin û wê bi pêlên GND û D2 yên panelê (3) dişewitînin.

Naha dema kasêta elektrîkê ya şîn a kaseta du-alî ye - em wê li ser xwedêgira SIM-kartê ya modula ragihandinê ve zeliqînin, û li ser - Arduino - bişkoka sor (zîv) li ber me ye û li jorê SIM-kartê ye.

Em dabînkirina hêzê difroşin: plus ji kondensatora modula ragihandinê (4) ber bi pîneya arduino RAW.
Rastî ev e ku modula ragihandinê bixwe ji bo dabînkirina hêza xwe 3.4-4.2V hewce dike, û pêwendiya wê ya PWR bi veguherînerek gav-down ve girêdayî ye, ji ber vê yekê ji bo xebitandina ji li-ion, pêdivî ye ku voltaj ji vê beşa çerxê derbas bibe.

Li Arduino, berevajî, em hêzê bi navgînek veguhezkerek xêzkirî peyda dikin - di xerckirina niha ya kêm de, daketina voltaja daketinê 0.1V e.
Lê bi peydakirina voltajek stabîlkirî ji modulên HX711 re, em ji hewcedariya guheztina wan berbi voltaja jêrîn (û di heman demê de ji zêdebûna deng di encama vê operasyonê de) xilas dibin.

Dûv re em di navbera pîneyên PWR-A5, URX-D1 û UTX-D4 de, GND-G axê (5) û di dawiyê de ji xwedêgiraba 6 (18650) hêzê didin (7), antenna (8) girêdidin.
Naha em veguherînerek USB-TTL digirin û têkiliyên RXD-TXD û TXD-RXD, GND-GND bi têlên Dupont re bi ARDUINO ve girêdidin (comb 1):

SMS-şopandina giraniya sê mêşên hingiv bi $30

Wêneya li jor guhertoya yekem (sêyan) ya pergalê, ku ji bo debugkirinê hatî bikar anîn nîşan dide.

Lê naha em ê demek ji hesinê lêdanê veqetînin û derbasî beşa nermalavê bibin.
Ez ê rêza çalakiyan ji bo Windows-ê diyar bikim:
Pêşîn, hûn hewce ne ku bernameyê dakêşin û saz bikin/pak bikin Arduino IDE - guhertoya heyî 1.8.9 e, lê ez 1.6.4 bikar tînim

Ji bo sadebûnê, em arşîvê di peldanka C de vedikin: arduino - "your_version_number", di hundurê me de peldankên /dist, ajokar, mînak, hardware, java, lib, pirtûkxane, referans, amûr, û her weha pelê îcrakar arduino hene. (di nav yên din).

Naha ji me re pirtûkxaneyek hewce ye ku bi ADC re bixebite HX711 - Bişkoka kesk "klonkirin an dakêşandin" - ZIP dakêşin.
Naverok (peldanka HX711-master) di pelrêça C:arduino-“your_version_number” de têne danîn.

Û bê guman ajoker ji bo USB-TTL ji heman github - ji arşîva nepakkirî, sazkirinê bi pelê SETUP-ê bi hêsanî tê destpêkirin.

Ok, em bernameya C:arduino-"your_version_number"arduino bidin destpêkirin û mîheng bikin

SMS-şopandina giraniya sê mêşên hingiv bi $30

Herin babeta "Amûr" - panela "Arduino Pro an Pro Mini", pêvajoya Atmega 328 3.3V 8 MHz, port - hejmarek ji bilî pergala COM1 hilbijêrin (ew piştî sazkirina ajokera CH340 bi adapterek USB-TTL xuya dike girêdayî)

Ok, nexşeya jêrîn (bernameya) kopî bikin û wê di pencereya Arduino IDE de bixin

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

  }

}

Di rêza yekem de, bi quotes, char phone_no[]=”+123456789012″; — Li şûna 123456789012, jimara têlefona xwe bi koda welatê ku dê SMS jê re bê şandin, deynin.

Naha em pêl bişkoka kontrolê dikin (li jorê jimareya yekê ya di dîmena jorîn de) - heke li jêr (di binê hejmara sê ya li ser ekranê de) "Berhevkirin qediya" - wê hingê em dikarin mîkrokontrolerê bişewitînin.

Ji ber vê yekê, USB-TTL bi ARDUINO û komputerê ve girêdayî ye, batarya barkirî têxe nav xwedan (bi gelemperî LED-ya li ser Arduino-ya nû di çirkeyê de carekê dest pê dike).

Naha ji bo firmware - em perwerde dikin ku pêl bişkoka sor (zîv) ya mîkrokontrollerê bixin - ev ê hewce bike ku di demek diyarkirî de bi hişkî were kirin!!!
Xwarin? Bişkojka "Barkirin" bikirtînin (li jor her du di dîmenderê de), û bi baldarî li xêza li binê navberê (li binê sê di dîmenderê de) binihêrin.
Hema ku sernivîsa "berhevkirin" diguhere "dakêşandin", bişkoja sor bikirtînin (ji nû ve veqetandin) - heke her tişt baş be, roniyên li ser adapterê USB-TTL dê bi kêfxweşî bibiriqe, û li binê navbeynê jî nivîsa "Dakêşandin". ”

Naha, dema ku em li bendê ne ku SMS-ya ceribandinê bi têlefonê were, ez ê ji we re vebêjim ka bername çawa dixebite:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Wêne guhertoya duyemîn a standa debuggkirinê nîşan dide.

Dema ku ji bo cara yekem vebe, pergal baytên jimare 500 û 501 yên EEPROM-ê kontrol dike; heke ew wekhev bin, wê hingê daneyên kalibrasyonê nayên tomar kirin, û algorîtm berbi beşa sazkirinê ve diçe.
Heman tişt diqewime heke, dema ku tê vemirandin, wênekêşker (ji hêla pênûsek pênûsê ve) siya bibe - moda vesazkirinê tê çalak kirin.

Pêdivî ye ku hucreyên barkirinê jixwe di bin hêlînan de werin saz kirin, ji ber ku em bi tenê asta sifirê ya destpêkê rast dikin û dûv re guheztina giraniyê dipîvin (niha dê sifir tenê werin, ji ber ku me hîn tiştek venekiriye).
Di heman demê de, LED-ya çêkirî ya pin 13 dê li ser Arduino dest pê bike.
Ger reset çênebe, LED ji bo 12 çirkeyan ronî dibe.
Piştî vê yekê, SMSek testê bi peyama "DESTPÊK BOOT OK" û voltaja pîlê tê şandin.
Modula danûstendinê vediqete, û piştî 3 hûrdeman panela Arduino panelên HX711 ADC dixe moda xewê û bixwe dikeve xewê.
Ev dereng hate çêkirin da ku ji modulek GSM-ya xebitandinê destwerdanê neyê hildan (piştî ku were qut kirin, ew ji bo demekê "fasûlî" dike).

Dûv re, me li ser pina duyemîn qutiyek senzorek wêneyê heye (fonksiyona plus çalak e).
Di vê rewşê de, piştî vekêşanê, rewşa wênekêşkerê 3 hûrdemên din tê kontrol kirin - da ku tehlika dubare / derewîn ji holê rabike.
Tiştê taybet ev e ku bêyî verastkirinê pergal 10 hûrdem piştî rojavabûna astronomîkî di hewa ewr de û 20 hûrdem di hewaya zelal de tê çalak kirin.
Erê, ji bo ku pergal her gava ku tê vemirandin ji nû ve venegere, divê bi kêmanî modula yekem HX711 (pin DT-D10, SCK-A0) were girêdan.

Dûv re xwendinên pîvanên tîrêjê têne girtin, guheztina giraniyê ji operasyona berê tê hesibandin (hejmara yekem di rêzê de piştî Hive) û ji aktîvkirina yekem ve, voltaja pîlê tê kontrol kirin û ev agahdarî wekî SMS tê şandin:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Bi awayê, we SMS wergirt? Pîroz be! Em di nîvê rê de ne! Pîl dikare ji niha ve ji xwerû were rakirin; em ê êdî hewceyî komputerê nebin.

Bi awayê, navenda kontrolê ya mîsyonê ew qas tevlihev bû ku ew dikare di firaxek mayonezê de were danîn; di rewşa min de, qutiyek zelal a bi pîvana 30x60x100 mm (ji qertên karsaziyê) bi rengek bêkêmasî cîh digire.

Erê, pergala razanê ji ber modula ragihandinê ~ 2.3mA - 90% dixwe - ew bi tevahî qut nabe, lê diçe moda standby.

SMS-şopandina giraniya sê mêşên hingiv bi $30

Ka em dest bi çêkirina senzoran bikin; Pêşî, ka em dest bidin ser sêwirana senzoran:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Ev planek hêlînê ye - dîmena jorîn.

Bi awayekî klasîk, 4 senzor di quncikê de têne saz kirin (1,2,3,4)

Em ê cuda bipîvin. Ya rast, di riya sêyemîn de jî. Ji ber ku xortên ji BroodMinder wê cûda dikin:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Di vê sêwiranê de, senzor li cihên 1 û 2 têne saz kirin, xalên 3,4 û XNUMX li ser tîrêjê radiwestin.
Dûv re senzor tenê nîvê giraniyê hesab dikin.
Erê, ev rêbaz kêm rastiyek heye, lê dîsa jî dijwar e ku meriv bifikire ku mêş dê hemî çarçoveyan bi "zimanên" hingiv li ser dîwarek hingiv ava bikin.

Ji ber vê yekê, ez pêşniyar dikim ku bi gelemperî senzoran di xala 5-an de kêm bikin - wê hingê ne hewce ye ku pergalê biparêze, û dema ku hingivên sivik bikar tînin, bi tevahî pêdivî ye ku meriv bi yek senzorê ve mijûl bibe.

SMS-şopandina giraniya sê mêşên hingiv bi $30

Bi gelemperî, me du celeb modulên li ser HX711 ceriband, du celeb senzor, û du vebijark ji bo girêdana wan - bi pira Wheatstone-a tevahî (2 senzor) û bi nîvek, dema ku beşa duyemîn bi 1k berxwedêrên bi tolerans 0.1%.
Lê rêbaza paşîn nexwestî ye û ji hêla hilberînerên sensor ve jî nayê pêşniyar kirin, ji ber vê yekê ez ê tenê ya yekem diyar bikim.

Ji ber vê yekê, ji bo yek hingiv em ê du pîvana çewsandinê û yek modulek HX711 saz bikin, nexşeya têlkirinê wiha ye:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Ji panela ADC heya Arduino 5 metre kabloya têlefonê ya 4-têl heye - em bi bîr tînin ku çawa mêş ji cîhazên GSM yên di hêlînê de hez nakin.

Bi gelemperî, em "dûvik"ên 8 cm li ser senzoran dihêlin, cotê zivirî dadiqurtînin û her tiştî wekî di wêneya li jor de difroşin.

Berî ku hûn dest bi beşa keriyê bikin, mûm/parafîn di konteynirek guncaw de bixin da ku di hemamek avê de bihelin.

Naha em dara xwe digirin û wê dikin sê beşên 100 mm

Dûv re, em xelekek dirêjî bi firehî 25 mm, bi kûrahiya 7-8 mm nîşan dikin, bi karûbarek û çîçekê zêdeyê jê dikin - divê profîlek U-teşe derkeve holê.

Ma mûm tê germ kirin? - em panelên xwe yên ADC li wir davêjin - ev ê wan ji şil / mijê biparêze:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Em wê hemî li ser bingehek darîn danîn (divê ew bi antîseptîkek were derman kirin da ku pêşî li rizandinê bigire):

SMS-şopandina giraniya sê mêşên hingiv bi $30

Û di dawiyê de, em senzoran bi pêlên xweser rast dikin:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Vebijêrkek bi kaseta elektrîkê ya şîn jî hebû, lê ji ber sedemên mirovahiyê ez wê pêşkêşî nakim 😉

Ji alîyê Arduino ve em jêrîn dikin:

Em kabloyên xwe yên têlefonê tazî dikin, têlên rengîn li hev dizivirînin û qut dikin.

Piştî wê, wekî ku di wêneyê de ye, bi têkiliyên panelê re bişewitînin:

SMS-şopandina giraniya sê mêşên hingiv bi $30

Ew e, naha ji bo kontrolkirina dawîn, em senzoran dixin nav sektorên çemberê, perçeyek plywoodê li jor, kontrolkerê ji nû ve saz dikin (me bataryek bi kapek pênûsê datîne ser fotodiodê).

Di heman demê de, LED-a li ser Arduino divê bibiriqe û SMSek ceribandinê were.

Dûv re, kapikê ji fotocellê derxînin û herin avê têxin şûşeyek plastîk a 1.5 lître.
Em şûşeyê datînin ser pelê û heke çend hûrdem ji ser vekirina wê re derbas bûne, em kapê dîsa davêjin ser fotorezîstorê (simûlasyona rojavabûnê).

Piştî sê hûrdeman, LED-a li ser Arduino dê ronî bibe, û divê hûn di hemî pozîsyonan de SMSek bi giraniya giraniya 1 kg bistînin.

Pîroz be! Pergal bi serfirazî hate berhev kirin!

Ger em naha zorê bidin pergalê ku dîsa bixebite, wê hingê stûna giraniya yekem dê bibe xwedî sifir.

Erê, di şert û mercên rastîn de tê pêşniyar kirin ku fotoresîstor ber bi jor ve bi rê ve bibe.

Naha ez ê pirtûkek bikarhênerek kurt bidim:

  1. Di bin dîwarên paşîn ên mêşan de pîvanên tîrêjê saz bikin (di binê yên pêş de tîrêjek / tîrêjek ~ 30 mm qalind bixin)
  2. Fotoresîstorê siyar bikin û bataryayê saz bikin - divê LED bibiriqe û divê hûn SMSek testê bi nivîsa "DESTPÊK BOOT OK" bistînin.
  3. Yekîneya navendî li dûrahiya herî zêde ji hingiv bi cîh bikin û ji bo ku têl dema ku bi hingiv re dixebitin nekevin navberê.
    Her êvar, piştî rojavabûnê, hûn ê SMSek bi guheztina giraniya xwe ji bo rojê û ji dema destpêkirinê bistînin.
    Dema ku voltaja pîlê digihîje 3.5V, dê SMS bi xeta "!!! BATERYA BAŞ !!!"
    Dema xebatê ya li ser yek bateriyek 2600 mAh bi qasî mehekê ye.
    Ger pîlê were guheztin, guhertinên rojane di giraniya hingiv de nayên bîranîn.

Çi ye?

  1. Fêm bikin ka meriv çawa van hemîyan dixe nav projeyek ji bo github
  2. 3 malbatên mêşên hingiv di hingivên pergala Palivoda de (an jî di nav gel de yên hornkirî) dest pê bikin
  3. "Ban" lê zêde bikin - pîvandina nerm, germahiyê, û ya herî girîng - analîzkirina hejandina mêşan.

Ji bo niha ev hemû, ji dil û can yê te, mêşhingivê elektrîkê Andrey

Source: www.habr.com

Add a comment