رصد الرسائل القصيرة من وزن ثلاث خلايا مقابل 30 دولار

الشعار الخاص بي


لا ، هذا ليس عرضًا تجاريًا ، مثل تكلفة مكونات النظام التي يمكنك جمعها بعد قراءة المقال.


خلفية صغيرة:


منذ بعض الوقت ، قررت الحصول على النحل ، وظهروا ... لموسم كامل ، ولكن لم يخرج من فصل الشتاء.
وهذا على الرغم من حقيقة أن كل شيء كان يبدو على ما يرام - إغراء الخريف ، والدفء قبل البرد.
كانت الخلية عبارة عن نظام دادان الخشبي الكلاسيكي مع 10 إطارات من لوحة 40 ملم.
لكن هذا الشتاء ، حتى مربي النحل ذوي الخبرة فقدت أكثر من المعتاد بسبب تقلبات درجة الحرارة.


لذلك جاءت فكرة نظام مراقبة حالة الخلية.
بعد نشر العديد من المقالات حول Habr-e والتواصل في منتدى مربي النحل ، قررت الانتقال من البسيط إلى المعقد.
الوزن هو المعلمة التي لا جدال فيها ، ولكن كقاعدة عامة ، تراقب الأنظمة الحالية خلية "مرجعية" واحدة فقط.
إذا حدث خطأ ما معه (على سبيل المثال ، رحلة سرب ، مرض النحل) ، فإن المؤشرات تصبح غير ذات صلة.


لذلك ، تقرر مراقبة تغيير وزن ثلاث خلايا في وقت واحد باستخدام متحكم واحد ، وإضافة "الكعك" الآخر بعده.
والنتيجة هي نظام مستقل ذات مدة تشغيل تبلغ حوالي شهر بشحنة واحدة من بطارية 18650 وإرسال إحصائيات مرة واحدة يوميًا.
حاولت تبسيط التصميم قدر الإمكان ، بحيث يمكن تكراره حتى بدون مخططات ، وفقًا لصورة واحدة.


منطق العمل على النحو التالي: في البداية / إعادة تعيين الأولى ، يتم تخزين قراءات أجهزة الاستشعار المثبتة تحت خلايا في EEPROM.
علاوة على ذلك ، كل يوم ، بعد غروب الشمس ، "يستيقظ" النظام ، ويقرأ الشهادة ويرسل رسالة نصية قصيرة مع تغيير في الوزن في اليوم ومنذ لحظة تشغيله.
بالإضافة إلى ذلك ، يتم إرسال قيمة الجهد للبطارية ، وعندما تنخفض إلى 3.5 فولت ، يتم إصدار تحذير حول الحاجة إلى الشحن ، لأن وحدة الاتصالات أقل من 3.4 فولت لا تعمل ، وقراءات الوزن "تطفو" بالفعل.


"هل تتذكر كيف بدأ كل شيء. كان كل شيء أول مرة ومرة ​​أخرى."
كيف تبدأ
نعم ، كانت هذه المجموعة من "الحديد" هي الأصل ، على الرغم من أن خلايا التحميل والأسلاك فقط هي التي بقيت على قيد الحياة حتى الإصدار النهائي ، ولكن أول الأشياء أولاً.
في الواقع ، ليست هناك حاجة إلى حاوية الكابل ، فقد اتضح أنها بنفس سعر 30 مترًا.


إذا لم تكن خائفًا من تفكيك 3 مصابيح SMD-LED ونصف نقطة لحام عادي (مخرجات) - فانتقل!


لذلك ، نحن بحاجة إلى مجموعة المعدات / المواد التالية:


  1. اردوينو برو ميني 3V
    يجب الانتباه إلى رقاقة المحول الخطي - يجب أن تكون بالضبط 3.3 فولت - على رقاقة وضع العلامات KB 33 / LB 33 / DE A10 - اختلط الصينيون شيئًا معي ، والدفعة بأكملها
    تحولت لوحات الدوائر في المتجر إلى أن تكون مع منظمات 5 فولت و 16 MHz الكوارتز.
  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 غير القياسي من المنطق ، والذي يتطلب التنسيق حتى مع اردوينو بثلاثة فولت.
    بالإضافة إلى ذلك ، فإن الحل من AiThinker لديه الحد الأدنى من استهلاك الطاقة (عند إرسال الرسائل القصيرة ، لم أر تيارًا يتجاوز 100 مللي أمبير).
  4. هوائي GSM GPRS 3DBI (في الصورة أعلاه - وشاح مستطيل مع "ذيل" ، لمدة 9 ساعات)
  5. حزمة بداية لمشغل لديه تغطية جيدة في موقع المنحل الخاص بك.
    نعم ، يجب أولاً تنشيط الحزمة في هاتف عادي ، وتعطيل طلب رقم التعريف الشخصي عند المدخل ، وتجديد الحساب.
    الآن هناك العديد من الخيارات مع أسماء في أسلوب "Sensor" و "IoT" - لديهم رسوم شهرية أقل قليلاً.
  6. دوبون سلك الأم الأم 20CM - 3 أجهزة الكمبيوتر. (لتوصيل Arduino بـ USB-TTL)
  7. 3PC. HX711 - ADC للموازين
  8. 6 خلايا تحميل يصل وزنها إلى 50 كجم
  9. 15 مترًا من كابل الهاتف رباعي النواة - لتوصيل وحدات الوزن مع ARDUINO.
  10. GL5028 photoresistor (هذا مهم ، مع مقاومة داكنة من 1MOH ومقاومة للضوء من 10-20kOhm) واثنين من المقاومات التقليدية 20K
  11. قطعة من الشريط اللاصق بسماكة 18x18mm على الوجهين - لربط اردوينو بوحدة الاتصالات.
  12. حامل البطارية 18650 ، وفي الواقع ، البطارية نفسها ~ 2600mAh.
  13. القليل من الشمع أو البارافين (شمعة مصباح مصباح العطر) - لحماية الرطوبة HX711
  14. قطعة من شعاع خشبي 25x50x300mm لقاعدة خلايا الحمل.
  15. اثني عشر براغي ذاتية التنصت مع غسالة ضغط 4.2 × 19 مم لتركيب أجهزة استشعار على القاعدة.

يمكن الحصول على البطارية من تفكيك أجهزة الكمبيوتر المحمولة - أرخص عدة مرات من الجديدة ، وستكون السعة أكثر بكثير من سعة UltraFire الصينية - حصلت على 1500 مقابل 450 (هذا من جدار الحماية 6800 ؛-)


بالإضافة إلى ذلك ، سوف تحتاج إلى أيد ملتوية وحديد لحام EPSN-25 وروزين و POS-60.


لحام الحديد


قبل 5 سنوات ، استخدمت مكواة لحام سوفيتية بلدغة نحاسية (لم أحصل على محطات لحام - لقد أخذتها لإجراء اختبار ، وأكملت دائرة EPSN).
ولكن بعد فشله والعديد من الصينيين الوحشية تحت (د) أشجار عيد الميلاد ، كان يسمى الأخير سبارتا - وهو شيء قاسي مثل توقف الاسم
على منتج مع وحدة تحكم في درجة الحرارة.


لذلك دعونا نذهب!


GSM A6


للبدء ، يتم لحام مصباحين من وحدة GSM (المكان الذي كانا فيه دائريان في شكل بيضاوي برتقالي)
نقوم بإدخال بطاقة SIM مع منصات في لوحة الدوائر المطبوعة ، ويشار إلى الزاوية المشطوفة في الصورة بالسهم.


اردوينو برو ميني 3V


ثم نقوم بتنفيذ إجراء مماثل باستخدام مؤشر LED على لوحة Arduino (البيضاوي على يسار الشريحة المربعة) ،
لحام مشط إلى أربعة اتصالات (1) ،
نحن نأخذ اثنين من المقاومات 20k ، ونفصل الخيوط من جانب واحد ، ونلوي الفتحة في فتحة التلامس A5 ، ويؤدي المتبقي في RAW و GND arduinki (2) ،
نقوم بتقصير المقاوم الضوئي إلى 10 مم ولحامه لاستنتاجات لوحات GND و D2 (3).


الآن حان الوقت شريط كهربائي أزرق شريط ذو جانبين - قم بإلصاقه على حامل بطاقة SIM بوحدة الاتصالات ، وعلى رأسه - اردوينو - يواجه الزر الأحمر (الفضي) لنا ويقع فوق بطاقة SIM.


لحام الطاقة: زائد من مكثف وحدة الاتصالات (4) إلى دبوس اردوينو RAW.
والحقيقة هي أن وحدة الاتصالات نفسها تتطلب 3.4-4.2V لإمدادها بالطاقة ، ويتم توصيل جهة اتصال PWR الخاصة بها بمحول تنحى ، لذلك يجب أن يتم تشغيل جهد التشغيل من خلال جهد li-ion لتجاوز هذا الجزء من الدائرة.


في arduino ، على العكس من ذلك ، نبدأ في تزويد الطاقة من خلال محول خطي - في التيارات المنخفضة ، يكون انخفاض الجهد المتسرب هو 0.1V.
ولكن عن طريق تطبيق الجهد الثابت على وحدات HX711 ، نتخلص من الحاجة إلى تحسينها تحت جهد منخفض (وفي نفس الوقت نزيد الضوضاء نتيجة لهذه العملية).


ثم نلعب وصلات العبور (5) بين جهات اتصال PWR-A1 و URX-D4 و UTX-D5 وأرض GND-G (6) وأخيراً الطاقة من حامل البطارية 18650 (7) ، قم بتوصيل الهوائي (8).
نحن الآن نأخذ محول USB-TTL ونربط بين RXD-TXD و TXD-RXD و GND-GND جهات اتصال مع أسلاك دوبونت إلى ARDUINO (مشط 1):


الإصدار الأول


في الصورة أعلاه - الإصدار الأول (من ثلاثة) من النظام ، والذي تم استخدامه لتصحيح الأخطاء.


والآن لبعض الوقت نتخلص من مكواة اللحام وننتقل إلى جزء البرنامج.
سوف أصف تسلسل الإجراءات لنظام التشغيل Windows:
أولاً ، تحتاج إلى تنزيل وتثبيت / فك ضغط برنامج Arduino IDE - الإصدار الحالي هو 1.8.9 ، لكنني أستخدم 1.6.4


للبساطة ، نقوم بفك ضغط الأرشيف في المجلد C: \ arduino- "your_version_number" ، بداخله سيكون لدينا / dist ، برامج التشغيل ، الأمثلة ، الأجهزة ، java ، lib ، المكتبات ، المرجع ، مجلدات الأدوات ، بالإضافة إلى ملف arduino القابل للتنفيذ (من بين أمور أخرى).


نحتاج الآن إلى مكتبة للعمل مع HX711 ADC - الزر الأخضر "استنساخ أو تنزيل" - قم بتنزيل ZIP.
يتم وضع المحتوى (المجلد HX711-master) في الدليل C: \ arduino- "your_version_number" \ libraries


وبالطبع ، فإن برنامج تشغيل USB-TTL هو من نفس الجيثب - من الأرشيف الذي تم فك حزمه ، يتم ببساطة بدء تشغيل ملف SETUP المثبت.


حسنًا ، قم بتشغيل وتكوين البرنامج C: \ arduino- "your_version_number" \ arduino


واجهة البرنامج


نذهب إلى عنصر "الأدوات" - حدد لوحة "Arduino Pro أو Pro Mini" ، معالج Atmega 328 3.3V 8 MHz ، والمنفذ هو الرقم غير نظام 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 ، نضع رقم الهاتف الخاص بنا مع رمز البلد الذي سيتم إرسال الرسائل القصيرة إليه.


الآن ، انقر فوق زر الاختيار (أعلى الرقم في لقطة الشاشة أعلاه) - إذا كان التجميع أدناه (أسفل الرقم الثلاثي في ​​لقطة الشاشة) ، فيمكننا وميض متحكم الشاشة.


لذلك ، USB-TTL متصل بـ ARDUINO والكمبيوتر ، وضعنا البطارية المشحونة في الحامل (عادة ما تكون على اردوينو جديد ، يبدأ الصمام في الوميض مرة واحدة في الثانية).


الآن البرامج الثابتة - نحن نتدرب على الضغط على الزر الأحمر (الفضي) في المتحكم الدقيق - يجب القيام بذلك بدقة في لحظة معينة !!!
هل هناك انقر فوق الزر "تحميل" (أعلى الاثنين في لقطة الشاشة) ، وانظر بعناية في الجزء السفلي من الواجهة (أسفل الشاشات الثلاث).
بمجرد استبدال "التحويل البرمجي" للنقش بـ "تنزيل" - اضغط على الزر الأحمر (إعادة الضبط) - إذا كان كل شيء على ما يرام - يومض محول USB-TTL بفرح ، والنقش "تم تنزيله" في أسفل الواجهة


الآن بينما نحن في انتظار وصول اختبار SMS على الهاتف ، سأخبرك بكيفية عمل البرنامج:


الإصدار الثاني من موقف التصحيح


في الصورة - الإصدار الثاني من موقف التصحيح.


في المرة الأولى التي يتم فيها تشغيل النظام ، يتحقق من البايتين 500 و 501 من EEPROM ؛ وإذا كانت متساوية ، فلن يتم تسجيل بيانات المعايرة ، وتنتقل الخوارزمية إلى قسم الإعداد.
يحدث نفس الشيء إذا تم تشغيل مضواء مقاومة الضوء (بغطاء من القلم) - تم تنشيط وضع إعادة تعيين المعلمة.


يجب تثبيت مقاييس الضغط بالفعل تحت خلايا النحل ، نظرًا لأننا نصلح ببساطة المستوى الأولي من الصفر ثم نقيس التغير في الوزن (ستأتي الأصفار الآن ، حيث أننا لم نربط أي شيء بعد).
في اردوينو ، يومض المصباح المدمج في دبوس 13.
في حالة عدم حدوث إعادة التعيين ، يضيء مؤشر LED لمدة 12 ثانية.
بعد ذلك ، يتم إرسال اختبار SMS مع رسالة "INITIAL BOOT OK" والجهد البطارية.
يتم إيقاف تشغيل وحدة الاتصالات ، وبعد 3 دقائق تضع لوحة Arduino لوحات HX711 ADC في وضع السكون وتغفو بمفردها.
تم إجراء مثل هذا التأخير حتى لا يتم التداخل مع وحدة GSM العاملة (بعد إيقاف تشغيله ، يصبح "الخطوط" لبعض الوقت).


علاوة على ذلك ، لدينا مقاطعة على جهاز استشعار ضوئي يعمل على الدبوس الثاني (بالإضافة إلى تمكين الرفع بواسطة وظيفة السحب).
في هذه الحالة ، بعد التعثر لمدة 3 دقائق أخرى ، يتم فحص حالة المقاوم للضوء لاستبعاد الإيجابيات المتكررة / الخاطئة.
ما هو مميز ، دون أي تعديل ، يعمل النظام بعد 10 دقائق من غروب الشمس الفلكي في الطقس الغائم وبعد 20 في الطقس الصافي.
نعم ، حتى في كل مرة لا يتم فيها إعادة ضبط النظام ، يجب توصيل أول وحدة HX711 على الأقل (المسامير DT-D10 ، SCK-A0)


ثم يتم أخذ قراءات خلية الحمل ، يتم حساب تغيير الوزن من العملية السابقة (الرقم الأول في السطر بعد Hive) ومن البداية الأولى ، يتم فحص جهد البطارية ويتم إرسال هذه المعلومات في شكل رسائل نصية قصيرة:


نظام المشكلة


بالمناسبة ، هل تلقيت رسالة قصيرة؟ تهانينا! نحن في منتصف الطريق! بينما يمكن إزالة البطارية من الحامل ، لن نحتاج إلى كمبيوتر إضافي.


بالمناسبة ، اتضح أن مركز التحكم في الطيران مضغوط لدرجة أنه يمكن أن يتلاءم مع جرة المايونيز ، في حالتي ، حجم مربع شفاف 30 × 60 × 100 مم (من بطاقات العمل) مناسب تمامًا.


نعم ، يستهلك نظام النوم ~ 2.3mA - 90 ٪ بسبب وحدة الاتصالات - لا ينطفئ تماما ، ولكن يذهب إلى وضع الاستعداد.


ليس هيوستن


ننتقل إلى تصنيع المستشعرات ، للبدء ، دعنا نتطرق إلى تصميم المستشعرات:


موقع الاستهلاك


هذه هي خطة عرض خلية النحل.


كلاسيكي ، يتم تثبيت 4 أجهزة استشعار في الزوايا (1،2،3،4)


سوف نقيس بشكل مختلف. أو بالأحرى ، حتى في الثالث. كما يفعل الرجال من BroodMinder بشكل مختلف:


BroodMinder


في هذا التصميم ، يتم تثبيت أجهزة الاستشعار في الموضعين 1 و 2 ، والنقاط 3.4 تستند إلى شعاع.
ثم فقط نصف الوزن يقع على أجهزة الاستشعار.
نعم ، هذه الطريقة لها دقة أقل ، لكن من الصعب تخيل أن النحل تراكمت جميع الأطر مع "ألسنة" من قرص العسل على طول جدار واحد من الخلية.


لذا ، أقترح تقليل المستشعرات إلى النقطة 5 تمامًا - ثم ليست هناك حاجة إلى حماية النظام ، وعند استخدام خلايا النحل الضوئية ، من الضروري تمامًا استخدام مستشعر واحد.


إحصاء وخيارات اإلطفاء


بشكل عام ، قمنا باختبار نوعين من الوحدات النمطية على HX711 ، ونوعين من أجهزة الاستشعار ، وخيارين لتوصيلها - بجسر ويتستون الكامل (مستشعران) ونصف عندما يستكمل الجزء الثاني بمقاومات 1 كيلو بتفاوت قدره 0.1٪.
لكن الطريقة الأخيرة غير مرغوب فيها ولا ينصح بها حتى من قبل الشركات المصنعة لأجهزة الاستشعار ، لذلك سوف أصف الطريقة الأولى فقط.


لذلك ، في خلية واحدة ، سنقوم بتثبيت خليتين للتحميل ووحدة HX711 واحدة ، ويكون مخطط الأسلاك كما يلي:



من لوحة ADC إلى اردوينو ، يوجد 5 أمتار من كبل هاتف رباعي النوى - نتذكر كيف لا يحب النحل أجهزة GSM في الخلية .


بشكل عام ، على أجهزة الاستشعار التي نتركها "ذيول" من 8 سم ، نقوم بتنظيف الزوج الملتوية ونفكك كل شيء كما في الصورة أعلاه.


مراقبة قطبية!


أكرر مرة أخرى - لاحظ قطبية!


إذا كان السلك الأسود لخلية التحميل متصلاً بـ E + للوحة HX711 ، فإن اللون الأحمر ينتقل إلى A +


وإلا ، فبدلاً من زيادة الوزن ، ستتلقى تخفيضًا ، لكن لا يهم ، في هذه الحالة ، يكفي تبديل الأسلاك الحمراء من خلايا الحمل (A + و A-) على لوحة ADC.


قبل البدء في نجارة ، ضع الشمع / البارافين في وعاء مناسب للذوبان في حمام مائي.


الآن نأخذ شعاعنا ونقسمه إلى ثلاثة أجزاء من 100 مم


بعد ذلك ، نقوم بتمييز الأخدود الطولي بعرض 25 مم ، وعمق 7-8 ملم ، باستخدام منشار أو إزميل نقوم بإزالة الفائض - يجب أن يظهر ملف تعريف على شكل حرف U.


الشمع استعد؟ - نراجع ألواح ADC لدينا - هذا سيحميهم من الرطوبة / الضباب:


حماية ADC ضد الرطوبة


لدينا كل شيء على قاعدة خشبية (من الضروري علاجه بمطهر من التسوس):


جمعية


وأخيرا ، نقوم بإصلاح أجهزة الاستشعار مع مسامير:


جهاز استشعار جاهز


كان هناك خيار آخر بشريط كهربائي أزرق ، لكن لأسباب إنسانية لا أحمله ؛-)


من جانب اردوينو نقوم بما يلي:


نقوم بتنظيف كابلات الهاتف الخاصة بنا ونلف الأسلاك الملونة معًا.


بعد ذلك ، نحن نلحم جهات اتصال اللوحة كما في الصورة:


خاتمة


هذا كل شيء ، الآن من أجل الفحص النهائي ، ضع المستشعرات في قطاعات الدائرة ، في الأعلى - قطعة من الخشب الرقائقي ، وبدون وحدة تحكم (نضع البطارية مع غطاء على الثنائي الضوئي من القلم).


في هذه الحالة ، يجب أن تومض مؤشر LED الموجود في arduino ويجب أن تأتي رسالة اختبار SMS.


ثم نقوم بإزالة الأغطية من الخلية الكهروضوئية ، ونذهب لجمع المياه في زجاجة بلاستيكية سعة 1.5 لتر.
وضعنا الزجاجة على الخشب الرقائقي ، وإذا مرت عدة دقائق من تشغيله ، فضع الغطاء مرة أخرى على المقاوم الضوئي (محاكاة غروب الشمس).


بعد ثلاث دقائق ، سوف يضيء مصباح LED في arduino ، ويجب أن تتلقى رسالة نصية قصيرة تبلغ قيمتها حوالي 1 كجم في جميع المواضع.


تهانينا! يتم تجميع النظام بنجاح!


إذا نجحنا الآن في عمل النظام مرة أخرى ، فعندئذٍ في العمود الأول من الوزن نحصل على أصفار.


نعم ، في الظروف الحقيقية ، من المستحسن توجيه مقاوم الضوء صعوديًا عموديًا.


الآن سأقدم لك دليل مختصر حول استخدام:


  1. قم بتركيب أجهزة قياس الضغط تحت الجدران الخلفية للخلايا (تحت الجزء الأمامي ، استبدل شعاعًا / لوحًا بسمك 30 مم)
  2. قم بتظليل المقاوم الضوئي ووضع البطارية في - يجب أن يضيء مؤشر LED ويجب أن يأتي اختبار SMS مع النص "INITIAL BOOT OK"
  3. ضع الوحدة المركزية قدر الإمكان من خلايا النحل وحتى لا تتداخل الأسلاك عند العمل مع النحل.
    كل مساء ، بعد غروب الشمس ، ستصل الرسائل النصية القصيرة مع تغيير في الوزن كل يوم ومن وقت الإطلاق.
    عندما يصل الجهد الكهربائي للبطارية إلى 3.5 فولت ، ستنتهي الرسالة النصية القصيرة "!!! CHARGE BATTERY !!!"
    وقت التشغيل من بطارية واحدة بسعة 2600mAh حوالي شهر.
    في حالة استبدال البطارية ، لا يتم تذكر التغييرات اليومية في وزن خلايا النحل.

ما التالي؟


  1. لمعرفة كيفية وضع كل هذا في مشروع لـ github
  2. ابدأ 3 عائلات نحلة في خلايا نظام Palivoda (أو الأشخاص الموقوفين)
  3. إضافة "الكعك" - قياس الرطوبة ودرجة الحرارة ، والأهم من ذلك - تحليل للنغمات الطنانة.

دعونا نحتل كل شيء ، مع خالص تحياتك ، مربي النحل الكهربائي أندريه


ملاحظة: بالنسبة للمنشورات الجديدة حول هذا الموضوع ، انظر beefree.xyz

Source: https://habr.com/ru/post/ar444326/


All Articles