Inhaltsverzeichnis:
- Schritt 1: فكرة مختصره للمشروع
- Schritt 2: العناصر المستخدمه للمشروع
- Schritt 3: تشغيل المشروع باللوح التجريبي
- Schritt 4: تصميم PCB
- Schritt 5: الخطوه ما قبل الاخيره
- Schritt 6: الخطوة الاخيره
- Schritt 7: الكود مع شرحها
Video: Temperatur messen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
هو قياس درجه الحراره باستخدام الكاميرا االحراريه
Schritt 1: فكرة مختصره للمشروع
في ظل الازمه والجائحه التي يمربها العالم اجمع في محاربه الكوفيد 19 ونسأل الله السلامه والعافيه للجميع وارحم من توفاه الله
فمشروعنا يحتوى على 5 عناصر اساسيه ، وهي كاميرا تقيس ، تظهر النتائج وظهر درجه الحراره الداخليه بالجسم يرمز الاحمر درجه حراره مرتفعه اللون يدل على هناك درجه مرتفعه وشاشه تعطي نتائج درجه الحراره
Schritt 2: العناصر المستخدمه للمشروع
1: شاشه TFT لعرض حراره الجسمه وهي متصله م عالكاميرا الحراريه التي تظهر ايضا درجه الحراره
2 شاشه LCD وضعنا الشاشه لعرض درجه الحراره رقميا لكي تظهر الحراره رقميا
3 حساس المسافه: وذلك اذا استشعر حساس المسافه جسم من امامه مباشرة احتساب درجه الحراره عن طريق الكاميرا الكاميراه
4: الكاميرا: استخدام الحرارية من طريق.
5 ميجا
Schritt 3: تشغيل المشروع باللوح التجريبي
التست بورد: هو لوح بلستيكي مسطح الشكل يضم بداخليه نقاط معدنيه متصله على شكل صفوف واعمده تستخدم الدوائر الالكترونيه
وظيفة التست بورد باختصار: …
Schritt 4: تصميم PCB
تصميم Leiterplatte مهم في حال اردت ان المشروع
Platine:..هي لوح مسطح.
Schritt 5: الخطوه ما قبل الاخيره
بعد ما تمت عمليه الطباعه والتحميض و التخريم وتسجيل الاسلاك بالشكل اللائق يكون الشكل الخرجي اصغر ممكن وشكل متناقس وجميل
Schritt 6: الخطوة الاخيره
الخطوة الاخيره و هي التاكد من المشروع بالشكل المطلوب بعد أن تم وضعه في الصندوق في الشكل المناسب و متناسق
Schritt 7: الكود مع شرحها
LCD SD
************************************************* ** ** ************************** هذه مكتبة لكاميرا AMG88xx GridEYE 8x8 IR
هذا الرسم كاميرا حرارية 64 مع مستشعر GridEYE وشاشة 128x128 tft
فقطًا للعمل مع اندلاع Adafruit AMG88 --
I2C. I2C للجهاز هو 0x69
Adafruit الموارد هذا الكود المصدر ، يرجى دعم أجهزة Adafruit والمصدر المفتوح عن طريق شراء المنتجات من Adafruit!
بقلم دين ميلر للصناعات Adafrucht. ترخيص BSD ، تضمين نص في نص يصنف في إعادة توزيع ************************************* * ************** ************************** / // هذه المكتبات استدعاءها في بداية الكود عمليةهل كتابة الكود # تضمين // مكتبة الرسومات الأساسية # تضمين // مكتبة خاصة بالأجهزة # تضمين # تضمين # تضمين # تضمين # تضمين // # تضمن # تضمين
// هذه تعريفات لأماكن اتصال الحساسات بالأردوينو #define TFT_CS 53 // رقاقة حدد لشاشة TFT #define TFT_RST 9 // يمكنك أيضًا توصيل هذا بإعادة تعيين Arduino // في هذه الحالة ، اضبط هذا # تعريف الدبوس على 0! #define TFT_DC 8 #define trig 12 # تعريف صدى 11 كاردبين int = 10 ؛
اللون الأزرق الأزرق // المبرمجين للمستقيم (سيكون أزرق على الشاشة) #define MINTEMP 22
الشاشة باللون الأحمر // المدى العالي للمستشعر (سيكون أحمر على الشاشة) # تعريف MAXTEMP 34
// هذا الأمر يقوم بتعريفه SR04 sr04 = SR04 (Echo ، trig) ؛
عنصر عناصر الصورة ، حجمه الأبرز // هذا الأمر ، يقوم بتعقب ذلك ، كريستال_I2C lcd (0x27 ، 16 ، 2) ؛ // قاسية عمق عنوان LCD على 0x27 لعرض 16 حرفًا وخطين // Flüssigkristall-LCD (27 ، 28 ، 29 ، 30 ، 31 ، 32) ؛
ملف الملف ؛
يتم حفظ المسافة فيه مسافة طويلة
0xDEA0, 0xDE80, 0xDE80, 0xE660, 0xE640, 0xE620, 0xE600, 0xE5E0, 0xE5C0, 0xE5A0, 0xE580, 0xE560, 0xE540, 0xE520, 0xE500, 0xE4E, 0x20, 0xE4C0, E4A0, 0x4E, 0xEBA0, 0xEB80, 0xEB60, 0xEB40, 0xEB20, 0xEB00, 0xEAE0, 0xEAC0, 0xEAA0, 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0F160, 0xF1, 0xF180, 0F160, 0xF1, 0xF180, 0F160, 0xF060, 0xF040, 0xF020, 0xF800,}; // هذا الأمر يقوم بتعقبه Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS ، TFT_DC ، TFT_RST) 0xE5A0, 0xE580, 0xE560, 0xE540, 0xE520, 0xE500, 0xE4E0, 0xE4C0, 0xE4A0, 0xE480, 0xE460, 0xEC40, 0xEC20, 0xEC00, 0xEBE0, 0xEBC0, 0xEBA0, 0xEB80, 0xEB60, 0xEBA0, 0xEB80, 0xEB, 0x00, 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0xF160, 0xF140, 0xF100, 0xF0E0, 0xF0C0, 0xF0A0, 0xF080, 0xF060, 0xF040, 0xF020, 0xF0800, 0xF040, 0xF020, // هذا الأمر يقوم بتعقبه Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS TFT_DC ، TFT_RST) 0xE5A0, 0xE580, 0xE560, 0xE540, 0xE520, 0xE500, 0xE4E0, 0xE4C0, 0xE4A0, 0xE480, 0xE460, 0xEC40, 0xEC20, 0xEC00, 0xEBE0, 0xEBC0, 0xEBA0, 0xEB80, 0xEB60, 0xEBA0, 0xEB80, 0xEB, 0x00 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0xF160, 0xF140, 0xF100, 0xF0E0, 0xF0C0, 0xF0A0, 0xF080, 0xF060, 0xF040, 0xF020, // هذا الأمر يقوم بتعقبه Adafruit_ST7735 TFT = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_RST) Ich, 0xEB60, 0xEB40, 0xEB20, 0xEB00, 0xEAE0, 0xEAC0, 0xEAA0, 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0xF160, 0xF140, 0 xF0100, 0xF160, 0xF140, 0F100, 0xF1, 0xF020, 0xF800 ،} ؛ // هذا الأمر يقوم بتعقبه Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS ، TFT_DC ، TFT_RST), 0xEB60, 0xEB40, 0xEB20, 0xEB00, 0xEAE0, 0xEAC0, 0xEAA0, 0xEA80, 0xEA60, 0xEA40, 0xF220, 0xF200, 0xF1E0, 0xF1C0, 0xF1A0, 0xF180, 0xF160, 0xF140, 0 xF0100, 0xF160, 0xF140, 0F100, 0xF1, 0xF020, 0xF800 ،} ؛ // هذا الأمر يقوم بتعقبه Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS ، TFT_DC ، TFT_RST)
// هذا الأمر يقوم بتعريف عنصر الكاميرا الحرارية Adafruit_AMG88xx amg ؛
// هذه متغيرات لتحديد الكاميرا الحرارية تأخير وقت طويل بدون توقيع ؛ [AMG88xx_PIXEL_ARRAY_SIZE] uint16_t displayPixelWidth ، displayPixelHeight ؛
// هذا التابع يعمل على بدء تشغيل عند الأردوينو الإعداد باطل () {// هذا الأمر يقوم بفتح منفذ تسلسلي بين الأردوينو والبدء في الأخطاء البيانات التي تلقيها من الحساسات Serial.begin (9600) ؛
Serial1.begin (9600) ؛ //////////////////////////////////////////////// //// //// ////////// // الأوامر التي تقوم بعرض البيانات //////////////////////// ////// /////////////////////////// ////////// lcd.init () ، lcd.init () ، اضاءه خلفيه ال سى دى () ؛ //////////////////////////////////////////////// //// //// //////////
// هذا الأمر يقوم بعرض جملة على شاشة الكمبيوتر توضح أن الكاميرا الحرارية Serial.println (F ("الكاميرا الحرارية AMG88xx!")) ؛
//////////////////////////////////////////////// //// //// ////////// // الأوامر التي تقوم برفع الشاشة وعرض طولها وعرضها //////////////////// //// ////////////////////////////// ////////// tft.initR (INITR_144GREENTAB) ، // تهيئة تهيئة ST7735S tft.fillScreen (ST7735_BLACK) ، displayPixelWidth = tft.width () / 8 ؛ displayPixelHeight = tft.height () / 8 ؛ //tft.set الدوران (3) ، /////////////////////////////////////// ///// ///////////// //////////
// هذا متغير يتم حفظ حالة الكاميرا الحرارية تعمل / لا تعمل حالة منطقية
// هذا الأمر ، يقوم من أنه يستخدم الكاميرا بشكل صحيح // ، يظهر هذا الحالة. إذا (! الحالة) {Serial.println ("تعذر العثور على مستشعر AMG88xx صالح ، تحقق من تسوية!") ؛ (1) ؛ }
Serial.println ("- اختبار الكاميرا الحرارية -") ؛ //lcd.begin(16 ، 2) (100) ؛ // دع المستشعر يصل
//////////////////////////////////////////////// //// //// /////// // الأوامر تختص بحفظ البيانات على الذاكرة الخارجية ///////////////////////// ////// //////////////////////////////// PinMode (Cardpin ، الإخراج) ؛ إذا (! SD.begin (cardpin)) {Serial.println ("تهيئة تهيئة SD") ؛ }
إذا (SD.exists ("data.txt")) {Serial.println ("data.txt موجود.") ؛ إذا (SD.remove ("data.txt")) {Serial.println ("تمت إزالة الملف بنجاح") ؛ } آخر {Serial.println ("تعذر إزالة ملف البيانات.") ؛ }} ////////////////////////////////////////////// ////// ////// /////////
} // نهاية الإعداد
// هذا التابع يعمل بشكل مستمر بعد الانتهاء من التابع الأول // يتكرر تنفيذ الأمر بداخل هذا التابع إلى أن تنفيذ الأمر ببدء تنفيذ الأمر في وهو يقوم بأداء العمليات في الأردوينو حلقة فارغة () {// هذا الأمر يقوم بقراءة جميع النقاط الحرارية من الكاميرا // اقرأ كل البكسل amg.readPixels (بكسل) ؛
//////////////////////////////////////////////// //// //// /////////////////////////////// // هذه الأوامر التي تقوم بالنفاذ إلى النقاط الحرارية //// ///////////////////////////////////////////// //////// /////////////////////////////// maxx = -99,9 ؛ لـ (int i = 0 ؛ i
// البكسل! tft.fillRect (displayPixelHeight * floor (i / 8) ، displayPixelWidth * (i ٪ 8) ، displayPixelHeight ، displayPixelWidth ، camColors [colorIndex]) ؛ إذا (حز > maxx) {maxx = بكسل ؛ }} ////////////////////////////////////////////// ////// ////// //////////////////////////////////
// هذا الأمر يقوم بقياس المسافة والمسافة في قياس المسافة والمسافة تقاس بالـ (سم) dist = sr04. Distanz () ؛
/ هذه جملة شرطية إذا كانت المسافة أعلى من 40 سم تنفيذ الأوامر التالية إذا (Entfernung > 40) {
// هذا الأمر يظهر على شاشة الكمبيوتر جملة "أقترب من الحساس" Serial.println ("اقترب") ؛
// هذا الأمر يظهر على الشاشة الصغيرة جملة "أقترب من الحساس" lcd.print ("اقترب أكثر") ؛ } آخر {
/ هذه جملة شرطية ، تنفيذ التعليمات التالية إذا (dist <6) {// هذا الأمر يظهر على شاشة الكمبيوتر جملة "أبتعد عن الحساس" Serial.println ("Gehe weiter") ؛
// هذا الأمر يظهر على الشاشة الصغيرة جملة "أبتعد عن الحساس" lcd.print ("اذهب أبعد") ؛ }
نفذت الإجراءات التالية التالية {
// هذه تظهر تظهر على شاشة الكمبيوتر المسافة بالـ (سم) Serial.print (Dist) ؛ Serial.println ("سم") ؛
هذه الأوامر التي بحساب درجة الحرارة بالدرجة تعويم newmax = دائري ((maxx + 5,25 + (dist / 9)) * 100) ؛ تعويم neu2 = neumax / 100 ؛ درجات تعويم F = (جديد 2) ؛ // (1,8 * 2 + 32) * 100 ؛ intF = (int) درجة F ؛
// هذا الأمر يدرس درجة الحرارة بالدرجة المئوية بفواصل عشرية على شاشة الكمبيوتر // مثال 36.24 مئوية Serial.println (درجة فهرنهايت) ؛
// هذا الأمر يسجل درجة الحرارة بالدرجة المئوية على شاشة الكمبيوتر // مثال 36 درجة مئوية Serial.println (intF) ؛
// هذا الأمر إسناد الكتابة على المحرف الأول في السطر الأول lcd.setCursor (0 ، 0) ؛
//lcd.print("Temp: "+ سلسلة (درجة F / 100)) ؛
// هذا الأمر يقود إلى درجة الحرارة الصغيرة بعد تحويل درجة الحرارة إلى مصفوفة محارف STRING lcd.print ("درجة الحرارة:" + سلسلة (درجة فهرنهايت)) ؛
المسلسل 1.println (intF) ،
// هذا الأمر إسناد الكتابة على الحرف الأول في السطر الثاني lcd.setCursor (0 ، 1) ؛
/ هذه الدرجة درجة الحرارة // الدرجات F هي مقياس الدرجة بدون الفاصلة العشرية. إذا كانت درجات فهرنهايت <10040) {// هذا الأمر على الشاشة الصغيرة جملة "هذا الشخص سليم" lcd.print ("الشخص بأمان") ؛
} آخر {/ هذه الحرارة جملة من درجات الحرارة إذا كانت درجات الحرارة <= 10220) {// هذا الأمر يظهر على الشاشة جملة "إذهب إلى المنزل" lcd.print ("الشخص إلى المنزل") ؛
أعلى درجات الحرارة من الصفحة ، إذهب إلى.
}} ////////////////////////////////////////////// ////// ////// /////////////////////////////// // هذه الأوامر التي تفتح ملف داخل كرت البحث عن درجات. الحرارة بداخله ////////////////////////////////////////////// //// ////// ///////////////////////////////// Datei = SD.open ("data.txt" ، FILE_WRITE) ؛ إذا (ملف) {String fulldata = "Temp:" + String (degreesF) ؛ file.println (فولداتا) file.close () ؛ }
آخر {// هذا الأمر يظهر على شاشة الكمبيوتر وجود كتابة البيانات على كرت الذاكرة Serial.println ("خطأ في كتابة ملف البيانات") ؛
} /////////////////////////////////////////////// //// ///// ///////////////////////////////////} // هذا يقوم بتوقيف الكود لمدة 200 ثانية حتى يستقر المتحكم تأخير (200) ؛ // هذا الأمر يقوم بمسح المحتويات من الشاشة lcd.clear () ؛
} // نهاية الحلقة
Empfohlen:
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Bodenfeuchtigkeit mit Raspberry Pi messen 4: 4 Schritte
Bodenfeuchte messen mit Raspberry Pi 4: Wissen Sie, wie oft Pflanzen gegossen werden müssen? Oder Pflanzen ausgegossen und verloren. Um dies zu lösen, dachte ich, es wäre umständlicher, wenn wir den Wert des Wassergehalts im Boden ermitteln können, um eine Entscheidung für die richtige Bewässerung der Pflanzen zu treffen
Wie man einen CubeSat herstellt, der die Temperatur messen kann – wikiHow
Wie man einen CubeSat herstellt, der die Temperatur messen kann: Kommen Sie mit und Sie werden einen 11x11x11x11-Würfel der reinen Fantasie sehen, nehmen Sie meine Hand und Sie werden die Temperatur des Mars sehen! (zur Melodie von Willy Wonkas „Imagination“) Heute zeige ich dir, dass du deinen ganz eigenen CubeSat bauen musst! Ich und meine Partner Alyssa und
Messen Sie den Innenwiderstand der Batterie in 4 Schritten: 4 Schritte
4 Schritte zum Messen des Innenwiderstands des Akkus: Hier sind die 4 einfachen Schritte, die Ihnen helfen können, den Innenwiderstand des Akkus zu messen
Nitratkonzentration in Wasser mit EOS messen 1: 13 Schritte
Nitratkonzentration in Wasser messen mit EOS 1: Dies ist eine kurze Schritt-für-Schritt-Anleitung zur Verwendung der EOS1 zur Messung der Nitratkonzentration in Wasser. Ähnliche Schritte können für die Messung von Phosphat verwendet werden (ein anderes Testkind ist erforderlich)