మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

లేదు, ఇది వాణిజ్య ఆఫర్ కాదు, ఇది కథనాన్ని చదివిన తర్వాత మీరు సమీకరించగల సిస్టమ్ భాగాల ధర.

చిన్న నేపథ్యం:

కొంత సమయం క్రితం నేను తేనెటీగలను పొందాలని నిర్ణయించుకున్నాను, మరియు అవి కనిపించాయి ... మొత్తం సీజన్ కోసం, కానీ శీతాకాలపు గుడిసెను విడిచిపెట్టలేదు.
మరియు అతను ప్రతిదీ సరిగ్గా చేస్తున్నట్లు అనిపించినప్పటికీ - శరదృతువు పరిపూరకరమైన ఆహారం, చల్లని వాతావరణానికి ముందు ఇన్సులేషన్.
అందులో నివశించే తేనెటీగలు 10 mm బోర్డులతో తయారు చేయబడిన 40 ఫ్రేమ్‌లతో కూడిన క్లాసిక్ చెక్క "దాడాన్" వ్యవస్థ.
కానీ ఆ శీతాకాలంలో, ఉష్ణోగ్రతల కారణంగా, అనుభవజ్ఞులైన తేనెటీగల పెంపకందారులు కూడా సాధారణం కంటే చాలా ఎక్కువ కోల్పోయారు.

అందులో నివశించే తేనెటీగలు పరిస్థితిని పర్యవేక్షించే వ్యవస్థ యొక్క ఆలోచన ఈ విధంగా వచ్చింది.
హబ్ర్‌పై అనేక కథనాలను ప్రచురించిన తర్వాత మరియు తేనెటీగల పెంపకందారుల ఫోరమ్‌లో కమ్యూనికేట్ చేసిన తర్వాత, నేను సాధారణ నుండి సంక్లిష్టంగా వెళ్లాలని నిర్ణయించుకున్నాను.
బరువు మాత్రమే వివాదాస్పదమైన పరామితి, కానీ ఒక నియమం వలె, ఇప్పటికే ఉన్న వ్యవస్థలు ఒక "సూచన" అందులో నివశించే తేనెటీగలను మాత్రమే పర్యవేక్షిస్తాయి.
దానితో ఏదైనా తప్పు జరిగితే (ఉదాహరణకు, సమూహ నిష్క్రమణ, తేనెటీగ వ్యాధి), అప్పుడు సూచికలు అసంబద్ధం అవుతాయి.

అందువల్ల, ఒక మైక్రోకంట్రోలర్‌ని ఉపయోగించి ఒకేసారి మూడు దద్దుర్లు బరువులో మార్పును పర్యవేక్షించాలని మరియు తరువాత ఇతర “గూడీస్” జోడించాలని నిర్ణయించారు.
ఫలితంగా 18650 బ్యాటరీ యొక్క ఒక ఛార్జ్ మరియు రోజుకు ఒకసారి గణాంకాలను పంపడంపై ఒక నెల ఆపరేటింగ్ సమయంతో స్వయంప్రతిపత్త వ్యవస్థ ఏర్పడింది.
నేను డిజైన్‌ను సాధ్యమైనంతవరకు సరళీకృతం చేయడానికి ప్రయత్నించాను, తద్వారా ఇది కేవలం ఛాయాచిత్రాల నుండి రేఖాచిత్రాలు లేకుండా కూడా పునరావృతమవుతుంది.

ఆపరేషన్ యొక్క తర్కం క్రింది విధంగా ఉంది: మొదటి ప్రారంభం/రీసెట్ సమయంలో, దద్దుర్లు కింద ఇన్స్టాల్ చేయబడిన సెన్సార్ల రీడింగులు EEPROMలో నిల్వ చేయబడతాయి.
అప్పుడు, ప్రతిరోజూ, సూర్యాస్తమయం తర్వాత, సిస్టమ్ "మేల్కొంటుంది", రీడింగులను చదివి, రోజు మరియు అది ఆన్ చేయబడిన క్షణం నుండి బరువులో మార్పుతో SMS పంపుతుంది.
అదనంగా, బ్యాటరీ వోల్టేజ్ విలువ ప్రసారం చేయబడుతుంది మరియు అది 3.5V కి పడిపోయినప్పుడు, ఛార్జ్ చేయవలసిన అవసరం గురించి హెచ్చరిక జారీ చేయబడుతుంది, ఎందుకంటే 3.4V కంటే తక్కువ కమ్యూనికేషన్ మాడ్యూల్ ఆన్ చేయదు మరియు బరువు రీడింగులు ఇప్పటికే "తేలాయి".

"అదంతా ఎలా మొదలైందో మీకు గుర్తుందా. ప్రతిదీ మొదటిసారి మరియు మళ్లీ జరిగింది. ”
మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్
అవును, ఇది ఖచ్చితంగా హార్డ్‌వేర్ సెట్‌గా ఉంది, అయితే స్ట్రెయిన్ గేజ్‌లు మరియు వైర్లు మాత్రమే తుది వెర్షన్‌కు మనుగడలో ఉన్నాయి, అయితే మొదటిది మొదటిది.
వాస్తవానికి, మీకు కేబుల్ కాయిల్ అవసరం లేదు, ఇది కేవలం 30 మీ నేరుగా ధరతో సమానమైన ధరగా మారింది.

మీరు 3 SMD LED లను మరియు సాంప్రదాయ (అవుట్‌పుట్) టంకం యొక్క సగం వంద పాయింట్లను విడదీయడానికి భయపడకపోతే, వెళ్ళండి!

కాబట్టి, మాకు ఈ క్రింది పరికరాలు/మెటీరియల్స్ అవసరం:

  1. Arduino ప్రో మినీ 3V
    మీరు లీనియర్ కన్వర్టర్ మైక్రో సర్క్యూట్‌పై శ్రద్ధ వహించాలి - ఇది ఖచ్చితంగా 3.3V ఉండాలి - KB 33/LB 33/DE A10 మార్కింగ్ చిప్‌లో - నా చైనీస్‌లో ఏదో తప్పు జరిగింది, మరియు మొత్తం బ్యాచ్
    స్టోర్‌లోని బోర్డులు 5-వోల్ట్ రెగ్యులేటర్‌లు మరియు 16MHz స్ఫటికాలుగా మారాయి.
  2. CH340 చిప్‌లో USB-Ttl - మీరు 5-వోల్ట్‌లను కూడా ఉపయోగించవచ్చు, అయితే మైక్రోకంట్రోలర్‌ను ఫ్లాషింగ్ చేస్తున్నప్పుడు, ఆర్డునో GSM మాడ్యూల్ నుండి డిస్‌కనెక్ట్ చేయబడాలి, తద్వారా రెండోది బర్న్ చేయకూడదు.
    PL2303 చిప్‌పై ఆధారపడిన బోర్డులు Windows 10లో పని చేయవు.
  3. GSM కమ్యూనికేషన్ మాడ్యూల్ Goouu Tech IOT GA-6-B లేదా AI-THINKER A-6 Mini.
    అక్కడ ఎందుకు ఆగిపోయావు? నియోవే M590 - టాంబురైన్‌లతో ప్రత్యేక నృత్యాలు అవసరమయ్యే డిజైనర్, GSM SIM800L - ప్రామాణికం కాని 2.8V స్థాయి లాజిక్‌ని ఇష్టపడలేదు, దీనికి మూడు-వోల్ట్ ఆర్డునోతో కూడా సమన్వయం అవసరం.
    అదనంగా, AiThinker నుండి పరిష్కారం కనీస శక్తి వినియోగాన్ని కలిగి ఉంటుంది (SMS పంపేటప్పుడు నేను 100mA కంటే ఎక్కువ కరెంట్‌ని చూడలేదు).
  4. GSM GPRS 3DBI యాంటెన్నా (పై ఫోటోలో - "తోక" ఉన్న దీర్ఘచతురస్రాకార కండువా, 9 గంటలకు)
  5. మీ తేనెటీగలను పెంచే స్థలంలో మంచి కవరేజీతో ఆపరేటర్ యొక్క స్టార్టర్ ప్యాకేజీ.
    అవును, ప్యాకేజీ తప్పనిసరిగా సాధారణ ఫోన్‌లో సక్రియం చేయబడాలి, ప్రవేశించిన తర్వాత పిన్ అభ్యర్థనను నిలిపివేయండి మరియు మీ ఖాతాను టాప్ అప్ చేయండి.
    ఇప్పుడు "సెన్సార్", "IoT" శైలిలో పేర్లతో అనేక ఎంపికలు ఉన్నాయి - వాటికి కొంచెం తక్కువ చందా రుసుము ఉంది.
  6. dupont వైర్ 20cm స్త్రీ-ఆడ - 3 PC లు. (ఆర్డునోను USB-TTLకి కనెక్ట్ చేయడానికి)
  7. 3 PC లు. HX711 - ప్రమాణాల కోసం ADC
  8. 6kg వరకు బరువు కోసం 50 లోడ్ కణాలు
  9. 15 మీటర్ల 4-కోర్ టెలిఫోన్ కేబుల్ - బరువు మాడ్యూళ్లను ARDUINOకి కనెక్ట్ చేయడానికి.
  10. ఫోటోరేసిస్టర్ GL5528 (ఇది ముఖ్యమైనది, 1 MΩ యొక్క చీకటి నిరోధకత మరియు 10-20 kΩ యొక్క కాంతి నిరోధకతతో) మరియు రెండు సాధారణ 20 kΩ రెసిస్టర్‌లు
  11. ఆర్డునోను కమ్యూనికేషన్ మాడ్యూల్‌కి అటాచ్ చేయడం కోసం 18x18 మిమీ డబుల్ సైడెడ్ “మందపాటి” టేప్ ముక్క.
  12. 18650 బ్యాటరీ హోల్డర్ మరియు నిజానికి, బ్యాటరీ కూడా ~2600mAh.
  13. కొద్దిగా మైనపు లేదా పారాఫిన్ (కొవ్వొత్తి-టాబ్లెట్ సువాసన దీపం) - తేమ రక్షణ కోసం HX711
  14. స్ట్రెయిన్ గేజ్‌ల బేస్ కోసం 25x50x300mm చెక్క పుంజం ముక్క.
  15. సెన్సార్‌లను బేస్‌కి అటాచ్ చేయడానికి 4,2x19 mm ప్రెస్ వాషర్‌తో డజను స్వీయ-ట్యాపింగ్ స్క్రూలు.

ల్యాప్‌టాప్‌ల విడదీయడం నుండి బ్యాటరీని తీసుకోవచ్చు - ఇది కొత్తదాని కంటే చాలా రెట్లు చౌకగా ఉంటుంది మరియు చైనీస్ అల్ట్రాఫైర్ కంటే సామర్థ్యం చాలా ఎక్కువగా ఉంటుంది - నాకు 1500 వర్సెస్ 450 వచ్చింది (ఇది అగ్నికి 6800 😉

అదనంగా, మీకు స్థిరమైన చేతులు, EPSN-25 టంకం ఇనుము, రోసిన్ మరియు POS-60 టంకము అవసరం.

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

5 సంవత్సరాల క్రితం కూడా నేను సోవియట్ టంకం ఇనుమును రాగి చిట్కాతో ఉపయోగించాను (టంకం స్టేషన్లు నాకు పని చేయలేదు - నేను దానిని టెస్ట్ డ్రైవ్ కోసం తీసుకొని EPSN తో సర్క్యూట్ పూర్తి చేసాను).
కానీ దాని వైఫల్యం మరియు అనేక చైనీస్ భయంకరమైన నకిలీల తరువాత, తరువాతి స్పార్టా అని పిలువబడింది - దాని పేరు వలె తీవ్రమైన విషయం, ఆగిపోయింది
థర్మోస్టాట్ ఉన్న ఉత్పత్తిపై.

కనుక మనము వెళ్దాము!

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

ప్రారంభించడానికి, మేము GSM మాడ్యూల్ నుండి రెండు LED లను అన్‌సోల్డర్ చేస్తాము (అవి ఉన్న ప్రదేశం నారింజ రంగులో చుట్టబడి ఉంటుంది)
మేము ప్రింటెడ్ సర్క్యూట్ బోర్డ్‌కు కాంటాక్ట్ ప్యాడ్‌లతో SIM కార్డ్‌ను ఇన్సర్ట్ చేస్తాము, ఫోటోలోని బెవెల్డ్ కార్నర్ బాణం ద్వారా సూచించబడుతుంది.

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

అప్పుడు మేము ఆర్డునో బోర్డ్‌లోని LED (స్క్వేర్ చిప్‌కు ఎడమవైపు ఓవల్) తో ఇలాంటి విధానాన్ని నిర్వహిస్తాము.
దువ్వెనను నాలుగు కాంటాక్ట్‌లకు టంకం చేయండి (1),
మేము రెండు 20k రెసిస్టర్‌లను తీసుకుంటాము, లీడ్‌లను ఒక వైపున ట్విస్ట్ చేస్తాము, ట్విస్ట్‌ను పిన్ A5 యొక్క రంధ్రంలోకి టంకము చేస్తాము, మిగిలిన లీడ్‌లు ఆర్డునో (2) యొక్క RAW మరియు GNDలో ఉంటాయి.
మేము ఫోటోరేసిస్టర్ యొక్క కాళ్ళను 10 మిమీకి తగ్గించి, బోర్డు (2) యొక్క GND మరియు D3 పిన్‌లకు టంకము చేస్తాము.

ఇప్పుడు డబుల్ సైడెడ్ టేప్ యొక్క బ్లూ ఎలక్ట్రికల్ టేప్ కోసం సమయం ఆసన్నమైంది - మేము దానిని కమ్యూనికేషన్ మాడ్యూల్ యొక్క SIM కార్డ్ హోల్డర్‌పై అతికించాము మరియు పైన - Arduino - ఎరుపు (వెండి) బటన్ మనకు ఎదురుగా ఉంటుంది మరియు SIM కార్డ్ పైన ఉంది.

మేము విద్యుత్ సరఫరాను టంకము చేస్తాము: ప్లస్ కమ్యూనికేషన్ మాడ్యూల్ కెపాసిటర్ (4) నుండి RAW ఆర్డునో పిన్ వరకు.
వాస్తవం ఏమిటంటే, కమ్యూనికేషన్ మాడ్యూల్‌కు దాని విద్యుత్ సరఫరా కోసం 3.4-4.2V అవసరం, మరియు దాని PWR పరిచయం స్టెప్-డౌన్ కన్వర్టర్‌కు అనుసంధానించబడి ఉంది, కాబట్టి li-ion నుండి పనిచేయడానికి, సర్క్యూట్ యొక్క ఈ భాగాన్ని దాటవేసి వోల్టేజ్ సరఫరా చేయాలి.

Arduino లో, దీనికి విరుద్ధంగా, మేము లీనియర్ కన్వర్టర్ ద్వారా శక్తిని సరఫరా చేస్తాము - తక్కువ ప్రస్తుత వినియోగంలో, డ్రాప్-అవుట్ వోల్టేజ్ డ్రాప్ 0.1V.
కానీ HX711 మాడ్యూల్‌లకు స్థిరీకరించిన వోల్టేజ్‌ను సరఫరా చేయడం ద్వారా, వాటిని తక్కువ వోల్టేజీకి సవరించాల్సిన అవసరాన్ని మేము వదిలించుకుంటాము (మరియు అదే సమయంలో ఈ ఆపరేషన్ ఫలితంగా శబ్దం పెరగకుండా).

తదుపరి మేము పిన్స్ PWR-A5, URX-D1 మరియు UTX-D4, గ్రౌండ్ GND-G (5) మధ్య జంపర్లను (6) టంకము చేస్తాము మరియు చివరకు 18650 బ్యాటరీ హోల్డర్ (7) నుండి శక్తిని అందిస్తాము, యాంటెన్నా (8)ని కనెక్ట్ చేస్తాము.
ఇప్పుడు మేము USB-TTL కన్వర్టర్‌ని తీసుకుంటాము మరియు RXD-TXD మరియు TXD-RXD, GND-GND పరిచయాలను డుపాంట్ వైర్‌లతో ARDUINO (దువ్వెన 1)కి కనెక్ట్ చేస్తాము:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

పై ఫోటో డీబగ్గింగ్ కోసం ఉపయోగించబడిన సిస్టమ్ యొక్క మొదటి వెర్షన్ (మూడు)ని చూపుతుంది.

కానీ ఇప్పుడు మేము టంకం ఇనుము నుండి కొంతకాలం విరామం తీసుకుంటాము మరియు సాఫ్ట్‌వేర్ భాగానికి వెళ్తాము.
నేను Windows కోసం చర్యల క్రమాన్ని వివరిస్తాను:
ముందుగా, మీరు ప్రోగ్రామ్‌ను డౌన్‌లోడ్ చేసి, ఇన్‌స్టాల్ / అన్‌ప్యాక్ చేయాలి Arduino IDE — ప్రస్తుత వెర్షన్ 1.8.9, కానీ నేను 1.6.4ని ఉపయోగిస్తాను

సరళత కోసం, మేము ఆర్కైవ్‌ను ఫోల్డర్ C లోకి అన్‌ప్యాక్ చేస్తాము: arduino - “your_version_number”, లోపల మనకు ఫోల్డర్‌లు / జిల్లా, డ్రైవర్లు, ఉదాహరణలు, హార్డ్‌వేర్, జావా, లిబ్, లైబ్రరీలు, రిఫరెన్స్, టూల్స్, అలాగే ఆర్డునో ఎక్జిక్యూటబుల్ ఫైల్ ఉంటాయి. (ఇతరులలో).

ఇప్పుడు మనకు ADCతో పని చేయడానికి లైబ్రరీ అవసరం HX711 — ఆకుపచ్చ బటన్ “క్లోన్ లేదా డౌన్‌లోడ్” — జిప్‌ని డౌన్‌లోడ్ చేయండి.
కంటెంట్‌లు (ఫోల్డర్ 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 MHz ప్రాసెసర్, పోర్ట్ - సిస్టమ్ COM1 కాకుండా వేరే సంఖ్యను ఎంచుకోండి (ఇది USB-TTL అడాప్టర్‌తో CH340 డ్రైవర్‌ను ఇన్‌స్టాల్ చేసిన తర్వాత కనిపిస్తుంది. కనెక్ట్ చేయబడింది)

సరే, కింది స్కెచ్ (ప్రోగ్రామ్)ని కాపీ చేసి, 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కి SMS-మానిటరింగ్

ఫోటో డీబగ్గింగ్ స్టాండ్ యొక్క రెండవ సంస్కరణను చూపుతుంది.

మొదటిసారి ఆన్ చేసినప్పుడు, సిస్టమ్ EEPROM యొక్క 500 మరియు 501 బైట్‌లను తనిఖీ చేస్తుంది; అవి సమానంగా ఉంటే, అప్పుడు అమరిక డేటా రికార్డ్ చేయబడదు మరియు అల్గోరిథం సెటప్ విభాగానికి వెళుతుంది.
ఆన్ చేసినప్పుడు, ఫోటోరేసిస్టర్ షేడ్ చేయబడితే (పెన్ క్యాప్ ద్వారా) అదే జరుగుతుంది - రీసెట్ మోడ్ సక్రియం చేయబడింది.

లోడ్ కణాలు ఇప్పటికే దద్దుర్లు కింద ఇన్‌స్టాల్ చేయబడాలి, ఎందుకంటే మేము ప్రారంభ సున్నా స్థాయిని పరిష్కరించి, ఆపై బరువులో మార్పును కొలుస్తాము (ఇప్పుడు సున్నాలు వస్తాయి, ఎందుకంటే మేము ఇంకా దేనినీ కనెక్ట్ చేయలేదు).
అదే సమయంలో, పిన్ 13 యొక్క అంతర్నిర్మిత LED ఆర్డునోలో మెరిసిపోవడం ప్రారంభమవుతుంది.
రీసెట్ జరగకపోతే, LED 12 సెకన్ల పాటు వెలిగిపోతుంది.
దీని తరువాత, "ప్రారంభ బూట్ సరే" మరియు బ్యాటరీ వోల్టేజ్ సందేశంతో పరీక్ష SMS పంపబడుతుంది.
కమ్యూనికేషన్ మాడ్యూల్ ఆఫ్ అవుతుంది మరియు 3 నిమిషాల తర్వాత Arduino బోర్డు HX711 ADC బోర్డులను స్లీప్ మోడ్‌లో ఉంచుతుంది మరియు స్వయంగా నిద్రపోతుంది.
పని చేసే GSM మాడ్యూల్ (స్విచ్ ఆఫ్ చేసిన తర్వాత, అది కొంత సమయం వరకు "బీన్స్") నుండి జోక్యం చేసుకోకుండా ఉండటానికి ఈ ఆలస్యం జరిగింది.

తరువాత, మేము రెండవ పిన్‌లో ఫోటో సెన్సార్ అంతరాయాన్ని కలిగి ఉన్నాము (ప్లస్ ఫంక్షన్ ప్రారంభించబడింది).
ఈ సందర్భంలో, ట్రిగ్గరింగ్ తర్వాత, ఫోటోరేసిస్టర్ యొక్క స్థితి మరొక 3 నిమిషాలు తనిఖీ చేయబడుతుంది - పునరావృత / తప్పుడు ట్రిగ్గర్‌ను తొలగించడానికి.
విలక్షణమైనది ఏమిటంటే, ఎటువంటి సర్దుబాటు లేకుండా మేఘావృతమైన వాతావరణంలో ఖగోళ సూర్యాస్తమయం తర్వాత 10 నిమిషాల తర్వాత మరియు స్పష్టమైన వాతావరణంలో 20 నిమిషాల తర్వాత సిస్టమ్ సక్రియం చేయబడుతుంది.
అవును, సిస్టమ్ ఆన్ చేయబడిన ప్రతిసారీ రీసెట్ చేయబడదు, కనీసం మొదటి HX711 మాడ్యూల్ (పిన్స్ DT-D10, SCK-A0) కనెక్ట్ చేయబడాలి

అప్పుడు స్ట్రెయిన్ గేజ్‌ల రీడింగులు తీసుకోబడతాయి, మునుపటి ఆపరేషన్ నుండి బరువులో మార్పు లెక్కించబడుతుంది (హైవ్ తర్వాత లైన్‌లోని మొదటి సంఖ్య) మరియు మొదటి యాక్టివేషన్ నుండి, బ్యాటరీ వోల్టేజ్ తనిఖీ చేయబడుతుంది మరియు ఈ సమాచారం SMSగా పంపబడుతుంది:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

అయితే, మీరు SMS అందుకున్నారా? అభినందనలు! మేము సగం ఉన్నాము! ప్రస్తుతానికి హోల్డర్ నుండి బ్యాటరీని తీసివేయవచ్చు; మాకు ఇకపై కంప్యూటర్ అవసరం లేదు.

మార్గం ద్వారా, మిషన్ కంట్రోల్ సెంటర్ చాలా కాంపాక్ట్‌గా మారింది, దానిని మయోన్నైస్ కూజాలో ఉంచవచ్చు; నా విషయంలో, 30x60x100 మిమీ (వ్యాపార కార్డుల నుండి) కొలిచే అపారదర్శక పెట్టె ఖచ్చితంగా సరిపోతుంది.

అవును, కమ్యూనికేషన్ మాడ్యూల్ కారణంగా స్లీపింగ్ సిస్టమ్ ~ 2.3mA - 90% వినియోగిస్తుంది - ఇది పూర్తిగా ఆపివేయబడదు, కానీ స్టాండ్‌బై మోడ్‌లోకి వెళుతుంది.

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

సెన్సార్‌లను తయారు చేయడం ప్రారంభిద్దాం; ముందుగా, సెన్సార్‌ల లేఅవుట్‌ను తాకిద్దాం:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

ఇది అందులో నివశించే తేనెటీగలు - టాప్ వీక్షణ యొక్క ప్రణాళిక.

సాంప్రదాయకంగా, మూలల్లో 4 సెన్సార్లు వ్యవస్థాపించబడ్డాయి (1,2,3,4)

మేము భిన్నంగా కొలుస్తాము. లేదా బదులుగా, మూడవ మార్గంలో కూడా. ఎందుకంటే BroodMinder కుర్రాళ్లు దీన్ని భిన్నంగా చేస్తారు:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

ఈ రూపకల్పనలో, సెన్సార్లు 1 మరియు 2 స్థానాల్లో ఇన్స్టాల్ చేయబడతాయి, పాయింట్లు 3,4 మరియు XNUMX బీమ్పై విశ్రాంతి ఉంటాయి.
అప్పుడు సెన్సార్లు సగం బరువును మాత్రమే కలిగి ఉంటాయి.
అవును, ఈ పద్ధతి తక్కువ ఖచ్చితత్వాన్ని కలిగి ఉంది, అయితే తేనెటీగలు అందులో నివశించే తేనెటీగలు ఒక గోడ వెంట తేనెగూడు యొక్క "నాలుకలతో" అన్ని ఫ్రేమ్‌లను నిర్మిస్తాయని ఊహించడం ఇప్పటికీ కష్టం.

కాబట్టి, సెన్సార్‌లను సాధారణంగా పాయింట్ 5కి తగ్గించాలని నేను ప్రతిపాదిస్తున్నాను - అప్పుడు సిస్టమ్‌ను రక్షించాల్సిన అవసరం లేదు, మరియు లైట్ దద్దుర్లు ఉపయోగించినప్పుడు, ఒక సెన్సార్‌తో చేయడం పూర్తిగా అవసరం.

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

సాధారణంగా, మేము HX711లో రెండు రకాల మాడ్యూల్‌లు, రెండు రకాల సెన్సార్‌లు మరియు వాటిని కనెక్ట్ చేయడానికి రెండు ఎంపికలను పరీక్షించాము - పూర్తి వీట్‌స్టోన్ బ్రిడ్జ్ (2 సెన్సార్లు) మరియు సగంతో, రెండవ భాగం 1k రెసిస్టర్‌లతో అనుబంధంగా ఉన్నప్పుడు సహనం 0.1%.
కానీ తరువాతి పద్ధతి అవాంఛనీయమైనది మరియు సెన్సార్ తయారీదారులచే కూడా సిఫార్సు చేయబడదు, కాబట్టి నేను మొదటిదాన్ని మాత్రమే వివరిస్తాను.

కాబట్టి, ఒక అందులో నివశించే తేనెటీగలు కోసం మేము రెండు స్ట్రెయిన్ గేజ్‌లు మరియు ఒక HX711 మాడ్యూల్‌ను ఇన్‌స్టాల్ చేస్తాము, వైరింగ్ రేఖాచిత్రం క్రింది విధంగా ఉంటుంది:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

ADC బోర్డు నుండి Arduino వరకు 5 మీటర్ల 4-వైర్ టెలిఫోన్ కేబుల్ ఉంది - తేనెటీగలు అందులో నివశించే తేనెటీగలు GSM పరికరాలను ఎలా ఇష్టపడవని మనకు గుర్తుంది.

సాధారణంగా, మేము సెన్సార్లపై 8cm "తోకలు" వదిలివేస్తాము, పైన ఉన్న ఫోటోలో ఉన్నట్లుగా వక్రీకృత జత మరియు టంకము వేయండి.

మీరు వడ్రంగి భాగాన్ని ప్రారంభించే ముందు, నీటి స్నానంలో కరగడానికి తగిన కంటైనర్‌లో మైనపు/పారాఫిన్ ఉంచండి.

ఇప్పుడు మేము మా కలపను తీసుకొని 100 మిమీ ప్రతి మూడు విభాగాలుగా విభజించాము

తరువాత, మేము 25 మిమీ వెడల్పు, 7-8 మిమీ లోతుతో రేఖాంశ గాడిని గుర్తించాము, హ్యాక్సా మరియు ఉలిని ఉపయోగించి అదనపు తొలగించండి - U- ఆకారపు ప్రొఫైల్ ఉద్భవించాలి.

మైనపు వేడెక్కినదా? — మేము మా ADC బోర్డులను అక్కడ ముంచుతాము - ఇది వాటిని తేమ/పొగమంచు నుండి కాపాడుతుంది:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

మేము అన్నింటినీ ఒక చెక్క బేస్ మీద ఉంచుతాము (ఇది కుళ్ళిపోకుండా ఉండటానికి క్రిమినాశక మందుతో చికిత్స చేయాలి):

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

చివరకు, మేము స్వీయ-ట్యాపింగ్ స్క్రూలతో సెన్సార్లను పరిష్కరిస్తాము:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

బ్లూ ఎలక్ట్రికల్ టేప్‌తో ఒక ఎంపిక కూడా ఉంది, కానీ మానవత్వ కారణాల వల్ల నేను దానిని ప్రదర్శించడం లేదు 😉

Arduino వైపు నుండి మేము ఈ క్రింది వాటిని చేస్తాము:

మేము మా టెలిఫోన్ కేబుళ్లను తీసివేస్తాము, రంగుల వైర్లను ఒకదానితో ఒకటి ట్విస్ట్ చేస్తాము మరియు వాటిని టిన్ చేస్తాము.

ఆ తరువాత, ఫోటోలో ఉన్నట్లుగా బోర్డు పరిచయాలకు టంకము వేయండి:

మూడు తేనెటీగల బరువును $30కి SMS-మానిటరింగ్

అంతే, ఇప్పుడు తుది తనిఖీ కోసం, మేము సర్కిల్‌లోని సెక్టార్‌లలో సెన్సార్‌లను ఉంచాము, పైన ప్లైవుడ్ ముక్క, కంట్రోలర్‌ను రీసెట్ చేయండి (మేము ఫోటోడియోడ్‌లో పెన్ క్యాప్‌తో బ్యాటరీని ఉంచాము).

అదే సమయంలో, Arduinoలో LED బ్లింక్ చేయాలి మరియు పరీక్ష SMS వస్తుంది.

తరువాత, ఫోటోసెల్ నుండి టోపీని తీసివేసి, 1.5 లీటర్ ప్లాస్టిక్ బాటిల్‌లో నీటిని నింపండి.
మేము ప్లైవుడ్‌పై బాటిల్‌ను ఉంచాము మరియు అది ఆన్ చేయబడినప్పటి నుండి ఇప్పటికే చాలా నిమిషాలు గడిచినట్లయితే, మేము ఫోటోరేసిస్టర్‌పై టోపీని తిరిగి ఉంచాము (సూర్యాస్తమయాన్ని అనుకరించడం).

మూడు నిమిషాల తర్వాత, Arduinoపై LED వెలిగిపోతుంది మరియు మీరు అన్ని స్థానాల్లో 1 కిలోల బరువు విలువలతో SMSని అందుకుంటారు.

అభినందనలు! సిస్టమ్ విజయవంతంగా సమీకరించబడింది!

మేము ఇప్పుడు సిస్టమ్‌ను మళ్లీ పని చేయమని బలవంతం చేస్తే, మొదటి బరువు నిలువు వరుసలో సున్నాలు ఉంటాయి.

అవును, వాస్తవ పరిస్థితులలో ఫోటోరేసిస్టర్‌ను నిలువుగా పైకి ఓరియంట్ చేయడం మంచిది.

ఇప్పుడు నేను ఒక చిన్న యూజర్ మాన్యువల్ ఇస్తాను:

  1. దద్దుర్లు వెనుక గోడల క్రింద స్ట్రెయిన్ గేజ్‌లను వ్యవస్థాపించండి (ముందటి వాటి క్రింద ~30 మి.మీ మందపాటి బీమ్/బోర్డ్ ఉంచండి)
  2. ఫోటోరేసిస్టర్‌ను షేడ్ చేసి, బ్యాటరీని ఇన్‌స్టాల్ చేయండి - LED బ్లింక్ అవుతుంది మరియు మీరు “ఇనీషియల్ బూట్ సరే” అనే టెక్స్ట్‌తో పరీక్ష SMSని అందుకుంటారు.
  3. దద్దుర్లు నుండి గరిష్ట దూరం వద్ద సెంట్రల్ యూనిట్ ఉంచండి మరియు తేనెటీగలతో పనిచేసేటప్పుడు వైర్లు జోక్యం చేసుకోవు.
    ప్రతి సాయంత్రం, సూర్యాస్తమయం తర్వాత, మీరు రోజు మరియు ప్రారంభించిన క్షణం నుండి మీ బరువు మార్పులతో SMS అందుకుంటారు.
    బ్యాటరీ వోల్టేజ్ 3.5Vకి చేరుకున్నప్పుడు, SMS "!!!" అనే లైన్‌తో ముగుస్తుంది. బ్యాటరీని ఛార్జ్ చేయండి!!!"
    ఒక 2600mAh బ్యాటరీపై ఆపరేటింగ్ సమయం దాదాపు ఒక నెల.
    బ్యాటరీని మార్చినట్లయితే, దద్దుర్లు బరువులో రోజువారీ మార్పులు గుర్తుకు రావు.

తరువాత ఏమిటి?

  1. గిథబ్ కోసం ఒక ప్రాజెక్ట్‌లో ఇవన్నీ ఎలా ఉంచాలో గుర్తించండి
  2. పాలివోడా వ్యవస్థలోని దద్దుర్లలో 3 తేనెటీగ కుటుంబాలను ప్రారంభించండి (లేదా ప్రజలలో కొమ్ములున్నవి)
  3. "బన్స్" జోడించండి - తేమ, ఉష్ణోగ్రత కొలిచే మరియు ముఖ్యంగా - తేనెటీగల సందడిని విశ్లేషించడం.

ప్రస్తుతానికి అంతే, భవదీయులు, ఎలక్ట్రిక్ బీకీపర్ ఆండ్రీ

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి