جدول المحتويات:

ميزان رقمي مع ESP32: 12 خطوة
ميزان رقمي مع ESP32: 12 خطوة

فيديو: ميزان رقمي مع ESP32: 12 خطوة

فيديو: ميزان رقمي مع ESP32: 12 خطوة
فيديو: مشروع عداد رقمي باستخدام الاردوينو و حساس تجنب العقبة 2024, يوليو
Anonim
Image
Image
الموارد المستخدمة
الموارد المستخدمة

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

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

الخطوة 1: الموارد المستخدمة

• Heltec Lora 32 WiFi ESP

• خلية تحميل (من 0 إلى 50 نيوتن ، باستخدام مقياس)

• 1 مقياس جهد 100 كيلو (أفضل إذا كنت تستخدم أداة تقليم متعددة الفولتات لضبط دقيق)

• 1 أمبير Op LM358

• 2 مقاومات 1M5

• مقاومات عدد 2 10 كيلو

• 1 4k7 المقاوم

• الأسلاك

• لوح حماية

• كبل USB لـ ESP

• ميزان أو وعاء ذو حجم متدرج أو أي طريقة أخرى للمعايرة.

الخطوة 2: العرض التوضيحي

برهنة
برهنة

الخطوة 3: تحميل الخلايا

خلايا التحميل
خلايا التحميل

• هم محولات القوة.

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

• يمكن تصنيفها أيضًا حسب شكل القياس (التوتر أو الانضغاط)

الخطوة 4: تحميل الخلايا ومقاييس الإجهاد

خلايا الحمل ومقاييس الإجهاد
خلايا الحمل ومقاييس الإجهاد
خلايا الحمل ومقاييس الإجهاد
خلايا الحمل ومقاييس الإجهاد

• مقاييس التمدد الورقية عبارة عن أغشية (عادة ما تكون بلاستيكية) بسلك مطبوع لها مقاومة يمكن أن تختلف باختلاف حجمها.

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

• عندما تعلق بشكل صحيح على الجسم ، فإن تشوهه يساوي تشوه الجسم. وبالتالي ، تختلف مقاومته باختلاف تشوه الجسم ، والذي بدوره يرتبط بقوة التشوه.

• تُعرف أيضًا باسم مقاييس الإجهاد.

• عند شدها بقوة شد ، تتمدد الخيوط وتضيق ، مما يزيد من المقاومة.

• عند الضغط عليها بقوة ضغط ، تتقلص الأسلاك وتتوسع ، مما يقلل من المقاومة.

الخطوة 5: جسر ويتستون

جسر يتستون
جسر يتستون

• للحصول على قياس أكثر دقة وللسماح باكتشاف أكثر كفاءة لتغير المقاومة في خلية تحميل ، يتم تجميع مقياس الضغط في جسر ويتستون.

• في هذا التكوين ، يمكننا تحديد تباين المقاومة من خلال عدم توازن الجسر.

• إذا كان R1 = Rx و R2 = R3 ، فإن مقسمات الجهد ستكون متساوية ، والجهدان Vc و Vb سيكونان متساويين ، مع توازن الجسر. وهذا هو ، Vbc = 0V ؛

• إذا كانت Rx غير R1 ، فسيكون الجسر غير متوازن وسيكون الجهد Vbc غير صفري.

• من الممكن إظهار كيفية حدوث هذا الاختلاف ، ولكن هنا ، سنقوم بإجراء معايرة مباشرة ، لربط القيمة المقروءة في ADC بالكتلة المطبقة على خلية الحمل.

الخطوة 6: التضخيم

التضخيم
التضخيم

• حتى باستخدام جسر ويتستون لجعل القراءة أكثر كفاءة ، فإن التشوهات الدقيقة في معدن خلية التحميل تنتج اختلافات صغيرة في الجهد بين Vbc.

• لحل هذا الموقف ، سوف نستخدم مرحلتين من التضخيم. واحد لتحديد الفرق والآخر لمطابقة القيمة التي تم الحصول عليها إلى ADC من ESP.

الخطوة 7: التضخيم (مخطط)

التضخيم (مخطط)
التضخيم (مخطط)

• يتم الحصول على كسب خطوة الطرح بواسطة R6 / R5 وهو نفس R7 / R8.

• يتم الحصول على مكاسب الخطوة النهائية غير المقلوبة بواسطة وعاء / R10

الخطوة 8: جمع البيانات للمعايرة

جمع البيانات للمعايرة
جمع البيانات للمعايرة
جمع البيانات للمعايرة
جمع البيانات للمعايرة

• بمجرد التجميع ، نقوم بتعيين الكسب النهائي بحيث تكون قيمة أكبر كتلة مقاسة قريبة من القيمة القصوى لـ ADC. في هذه الحالة ، بالنسبة إلى 2 كجم مطبق في الخلية ، كان جهد الخرج حوالي 3 فولت 3.

• بعد ذلك ، نقوم بتغيير الكتلة المطبقة (المعروفة من خلال الميزان ولكل قيمة) ، ونربط LEITUR من ADC ، للحصول على الجدول التالي.

الخطوة 9: الحصول على علاقة دالة بين الكتلة المقاسة وقيمة ADC التي تم الحصول عليها

الحصول على علاقة دالة بين الكتلة المقاسة وقيمة ADC التي تم الحصول عليها
الحصول على علاقة دالة بين الكتلة المقاسة وقيمة ADC التي تم الحصول عليها

نستخدم برنامج PolySolve للحصول على كثير الحدود الذي يمثل العلاقة بين الكتلة وقيمة ADC.

الخطوة 10: كود المصدر

كود المصدر - #Includes

الآن بعد أن أصبح لدينا كيفية الحصول على القياسات ومعرفة العلاقة بين ADC والكتلة المطبقة ، يمكننا الانتقال إلى كتابة البرنامج بالفعل.

// Bibliotecas para utilização do display oLED # include // Necessário apenas para o Arduino 1.6.5 e anterior # include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

كود المصدر - #Defines

// Os pinos do OLED estão conectados ao ESP32 pelos seguintes GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 # تعريف SDA 4 # تعريف SCL 15 # تعريف RST 16 // RST deve ser ajustado برمجيات بور

المصدر - المتغيرات والثوابت العالمية

عرض SSD1306 (0x3c ، SDA ، SCL ، RST) ؛ // Instanciando e ajustando os pinos do objeto "عرض" const int amostras = 10000 ؛ // número de amostras coletadas para a média const int pin = 13 ؛ // بينو دي ليتورا

كود المصدر - الإعداد ()

إعداد باطل () {pinMode (pin، INPUT)؛ // pino de leitura analógica Serial.begin (115200) ؛ // iniciando a serial // Inicia o display.init () ؛ display.flipScreenVertically () ، // Vira a tela verticalmente}

كود المصدر - حلقة ()

الحلقة الفارغة () {float medidas = 0.0؛ // variável para manipular as medidas float massa = 0.0 ؛ // varável para armazenar o valor da massa // inicia a coleta de amostras do ADC لـ (int i = 0 ؛ i (5000)) // se está ligado a mais que 5 segundos {// Envia um CSV contendo o instante، a medida média do ADC e o valor em gramas // para a Serial. Serial.print (مللي () / 1000.0 ، 0) ؛ // instante em segundos Serial.print ("،")؛ Serial.print (medidas، 3)؛ // valor médio obido no ADC Serial.print ("،")؛ Serial.println ((ماسا) ، 1) ؛ // massa em gramas // Escreve no buffer do display.clear ()؛ // Limpa o buffer تعرض // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT) ؛ // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16) ؛ // Escreve no buffer لا يعرض Massa display.drawString (0، 0، "Massa:" + String (int (massa)) + "g")؛ // escreve no buffer o valor do ADC display.drawString (0، 30، "ADC:" + String (int (medidas))) ؛ } else // se está ligado a menos de 5 segundos {display.clear ()؛ // limpa o buffer تعرض display.setTextAlignment (TEXT_ALIGN_LEFT) ؛ // Ajusta o alinhamento para a esquerda display.setFont (ArialMT_Plain_24) ؛ // ajusta a fonte para Arial 24 display.drawString (0، 0، "Balança") ؛ // escreve no buffer display.setFont (ArialMT_Plain_16)؛ // Ajusta a fonte para Arial 16 display.drawString (0، 26، "ESP-WiFi-Lora") ؛ // escreve no buffer} display.display ()؛ // transfere o buffer para o display delay (50)؛ }

كود المصدر - حساب الوظيفة

// função para cálculo da massa obida pela regressão // usando oPolySolve تعويم calculaMassa (عوامة Medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * 0738 * -3.71088 medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * ميديدا. }

الخطوة 11: البدء والقياس

البدء والقياس
البدء والقياس

الخطوة 12: الملفات

قم بتنزيل الملفات

انا لا

بي دي إف

موصى به: