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

مشروع مستشعر الهواء - الغاز: 10 خطوات
مشروع مستشعر الهواء - الغاز: 10 خطوات

فيديو: مشروع مستشعر الهواء - الغاز: 10 خطوات

فيديو: مشروع مستشعر الهواء - الغاز: 10 خطوات
فيديو: مشروع أردوينو لقياس النبضات واكسجة الدم والحرارة 2024, يوليو
Anonim
TheAir - مشروع استشعار الغاز
TheAir - مشروع استشعار الغاز

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

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

كطالب أو والد أو فرد أو كائن حي. هذا شيء ترغب عادةً في تجنبه عند العيش في راحة منزلك. هذا يساعد أولئك الذين يحبون جعل حياتهم أسهل قليلاً.

اللوازم

  • Raspberry Pi 3+
  • شاحن USB صغير 5 فولت / 2.5 أمبير
  • بطاقة مايكرو التنمية المستدامة
  • مجسات

    • MQ-7 (كو)
    • MQ-135 (ثاني أكسيد الكربون)
    • DS18B20 (درجة الحرارة)
  • مروحة 2 × 12 فولت تيار مستمر
  • 2 × 2n2222 الترانزستورات
  • شاشة LCD 16 * 2
  • اضغط الزر
  • MCP3008
  • محول مستوى لوجي
  • كابل إيثرنت (لأسباب تتعلق بالإعداد)

الخطوة 1: إعداد Raspberry Pi

إعداد Raspberry Pi
إعداد Raspberry Pi
إعداد Raspberry Pi
إعداد Raspberry Pi

قبل العمل مع Rpi ، سنحتاج إلى بعض البرامج.

  • WinSCP أو FilleZilla (اختياري إذا كنت تريد نقل الملفات من جهاز الكمبيوتر الخاص بك إلى Rpi)
  • قرص Win32 أو Etcher (الذي تفضله أكثر)
  • المعجون أو MobaXterm (الذي تفضله أكثر)
  • صورة Raspbian مع سطح المكتب

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

إذا كان لديك بالفعل Rpi متصل بشبكة wifi الخاصة بك ، فانتقل إلى الخطوة 3.

أولاً سنستخدم Etcher لوضع صورة Raspbian على بطاقة sd الخاصة بك. الآن قبل سحب بطاقة sd ، سنقوم بتغيير بعض "الأشياء" في ملف cmdline.txt ، والتي يمكن العثور عليها في الصورة. افتح ملف.txt -> أضف هذا السطر "ip = 169.254.10.1" (بدون علامات اقتباس) في نهاية السطر (الكل في سطر واحد) -> حفظ الملف

ثانيًا ، قم بإنشاء مجلد فارغ يسمى "ssh" في قسم التمهيد (بدون علامات اقتباس).

بعد ذلك يمكنك إخراج Microsd بأمان ووضعه في Rpi.

سبب IP الثابت المشفر الثابت هو تسهيل الاتصال بـ Rpi. إذا لم يكن لدى Rpi لسبب ما عنوان IP مع DHCP ، فيمكنك بسهولة استخدام عنوان IP الثابت.

الخطوة 2: إجراء اتصال وتوصيل Rpi Wireless بشبكتك المحلية

إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية
إجراء اتصال وتوصيل شبكة Rpi اللاسلكية بشبكتك المحلية

سنقوم بتشغيل Rpi -> قم بتوصيل كابل Ethernet بين الكمبيوتر و Rpi.

  1. ابدأ المعجون واملأ هذا:

    • اسم المضيف (أو عنوان IP): 169.254.10.1
    • المنفذ: 22
  2. تنبثق محطة طرفية وتكتب اسم المستخدم وكلمة المرور الافتراضيين:

    • اسم المستخدم: pi
    • كلمة المرور: التوت

الآن بعد أن أصبحنا متصلين محليًا بـ rpi ، نريد أن يكون لـ Rpi اتصال بشبكة wifi الخاصة بك.

  1. إضافي: اكتب "sudo raspi-config"
  2. هنا سوف تحتاج إلى تغيير كلمة المرور لمستخدم pi (أسباب تتعلق بالسلامة)
  3. بعد ذلك ، انتقل إلى خيارات الترجمة -> تغيير الوقت (اختر الخيار الصحيح) -> ثم انتقل إلى Wifi Country -> اختر البلد.
  4. قم بإغلاق raspi-config وإعادة التشغيل.
  5. عند تسجيل الدخول ، اجعل نفسك مستخدمًا جذريًا مؤقتًا -> sudo -i
  6. اكتب هذا الأمر لإضافة شبكتك إلى Rpi (رمز القائمة أدناه)

    • كلمة المرور = "كلمة المرور" (بعلامات اقتباس)
    • اسم الشبكة = "SSID"
    • تذكر استخدام مزدوج >>! هام!

صدى "كلمة السر" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

الآن أعد التشغيل مرة أخرى

عند إعادة الاتصال ، تحقق من عنوان IP الخاص بك عن طريق كتابة:

ifconfig

وتحقق من wlan0 ، بجوار inet.

الآن بعد أن أصبح لدينا اتصال بالإنترنت ، فلنقم بتحديث "سريع".

sudo apt التحديث

sudo apt Dist-Upgrade -y

هذا قد يستغرق بعض الوقت.

الخطوة 3: جهاز الاستشعار DS18B20 (درجة الحرارة) - سلك واحد

جهاز استشعار DS18B20 (درجة الحرارة) - 1 سلك
جهاز استشعار DS18B20 (درجة الحرارة) - 1 سلك
جهاز استشعار DS18B20 (درجة الحرارة) - 1 سلك
جهاز استشعار DS18B20 (درجة الحرارة) - 1 سلك

مع كل مشروع ، سيكون هناك دائمًا شيء خاص يجب القيام به وإلا فلن ينجح.

هذه المرة لدينا مع مستشعر درجة الحرارة DS18B20 الذي يتطلب سلكًا واحدًا ولن أشرح السبب ولكن سأشرح كيفية جعله يعمل على الأقل.

لهذا علينا العودة إلى raspi-config على Rpi ، الشاشة الزرقاء الجميلة.

  1. انتقل إلى خيارات التواصل
  2. اختر 1-Wire واختر تمكين.

منتهي…

أنا فقط أمزح.

سنحتاج الآن إلى ضبط /boot/config.txt

sudo نانو / boot/config.txt

أضف هذا الخط في الأسفل.

# تمكين onewire

dtoverlay = w1-gpio

الآن sudo أعد تشغيل هذا الشيء والآن انتهينا.

للتحقق مما إذا كان يعمل ، قم بتوصيل المستشعر بـ Rpi ثم ارجع إلى الجهاز واكتب هذا الرمز (انظر الخطوة التالية الأجهزة حول كيفية توصيل مستشعر درجة الحرارة).

cd / sys / bus / w1 / devices / w1_bus_master1

ls

يجب أن ترى شيئًا يحتوي على أرقام وحروف باللون الأزرق الداكن في أعلى اليسار ، تأكد من كتابة هذه المعلومة لاحقًا عندما سنعمل مع الكود من github.

إذا لم يعمل لسبب ما ، فتحقق من هذا الرابط الذي يتعمق فيه.

الخطوة 4: MCP3008 - الاستشعار التناظري

MCP3008 - الاستشعار التناظري
MCP3008 - الاستشعار التناظري
MCP3008 - الاستشعار التناظري
MCP3008 - الاستشعار التناظري

نظرًا لأننا أجرينا تغييرًا على مستشعر درجة الحرارة ، نحتاج أيضًا إلى إجراء بعض التغييرات على المستشعرات الأخرى نظرًا لأننا نحتاج إلى قراءة البيانات التناظرية. هنا حيث يكون MCP3008 مفيدًا ، نحتاج أيضًا إلى تغيير واجهة SPI.

sudo raspi-config

انتقل إلى Interfacing Options -> Select SPI -> enable.

ثم قم بإنهاء.

الخطوة 5: الأجهزة

لم ننتهي تمامًا من استخدام Rpi ولكن بما يكفي حتى نتمكن من البدء في بناء الأجهزة وتجميعها معًا.

بعض النصائح هي التحقق بدقة من اتصالاتك عند البناء للتأكد من عدم … تفجير Rpi.

أيضًا ، في المخطط ، ستلاحظ وجود بعض المكونات عليه مرة واحدة فقط على الرغم من أننا سنعمل مع أكثر من عنصر واحد من نفس المكون. هذا يعني فقط أنه يجب عليك تكرار نفس العملية لبناء هذا المكون الأول. هناك استثناء واحد صغير ، لا تحتاج مستشعرات mq-x إلى محول مستوى إضافي أو MCP3008. ما عليك سوى إضافة كبل أخضر إضافي (بتنسيق pdf) إلى محول المستوى و MCP3008.

تحرير إضافي: تحتاج المراوح إلى استخدام الترانزستور كمفتاح. أستخدم ترانزستور 2n2222A لمروحة واحدة ، لأن مراوحين قد تكون حمولة ثقيلة.

إذا كان لديك ترانزستور يمكنه التعامل مع تيار أكبر ثم جيد ، فتخط الجزء الأخير من هذه الخطوة.

إذا لم يكن لديك واحد مثلي ، فستحتاج إلى القيام بذلك على هذا النحو ، مروحة واحدة = 1 ترانزستور ، 2 مراوح = 2 ترانزستور ، وما إلى ذلك (كل مروحة لها ترانزستور + ديود كما في pdf).

ستحتاج أيضًا إلى إضافة بعض التعليمات البرمجية إلى app.py في backend_project لاحقًا في الخطوة 7: كود Git….

الخطوة 6: إنشاء قاعدة بيانات Mariadb

إنشاء قاعدة بيانات Mariadb
إنشاء قاعدة بيانات Mariadb

كما يوحي العنوان ، سننشئ قاعدة بيانات بحيث يكون لدينا مكان لتخزين بيانات أجهزة الاستشعار الخاصة بنا.

أول الأشياء أولاً ، قم بتنزيل Mariadb على Rpi.

sudo apt-get install mariadb-server

بعد التثبيت ، دعنا نستخدمه.

mysql -u الجذر

كلمة المرور فارغة ، لذا لا شيء لكتابتها. اضغط دخول.

لنقم بإنشاء مستخدم الآن.

إنشاء مستخدم 'مستخدم' @ '٪' معرف بواسطة 'userdb' ؛

منح جميع الامتيازات *. * إلى "المستخدم" @ "٪" مع خيار المنحة ؛

امتيازات التنظيف ؛

اضغط على Ctrl + C للخروج وإعادة تشغيل الخدمة بسرعة:

إعادة تشغيل خدمة sudo mysql

تسجيل الدخول باسم المستخدم: المستخدم وكلمة المرور: userdb:

mysql -u المستخدم -p

حان الوقت لإنشاء قاعدة البيانات الآن.

إنشاء قاعدة بيانات project_db DEFAULT CHARACTER SET utf8؛

استخدام project_db

قم بإنشاء جدول "historyiek" (يعني التاريخ).

إنشاء جدول إذا لم يكن EXISTS "historyiek" ("id" INT NOT NULL AUTO_INCREMENT،

`sensorID` VARCHAR (5) NOT NULL ،` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ، `waarde` FLOAT (4) NULL DEFAULT 0 ، PRIMARY KEY (` id`)) Engine = InnoDB ؛

وفويلا ، قاعدة البيانات مصنوعة.

الخطوة 7: كود جيثب والاختبار

كود جيثب والاختبار
كود جيثب والاختبار

نحن نقترب من نهاية مشروعنا.

قبل أن نحصل على الكود ، سنحتاج إلى استيراد بعض الوحدات إلى Rpi:

pip3 تثبيت Flask_MySQL

pip3 تثبيت flask-socketio

تثبيت pip3 -U flask-cors

pip3 تثبيت spidev

نحتاج الآن إلى الكود لجعله يعمل ، اكتب في Terminal:

استنساخ بوابة

تحقق مما إذا كان المجلد موجودًا مع:

ls

ستحتاج الآن إلى محطتين ، لذا من السهل النقر بزر الماوس الأيمن على الجهاز والنقر على تكرار الجلسات:

انتقل إلى backend_project ودرجة الحرارة باستخدام الأمر cd.

الآن قبل أن نبدأ البرامج لأغراض الاختبار. هل ما زلت تتذكر الخطوة 3 باستخدام المستشعر أحادي السلك حيث تحتاج إلى كتابة بعض الأرقام؟ لا تقلق إذا كان لديك ، ما عليك سوى إلقاء نظرة سريعة على الخطوة 3 مرة أخرى.

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

الجهاز الذي يحتوي على مجلد درجة الحرارة ، ستجد app.py. سنقوم بفتحه.

sudo نانو app.py

ابحث عن الوظيفة التي تسمى "def درجة الحرارة ():" ، حيث سيتعين عليك استبدال "**" بالأرقام التي كتبتها. في حالتي ، سأحصل عليه هذا السطر من الكود (كل رقم فريد).

sensor_file_name = '/ sys / devices / w1_bus_master1 / 28-0316a4be59ff / w1_slave

وقت الاختبار. كلا المحطتين في كل من backend_project ومجلد درجة الحرارة ، اكتب:

python3 app.py

تذكر الآن الخطوة 5: الأجهزة حيث تحتاج إلى إضافة رمز إذا كنت تستخدم مراوح وترانزستورات متعددة؟

جيد ، إذا لم يكن كذلك ، فارجع إلى الخطوة 5.

الآن نحن بحاجة إلى إضافة رمز كما أشرت إلى app.py في backend_project. لتسهيل الأمر ، قدمت مثالًا على ذلك في الكود. كل سطر من كود التعليق يحتوي على "fan1" فيه ، قم بإلغاء التعليق على تلك السطور وفويلا ، يمكنك الآن استخدام معجبين.

إذا كنت تريد استخدام أكثر من معجبين فقط ، فانسخ والصق نفس الرمز تحته ولكن برقم مختلف. عيب هذا هو المزيد من العمل الشخصي بالنسبة لك وقليل من gpio.pins المتاحة. لا توجد مزايا لهذا أعرفها.

الخطوة 8: قم بتشغيل Code on Boot Up

قم بتشغيل Code on Boot Up
قم بتشغيل Code on Boot Up

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

للقيام بذلك ، اكتب:

sudo nano /etc/systemd/system/temperature.service

انسخ والصق هذا للحصول على درجة حرارة.

[الوحدة] الوصف = خدمة درجة الحرارة بعد = multi-user.target

[الخدمة] النوع = بسيط

ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

إعادة التشغيل = عند الفشل

RestartSec = 60 ثانية

[تثبيت]

WantedBy = multi-user.target

أغلق وافعل مرة أخرى ولكن بعد ذلك لخدمة backend_project:

أول نص مفتوح:

sudo nano /etc/systemd/system/backend_project.service

ثم انسخ والصق مرة أخرى:

[الوحدة] الوصف = خدمة backend_project

بعد = multi-user.target

[خدمة]

اكتب = بسيط

ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

إعادة التشغيل = عند الفشل

RestartSec = 60 ثانية

[تثبيت]

WantedBy = multi-user.target

احفظ وأغلق.

الجزء الأخير يكتب هذا:

تحميل برنامج sudo systemctl daemon-reload

sudo systemctl تمكين temperature.service sudo reboot

الآن يجب تشغيل نصي Python تلقائيًا عند التمهيد.

الخطوة 9: إعداد موقع الويب

عندما تقوم بتنزيل المستودع ، يجب أن يكون لديك أيضًا مجلد يسمى front. هذا هو المكان الذي توجد فيه محتويات الموقع.

نحتاج أولاً إلى apache قبل أن نتمكن من استخدام المجلد. اتبع الدليل الموجود على هذا الرابط من أجل اباتشي.

عندما تكون جاهزا. انتقل إلى حيث يوجد المجلد الأمامي:

cd / Documents / nmct-s2-project-1-TheryBrian

ثم اكتب:

sudo mv front / var / www / html

عندما يتم ذلك ، انتقل إلى مجلد html ، واستعد لبعض الأعمال الشاقة (خطأي).

cd / var / www / html /

ثم انتقل إلى المجلد الأمامي وابدأ في نقل كل شيء إلى مجلد html.

مثال:

sudo mv css / var / www / html

ثم احذف المجلد الأمامي.

وانتهينا من كل شيء.

حظا طيبا وفقك الله:).

الخطوة 10: اختياري - نموذج مصغر

اختياري - نموذج مصغر
اختياري - نموذج مصغر
اختياري - نموذج مصغر
اختياري - نموذج مصغر

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

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

لكن من الواضح قبل أن نبدأ في إحداث ثقوب في الجدران (قافية لطيفة). نريد أولاً أن نرى ما إذا كان يعمل فقط. لا تحتاج في الواقع إلى صنع صندوق للاختبار ، لكن من الممتع دائمًا القيام ببعض الأعمال اليدوية.

هذا هو المثال الخاص بي.

موصى به: