30 долларга үч бал челектин салмагына смс-мониторинг

30 долларга үч бал челектин салмагына смс-мониторинг

Жок, бул коммерциялык сунуш эмес, бул макаланы окугандан кийин чогулта турган системанын компоненттеринин баасы.

Бир аз фон:

Бир нече убакыт мурун мен аарыларды алууну чечтим, алар ... бүт сезон бою пайда болду, бирок кыштан чыккан жок.
Бул ал баарын туура кылып жаткандай көрүнгөнүнө карабастан - күзгү кошумча тамак-аш, сууктун алдында жылуу.
Уюк 10 мм тактайдан 40 кадр үчүн классикалык жыгач системасы "Дадан" болгон.
Бирок ошол кышында температуранын өзгөрүшүнө байланыштуу тажрыйбалуу балчылар да адаттагыдан алда канча көп жоготушкан.

Уюктун ден соолугун көзөмөлдөө тутумунун идеясы ушундайча пайда болгон.
Хабр боюнча бир нече макалаларды жарыялап, балчылардын форумунда сүйлөшкөндөн кийин мен жөнөкөйдөн татаалга өтүүнү чечтим.
Салмагы бир гана талашсыз параметр, бирок, эреже катары, иштеп жаткан системалар бир гана "маалымат" уюк көзөмөлдөйт.
Эгер бир нерсе туура эмес болсо (мисалы, үйүрдүн кетиши, аары оорусу), анда көрсөткүчтөр маанисиз болуп калат.

Ошондуктан, бир микроконтроллер менен бир эле учурда үч уюктун салмагынын өзгөрүшүнө көз салуу жана андан кийин башка "жакшылыктарды" кошуу чечими кабыл алынды.
Натыйжада, биз бир 18650 батареянын заряды боюнча бир айга жакын иштөө убактысы жана статистиканы күнүнө бир жолу жөнөтүүчү автономдуу системага ээ болдук.
Дизайнды мүмкүн болушунча жөнөкөйлөштүрүүгө аракет кылдым, аны схемасыз да, бир фотосүрөттөн кайталаса болот.

Иштөө логикасы төмөнкүдөй: биринчи баштоо / баштапкы абалга келтирүү, уюктун астына орнотулган сенсорлордун окуулары EEPROMда сакталат.
Андан ары, күн сайын, күн баткандан кийин, система "ойгонот", окууларды окуп, күнүнө салмагынын өзгөрүшү менен SMS жөнөтөт жана күйгүзүлгөн учурдан тартып.
Мындан тышкары, батареянын чыңалуусунун мааниси берилет жана ал 3.5 В чейин төмөндөгөндө, заряддоо зарылдыгы жөнүндө эскертүү берилет, анткени 3.4 В төмөн байланыш модулу күйбөйт жана салмактын көрсөткүчтөрү мурунтан эле "сүзүп турат" алыс».

"Эсиңдеби, баары кантип башталган. Баары биринчи жолу жана кайра эле.
30 долларга үч бал челектин салмагына смс-мониторинг
Ооба, түпкү версияга чейин тензометрлер жана зымдар гана сакталып калган, бирок эң биринчиси болгон «темирдин» топтому болгон.
Чынында, кабелдик булуңдун кереги жок, ал жөн гана 30м түз эле баада болуп чыкты.

Эгерде сиз 3 smd-LEDди жана жарым жүз шарттуу (чыгаруу) ширетүү пункттарын демонтаждоодон коркпосоңуз, анда барыңыз!

Ошентип, бизге төмөнкү жабдуулар / материалдардын топтому керек:

  1. Arduino Pro Mini 3V
    Сиз сызыктуу конвертер чипине көңүл бурушуңуз керек - ал так 3.3V болушу керек - чипте 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.8V логикалык деңгээлди жактырган жок.
    Мындан тышкары, 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-20kΩ) жана эки кадимки 20k резистор
  11. 18x18 мм эки тараптуу "калың" лентанын бир бөлүгү - байланыш модулуна arduino тиркөө үчүн.
  12. 18650 батарейка кармоочу жана, чынында, батареянын өзү ~ 2600mAh.
  13. Бир аз мом же парафин (аромат лампалары-таблетка) - нымдуулуктан коргоо үчүн HX711
  14. 25x50x300 мм жыгач устундун бир бөлүгү тензометрлердин негизи үчүн.
  15. Датчиктерди негизге бекитүү үчүн 4,2x19 мм пресс шайбалуу ондогон өзүн-өзү тебелөөчү бурамалар.

Батареяны ноутбуктарды демонтаждоодон алса болот - жаңысына караганда бир нече эсе арзан, ал эми кубаттуулугу кытайлык UltraFireдикинен бир топ чоң болуп чыгат - мен 1500гө каршы 450 алдым (бул от үчүн 6800 😉

Мындан тышкары, ийри эмес колдор, EPSN-25 паялька, канифоль жана POS-60 ширеси керек болот.

30 долларга үч бал челектин салмагына смс-мониторинг

5 жыл мурун мен советтик паяльнигин жез чаккан темирди колдонгом (паяйка станциялары мен үчүн иштебей калды - мен аны тестирлөө үчүн алып бардым жана схеманы EPSN менен бүтүрдүм).
Бирок анын ийгиликсиздигинен жана бир нече кытайлык жасалма (г) дарактардан кийин, акыркысы Спарта деген атка ээ болгон - аты сыяктуу катаал нерсе, токтоп калган.
термостат менен буюмга.

Анда кетели!

30 долларга үч бал челектин салмагына смс-мониторинг

Баштоо үчүн, биз GSM модулунан эки светодиодду чечебиз (алардын кызгылт сары сүйрү менен тегеректелген жери)
Биз SIM-картаны контакттык пластинкалары менен басылган схемага салабыз, сүрөттөгү ийилген бурч жебе менен көрсөтүлгөн.

30 долларга үч бал челектин салмагына смс-мониторинг

Андан кийин биз Arduino тактасындагы LED менен окшош процедураны жасайбыз (чарчы чиптин сол жагында сүйрү),
Таракты төрт контактка (1) ширетебиз,
Биз эки 20к резисторду алып, бир тарапка өткөргүчтөрдү бурабыз, буроону A5 контактынын тешигине ширетебиз, калган arduino RAW жана GND (2),
Фоторезистордун буттарын 10 ммге чейин кыскартып, тактанын GND жана D2 төөнөгүчтөрүнө ширетебиз (3).

Эми эки жактуу скотчтун көк электр лентасына убакыт келди - биз аны байланыш модулунун SIM-картасынын кармагычына чаптайбыз, ал эми үстү жагында - arduino - кызыл (күмүш) баскыч бизге караган жана жогоруда жайгашкан. SIM карта.

Биз кубаттуулукту ширетебиз: плюс байланыш модулунун конденсаторунан (4) RAW arduino пинине чейин.
Чындыгында, байланыш модулунун өзү электр энергиясы үчүн 3.4-4.2 В талап кылат жана анын PWR контакты төмөндөтүүчү конвертерге туташтырылган, андыктан ли-иондон иштөө үчүн чыңалуу чынжырдын бул бөлүгүн айланып өтүшү керек.

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

Андан кийин PWR-A5, URX-D1 жана UTX-D4 контакттарынын, GND-G жеринин (5) жана акырында 6 батарейка кармагычынан (18650) кубат менен камсыздоонун ортосуна секирүүчүлөрдү (7) ширетебиз, антеннаны (8) туташтырабыз. ).
Эми биз USB-TTL конвертерин алып, RXD-TXD жана TXD-RXD, GND-GND контакттарын Dupont зымдары менен ARDUINO (тарак 1) менен туташтырабыз:

30 долларга үч бал челектин салмагына смс-мониторинг

Жогорудагы сүрөттө мүчүлүштүктөрдү оңдоо үчүн колдонулган системанын биринчи версиясы (үчөөнүн ичинен) көрсөтүлгөн.

Эми биз бир азга паяльниктерден чыгып, программалык камсыздоо бөлүгүнө өтөбүз.
Мен Windows үчүн аракеттердин ырааттуулугун сүрөттөп берем:
Биринчиден, сиз программаны жүктөп алып, орнотуп/ташып алышыңыз керек Ардуино 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"libraries каталогуна жайгаштырылган

Анан, албетте, айдоочу үчүн USB-TTL ошол эле githubдан - таңгаксыз архивден орнотуу жөн гана SETUP файлы тарабынан ишке киргизилет.

Макул, C программасын иштетиңиз жана конфигурациялаңыз: arduino-"your_version number" arduino

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, LED секундасына бир жыштык менен өчүп баштайт).

Азыр микропрограмма - биз микроконтроллердин кызыл (күмүш) баскычын басууну үйрөтүп жатабыз - бул белгилүү бир учурда катуу аткарылышы керек !!!
жейсизби? "Жүктөө" баскычын чыкылдатыңыз (скриншоттогу экөөнүн үстүндө) жана интерфейстин ылдый жагындагы сызыкты кылдаттык менен караңыз (экрандын үчөөнүн астында).
"Компиляция" жазуусу "жүктөө" менен алмаштырылаары менен - ​​кызыл баскычты басыңыз (кайра коюу) - эгерде баары жакшы болсо - USB-TTL адаптериндеги жарыктар сүйүнүп күйүп-жанып, интерфейстин ылдый жагында "Жүктөлдү" деген жазуу "

Эми, биз телефонго тесттик SMS келишин күтүп жатканыбызда, мен сизге программанын кантип иштээрин айтып берем:

30 долларга үч бал челектин салмагына смс-мониторинг

Сүрөттө - мүчүлүштүктөрдү оңдоо стендинин экинчи версиясы.

Биринчи жолу күйгүзүлгөндө, система EEPROM 500 жана 501 байттарын текшерет, эгерде алар бирдей болсо, анда калибрлөө маалыматтары жазылбайт жана алгоритм орнотуу бөлүмүнө өтөт.
Ошол эле нерсе, эгерде күйгүзүлгөндө, фоторезистор көлөкө болсо (калем капкагы менен) болот - баштапкы абалга келтирүү режими иштетилген.

Жүктөлгөн клеткалар уюктун астына орнотулушу керек, анткени биз жөн гана нөлдүн баштапкы деңгээлин аныктайбыз, андан кийин салмактын өзгөрүшүн өлчөйбүз (эми ал жөн эле нөлгө барабар болот, анткени биз эч нерсе туташтыра элекпиз).
Ошол эле учурда, 13 пиндин орнотулган LED жарыгы Arduino'до өчүп калат.
Эгерде эч кандай баштапкы абалга келтирилбесе, LED 12 секунда күйөт.
Андан кийин, "БАШТАП ЖҮКТӨТҮҮ ОК" деген билдирүү жана батареянын чыңалуусу менен тесттик SMS жөнөтүлөт.
Байланыш модулу өчүп, 3 мүнөттөн кийин Arduino тактасы HX711 ADC такталарын уйку режимине коет жана өзүнөн өзү уктап калат.
Мындай кечигүү иштеп жаткан GSM модулунан пикаптарды кармап калбоо үчүн жасалат (аны өчүргөндөн кийин, ал бир нече убакытка "фониттер").

Андан кийин, бизде экинчи пинде фото сенсор үзгүлтүккө учурайт (оң тартуу функциясы менен иштетилген).
Ошол эле учурда, дагы 3 мүнөт иштетилгенден кийин, фоторезистордун абалы текшерилет - кайталануучу/жалган позитивдерди жокко чыгаруу үчүн.
Айта кетсек, система булуттуу аба ырайында астрономиялык күн баткандан 10 мүнөттөн кийин жана ачык аба ырайында 20 мүнөттөн кийин эч кандай оңдоосуз иштейт.
Ооба, система күйгүзүлгөн сайын баштапкы абалга келтирилбеши үчүн, жок дегенде биринчи HX711 модулун туташтыруу керек (DT-D10, SCK-A0 пиндери)

Андан кийин жүктөөчү клеткалардын көрсөткүчтөрү алынат, салмактын өзгөрүшү мурунку операциядан эсептелет (Уюктан кийинки линиядагы биринчи сан) жана биринчи киргизүүдөн баштап, батареянын чыңалуусу текшерилет жана бул маалымат түрүндө жөнөтүлөт SMS:

30 долларга үч бал челектин салмагына смс-мониторинг

Айтмакчы, сизге смс келдиби? Куттуктайбыз! Биз жолдун ортосунда турабыз! Батареяны дагы деле кармагычтан алып салууга болот, бизге мындан ары компьютер керек болбойт.

Баса, миссияны башкаруу борбору ушунчалык компакттуу болуп чыкты, ал майонез банкасына бата алат, менин учурда 30x60x100 мм өлчөмүндөгү тунук кутуча (визиттик карталардан) эң сонун.

Ооба, уктап жаткан система ~2.3мА керектейт - байланыш модулунун эсебинен 90% - ал толугу менен өчпөйт, бирок күтүү режимине өтөт.

30 долларга үч бал челектин салмагына смс-мониторинг

Биз сенсорлорду өндүрүүнү улантабыз, адегенде сенсорлордун түзүлүшүнө токтололу:

30 долларга үч бал челектин салмагына смс-мониторинг

Бул уюктун планы - үстүнкү көрүнүш.

Классикалык түрдө бурчтарга 4 сенсор орнотулган (1,2,3,4)

Биз башкача өлчөйбүз. Тагыраак айтканда, үчүнчү жол менен да. Анткени BroodMinderдин балдары муну башкача кылышат:

30 долларга үч бал челектин салмагына смс-мониторинг

Бул конструкцияда сенсорлор 1 жана 2-позицияларда орнотулган, 3,4 жана XNUMX-пункттар устунга таянат.
Ошондо сенсорлор салмагынын жарымын гана түзөт.
Ооба, бул ыкманын тактыгы азыраак, бирок аарылар уюктун бир дубалын бойлото бал челектеринин «тилдери» бар бардык алкактарды курушканын элестетүү дагы эле кыйын.

Ошентип, мен сенсорлорду жалпысынан 5-пунктка чейин кыскартууну сунуштайм - анда системаны коргоонун кереги жок, ал эми жарык уюктарды колдонгондо, сиз бир эле сенсор менен жасай аласыз.

30 долларга үч бал челектин салмагына смс-мониторинг

Жалпысынан, HX711де модулдардын эки түрү, сенсорлордун эки түрү жана аларды туташтыруунун эки варианты сыналды - толук Wheatstone көпүрөсү (2 сенсор) жана жарымы менен, экинчи бөлүгү 1к резисторлор менен толукталганда. толеранттуулук 0.1%.
Бирок акыркы ыкма жагымсыз жана сенсор өндүрүүчүлөр тарабынан сунушталбайт, ошондуктан мен биринчисин гана сүрөттөп берем.

Ошентип, бир уюкка эки жүктөөчү клетканы жана бир HX711 модулун орнотобуз, зымдар схемасы төмөнкүдөй:

30 долларга үч бал челектин салмагына смс-мониторинг

ADC тактасынан arduino чейин 5 метр 4 өзөктүү телефон кабели бар - аарылардын уюктагы GSM түзүлүштөрүн жактырбаганын эстейбиз.

Жалпысынан алганда, биз сенсорлорго 8 см "куйруктарды" калтырып, ийилген жуптарды тазалап, бардыгын жогорудагы сүрөттөгүдөй чечебиз.

Жыгач устачылыкты баштоодон мурун, момду/парафинди суу мончосунда эритүү үчүн ылайыктуу идишке салыңыз.

Эми биз жыгачыбызды алып, ар бири 100 мм болгон үч сегментке бөлөбүз

Андан кийин, туурасы 25 мм, тереңдиги 7-8 мм болгон узунунан кеткен оюкту белгилейбиз, ашыкчаны алып салуу үчүн арааны жана кескичти колдонобуз - U түрүндөгү профиль чыгышы керек.

Мом жылыдыбы? - биз ADC такталарыбызды ошол жерге малабыз - бул аларды нымдан / тумандан коргойт:

30 долларга үч бал челектин салмагына смс-мониторинг

Биз мунун баарын жыгач негизге коебуз (аны чирип кеткен антисептик менен дарылоо керек):

30 долларга үч бал челектин салмагына смс-мониторинг

Акыр-аягы, биз сенсорлорду өзүн-өзү таптап туруучу бурамалар менен бекитебиз:

30 долларга үч бал челектин салмагына смс-мониторинг

Көк электр лентасы менен дагы бир вариант бар болчу, бирок адамгерчиликтен улам мен аны көтөрбөйм 😉

Arduino тарабынан төмөнкүнү аткарыңыз:

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

Андан кийин, сүрөттөгүдөй тактанын контакттарына ширетиңиз:

30 долларга үч бал челектин салмагына смс-мониторинг

Болду, эми акыркы текшерүү үчүн биз сенсорлорду тегеректин секторлоруна, үстүнө - фанердин бир бөлүгүн койдук, контроллерди баштапкы абалга келтирдик (батареяны калем капкагы менен фотодиодго койдук).

Ошол эле учурда, arduino боюнча LED өчүп, сыноо SMS келиши керек.

Андан кийин фотоэлементтин капкагын алып, 1.5 литрлик желим бөтөлкөдөгү сууну чогултуу үчүн барабыз.
Биз бөтөлкөнү фанерага коюп, эгер күйгүзүлгөндөн бир нече мүнөт өтүп кетсе, капкакты кайра фоторезисторго кийебиз (күндүн батышын имитациялоо).

Үч мүнөттөн кийин, arduino'догу LED күйөт жана сиз бардык позицияларда болжол менен 1 кг салмактык маанилер менен SMS аласыз.

Куттуктайбыз! система ийгиликтүү чогултулду!

Эгерде биз азыр системаны кайра иштетүүгө мажбурлай турган болсок, анда салмактын биринчи тилкесинде нөлдөр алынат.

Ооба, реалдуу шарттарда фоторезисторду вертикалдуу жогору карай багыттоо керек.

Эми мен колдонуу үчүн кыскача колдонмону берем:

  1. Уюктун арткы дубалдарынын астына жүк клеткаларын орнотуңуз (алдыңкыларынын астына калыңдыгы ~ 30 мм болгон устун/тактайларды алмаштырыңыз)
  2. Фоторезисторду көлөкө түшүрүп, батарейканы салыңыз - LED өчүп-күйүп, "БАШТАЛГАН БУТУ ОК" деген текст менен сыноо SMS келиши керек.
  3. Борбордук блокту уюктан максималдуу аралыкта жана аарылар менен иштөөдө зымдар тоскоолдук кылбагыдай кылып жайгаштырыңыз.
    Күн сайын кечинде, күн баткандан кийин, суткадагы салмактын өзгөрүшү жана ишке киргизилгенден бери SMS келет.
    Батареянын чыңалуусу 3.5 В жеткенде SMS “!!!” деген сызык менен аяктайт. БАТАРЕЯНЫ ЗАРЯТТАЙТ!!!"
    Кубаттуулугу 2600 мАч болгон бир батарейканын иштөө убактысы болжол менен бир айды түзөт.
    Батареяны алмаштырууда бал челектердин суткалык салмагынын өзгөрүшү жатталып калбайт.

Кийинкиси эмне?

  1. Мунун бардыгын github долбоорунда кантип уюштуруу керектигин аныктаңыз
  2. Паливода системасынын уюктарында 3 аары колониясы бар (же элде мүйүздүү)
  3. "Булочкаларды" кошуңуз - нымдуулукту, температураны өлчөө, эң негизгиси - аарылардын ызылдаганын талдоо.

Азырынча ушунча, чын жүрөктөн, электр балчы Андрей

Source: www.habr.com

Комментарий кошуу