فهرست مطالب:

چگونه می توان سیستم هشدار تشخیص سیلاب هوشمند را با استفاده از تمشک پای و آرگون ذرات ایجاد کرد: 6 مرحله
چگونه می توان سیستم هشدار تشخیص سیلاب هوشمند را با استفاده از تمشک پای و آرگون ذرات ایجاد کرد: 6 مرحله

تصویری: چگونه می توان سیستم هشدار تشخیص سیلاب هوشمند را با استفاده از تمشک پای و آرگون ذرات ایجاد کرد: 6 مرحله

تصویری: چگونه می توان سیستم هشدار تشخیص سیلاب هوشمند را با استفاده از تمشک پای و آرگون ذرات ایجاد کرد: 6 مرحله
تصویری: Part 2 - Walden Audiobook by Henry David Thoreau (Chs 02-04) 2024, نوامبر
Anonim
Image
Image
چگونه می توان با استفاده از Raspberry Pi و Particle Argon سیستم هشدار تشخیص سیلاب هوشمند را تشخیص داد
چگونه می توان با استفاده از Raspberry Pi و Particle Argon سیستم هشدار تشخیص سیلاب هوشمند را تشخیص داد

داشتن سنسورهای استاندارد سیل برای جلوگیری از آسیب های گسترده به خانه یا محل کار شما بسیار مناسب است.

اما اگر در خانه نباشید حضور در زنگ خطر را دشوار می کند.

البته شما می توانید آنها را هوشمند خریداری کنید

این سیستم هشدار سیل هرگونه مایع را تشخیص داده و زنگ خطر را فعال می کند و صفحه وب را در مورد سیل که در هر نقطه از جهان قابل دسترسی است به روز می کند ، چه در تعطیلات آرام و چه در محل کار هستید و می خواهید از وضعیت خانه خود مطلع شوید.

تدارکات

Raspberry pi (من از مدل 3 B+استفاده می کنم) raspbian را اجرا می کند

ذرات آرگون

سنسور آب گروو

دوربین راسپی

وزوز

سیم های بلوز

مرحله 1: سنسور آب را به ذرات وصل کنید

سنسور آب را به ذرات وصل کنید
سنسور آب را به ذرات وصل کنید
سنسور آب را به ذرات وصل کنید
سنسور آب را به ذرات وصل کنید

سنسور آب دارای 4 پین است که GND ، VCC ، NC و SIG هستند و ما فقط از سه عدد از آنها استفاده می کنیم

من پین SIG را به D2 در Argon متصل می کنم.

اکنون ، می توانید Particle Web IDE را برای نوشتن کد و فلش به Argon راه اندازی کنید

بنابراین ما تابع ذرات را مایع ثبت کرده و یک متغیر isFloodPresent تعریف کرده ایم که می توان آن را از Particle Console فراخوانی کرد و مقدار بولی isFloodPresent را بدست آورد و همچنین تابع مایع را برای آزمایش ساختگی که مقدار 1 را به عنوان ورودی می گیرد فراخوانی می کنیم که به معنی سیل (آب) موجود است به

مطمئن شوید که قادر به مشاهده آن عملکرد و متغیر از Particle Console دستگاه Particle خود هستید.

مرحله 2: منبع زنگ هشدار را به تمشک وصل کنید

منبع زنگ هشدار را به تمشک وصل کنید
منبع زنگ هشدار را به تمشک وصل کنید

روی نان برد می توانید Buzzer را به پین GPIO رزبری متصل کنید

انتهای کوچکتر زنگ را به GND (پین 6) و انتهای دیگر را به پین 7 روی تمشک متصل کرده ام.

حالا کد را اجرا کنید تا ببینید. ما نیاز داریم که این فایل پایتون دائما در حال اجرا باشد تا بتواند محرک ها را از سرور وب دریافت کرده و متناسب با آن پاسخ دهد.

متناوباً می توانید این فایل را هنگام راه اندازی روی تمشک خود اجرا کنید که می توانید با ویرایش /etc /systemd این کار را انجام دهید.

و این فایل در پوشه cgi سرور apache شما قرار می گیرد ،

من دایرکتوری جدید flood-cgi داخل/var/www/html/ایجاد کرده ام و این فایل.py را که با اسکریپت cgi من ارتباط برقرار می کند قرار داده ام.

مرحله 3: سرور Apache را پیکربندی کنید

سرور Apache را پیکربندی کنید
سرور Apache را پیکربندی کنید

می توانید با تایپ sudo apt-get install apache2 سرور apache را نصب کنید

هنگام نصب ، می توانید با تایپ نام میزبان -I تأیید کنید

و آدرس IP محلی خود را دریافت خواهید کرد و می توانید به مرورگر خود بروید و باید سرور را در حال اجرا ببینید

مرحله 4: CGI را در Apache فعال کنید

CGI را در Apache فعال کنید
CGI را در Apache فعال کنید

با تایپ sudo a2enmod cgi می توانید cgi را فعال کنید

به طور پیش فرض cgi_bin apache در/usr/lib/cgi-bin قرار دارد

این جایی است که می توانید پس از فعال کردن cgi ، اسکریپت های cgi خود را قرار دهید

برای تأثیرگذاری ، باید سرور apache را راه اندازی مجدد کنید

من دایرکتوری سفارشی برای اسکریپت های cgi خود می خواستم بنابراین دایرکتوری را در/var/www/html/به نام flood-cgi ایجاد کردم.

برای فعال کردن این فهرست باید فایل conf را با تایپ کردن ایجاد کنم

sudo nano /etc/apache2/conf-available/flood-cgi.conf

و افزودن دستورات همانطور که در تصویر نشان داده شده است

سپس این دایرکتوری را با تایپ فعال کنید

var/www/html $ sudo a2enconf flood-cgi

اکنون می توانید سرور apache خود را مجدداً راه اندازی مجدد کنید و همه cgi های این پوشه پس از اجازه توسط apache قابل خواندن خواهند بود.

مرحله 5: تنظیم صفحه وب

صفحه وب را راه اندازی کنید
صفحه وب را راه اندازی کنید

برای این وب سرویس ساده ، از HTML ، Javascript ، CSS ، jquery و ajax استفاده می کنم.

من پنج برچسب کنترل دارم که قابل کلیک هستند ،

در صورت کلیک بر روی عکس از صفحه وب ، عملکرد کلیک دکمه عکس را فعال می کند و این عملکرد به این شکل است

$ ("#photobutton"). کلیک کنید (تابع () {var floodDate = تاریخ جدید ()؛

var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString ()؛

$.ajax ({

url: 'flood-cgi/flood_cgi.py' ،

روش: 'ارسال' ،

داده: {name_for_image: floodImageName} ،

موفقیت: عملکرد (داده) {

هشدار (داده ها ، وضعیت)

$ ("#Recentpic"). attr ("src" ، "flood-cgi/" + floodImageName + ".jpg") ؛

}

})

});

این اسکریپت flood_cgi.py را برای عکس گرفتن فرا می گیرد و تصویر را با نام سفارشی ایجاد شده توسط تاریخ و زمان فعلی ذخیره می کند و آژاکس تا صفحه بارگذاری می شود.

در صورت آلارم ، می توانیم از این عملکرد استفاده کنیم

تابع callAlarm (alarmType) {

$.ajax ({

url: 'flood-cgi/alarm.cgi' ،

روش: 'ارسال' ،

داده: {alarm_type: alarmType} ،

موفقیت: عملکرد (داده) {هشدار (داده)

}، error: function (XMLHttpRequest، textStatus، throwError) {alert (throwError)}})؛

}

هنگامی که برچسب زنگ کلیک می شود ، تابع callAlarm فراخوانی می شود ،

$ ("#buzzer"). کلیک کنید (function () {callAlarm ("test")؛

})

کد زیر زمانی است که می خواهید روی طغیان ساختگی کلیک کنید یعنی فراخوانی Particle API و فراخوانی تابع و تغییر مقدار مایع 1 و سیستم را بررسی کنید که آیا کل با انجام یک رویداد طغیان سیلاب مطابق انتظار کار می کند یا خیر.

$ ("#mockFlood"). روی (تابع () {console.log ("سیلاب ساختگی درخواست شده است") کلیک کنید ؛

var floodVal = 1؛

$ ("#signal2"). css ("اندازه فونت" ، "کوچک") ؛

var varName = "isFloodPresent"؛

var deviceID = "شناسه دستگاه شما"؛

var accessToken = "کد دسترسی شما"؛

if (floodVal) {

$.post ("https://api.particle.io/v1/devices/" + deviceID + "/liquid؟ access_token =" + accessToken ،

{liquid: floodVal} ،

عملکرد (داده ، وضعیت) {

if (status == "موفقیت") {

هشدار ("سیل ساختگی انجام شده است !!!") ؛

} دیگری {

هشدار ("متأسفیم ، مشکلی پیش آمد") ؛

}

});

}

});

اینها عملکردهای اصلی مورد نیاز برای ایجاد ارتباط با Particle Api و تمشک شما هستند تا دستگاه تمشک pi و ذرات آرگون شما بتواند ارتباط برقرار کند.

توجه: من می خواستم همه کد ها را بارگذاری کنم ، اما اجازه نمی دهد فایل.html را بارگذاری کنم

مرحله 6: ایجاد اسکریپت برای دوربین Raspi

ما برای ثبت تصویر.py ساده ای ایجاد می کنیم که حاشیه نویسی تاریخ و زمان فعلی را بر روی آن خواهد داشت.

سپس cgi script flood_cgi.py را ایجاد می کنیم تا از وب فراخوانی شود و این امر به فایل.py برای عکس گرفتن دستور می دهد.

مطمئن شوید که cgi script را با #شروع می کنید! /usr/bin/env پایتون

و همچنین به apache اجازه دهید این فایلها را اجرا کند.

سرور apache بر روی داده های کاربر www اجرا می شود ، بنابراین هنگامی که ما فایل.py یا.cgi را ایجاد می کنیم ، apache باید صاحب فایل باشد

sudo chown pi: www-data flood-cgi.py

و مجوز اجرا را بدهید

sudo chmod a+x flood-cgi.py

شما باید این کار را برای همه فایل هایی که باید از سرور apache اجرا شوند انجام دهید.

توجه: قرار دادن تمشک در اینترنت و دادن همه این مجوزها تمشک شما را به دلایل امنیتی بسیار آسیب پذیر می کند ، بنابراین باید از کاربران سختگیرانه و مجوزها پیروی کنید و مانند دیوار آتش بدون عارضه (ufw) فایروال را نصب کنید

توصیه شده: