پروژه الکترونیکپروژه های اینترنت اشیاپروژه های پایتونپروژه های رزبری پای

پروژه ظرف هوشمند رزبری پای با هشدار ایمیل و نمایش در اینترنت

سلام. پروژه ترازو هوشمند رزبری پای با هشدار ایمیل و نمایش در اینترنت را آماده کردیم.

ترازو هوشمند Raspberry pi با ارسال ایمیل هشدار و وضعیت در وب

شاید در مورد یخچال های هوشمند شنیده باشید. این یخچال ها به طور هوشمند مواردی که در یخچال کم هستند را سفارش میدهد. با الهام از این یخچال ها، ما یک پروژه رزبری پای را طراحی کردیم که در آن یک ظرف با استفاده از لود سل وحسگر وزن HX711 هوشمند سازی میشود و در صورت افزایش یا کاهش وزن از مقدار معین، ایمیل هشدار ارسال میکند. همچنین شما در لحظه میتوانید میزان وزن فعلی را در مرورگر خود از طریق موبایل یا لپ تاپ مشاهده کنید. میشود گفت این یک پروژه اینترنت اشیا است. وزن ظرف هر 5 ثانیه در مرورگر بروزرسانی میشود و این مقدار را میتوانید شخصی سازی کنید. ما در این پروژه مقدار وزن آستانه را 300 گرم قرار داده ایم که در صورت رد شدن از این حد، هشدار “Container is Full” از طریق ایمیل ارسال میشود.

پروژه قبلی ما که در مورد لودسل بود را مشاهده کنید : پروژه باز شدن اتوماتیک درب با سنسور وزن و رزبری پای پایتون

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

کار با این پروژه بسیار آسان است. ما از Raspberry pi 3 برای کنترل تمام فرآیند ها استفاده میکنیم. LoadCell وزن ظرف را حس میکند و ولتاژ آنالوگ خود را به مازول تقویت کننده HX711 میدهد. HX711 یک آنالوگ به دیجیتال 24 بیت است که باعث تقویت و تبدیل خروجی لود سل به شکل دیجیتالی میشود. سپس این مقدار به رزبری پای داده میشود. رزبری پای این سیگنال را دریافت کرده و به وزن تبدیل میکند.

ظرف هوشمند رزبری پای با هشدار ایمیل

سپس مقدار بدست آمده با مقدار آستانه از پیش تعریف شده مقایسه میشود. اگر وزن ظرف بیشتر از 300 گرم باشد، رزبری پای یک ایمیل ارسال میکند که میگوید ظرف پر شده است. و اگر مقدار از 300 گرم کمتر باشد Raspberry pi یک ایمیل ارسال میکند که میگوید ظرف خالی است. توجه داشته باشید این مقادیر قابل ویرایش هستند.

شما میتوانید وزن را در لحظه با استفاده از مرورگر کنترل کنید. شما فقط باید آدرس آی پی رزبری پای را با درگاه 5010 باز کنید مثلا http://192.168.1.100:5010. در این پروژه رزبری پای ما از Flask برای ارسال داده از Raspberry pi استفاده میکنیم. همچنین یک ال سی دی کاراکتری 16*2 نیز به صورت اختیاری میتواند برای نمایش پیام های وزن و وضعیت قرار بگیرد.

ارسال ایمیل هشدار آستانه وزن از رزبری پای

نرم افزاری برای ارسال ایمیل نصب خواهیم کرد. در اینجا ما از ssmtp استفاده می کنیم که یک راه حل آسان و خوب برای ارسال Email با استفاده از خط فرمان یا استفاده از اسکریپت پایتون است. برای ارسال ایمیل با استفاده از SMTP باید دو کتابخانه نصب کنیم:

​sudo apt-get install ssmtp
sudo apt-get install mailutils

کتابخانه ارسال ایمیل برای Raspberry Pi

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (ساخت ربات، ارتباط با اندروید، اینترنت اشیا، برنامه نویسی حرفه ای) یاد بگیرید، حتما دوره آموزش آردوینو را مشاهده کنید.

پس از نصب كتابخانه ها ، کاربر باید پرونده ssmtp.conf را باز كند و این پرونده پیكربندی را مطابق تصویر زیر ویرایش كرده و سپس پرونده را ذخیره كند. برای ذخیره و خروج از پرونده ، “CTRL + x” ، سپس “y”  و “Enter” را فشار دهید.

sudo nano /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
hostname=raspberrypi
AuthUser=YourEmailAddress
AuthPass=YourEmailPassword
FromLineOverride=YES
UseSTARTTLS=YES
UseTLS=YES

پیکربندی کد پروژه امنیت خانه رزبری پای

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

echo "Hello saddam" | mail -s "Testing..." saddam4201@gmail.com

در زیر میتوانید هشدار های ارسال شده به ایمیل ما در حین تست پروژه را مشاهده کنید.

ایمیل های هشدار ارسال شده از Raspberry pi

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

تنظیم فلاسک در Raspberry Pi

شما باید با استفاده از دستورات داده شده، بسته پشتیبانی از فلسک را در Raspberry Pi نصب کند:

$ pip install Flask

سپس می توانیم از Flask با استفاده از فراخوانی آن در برنامه استفاده کنیم.

from flask import Flask, render_template, request, jsonify

کد HTML برای صفحه وب ظرف هوشمند با رزبری پای

ما برای نمایش وزن و پیام هشدار در مرورگر وب ، یک صفحه وب ایجاد کرده ایم. ما از اسکریپت جی کوئری استفاده کرده ایم تا در هر 5 ثانیه صفحه دوباره بارگذاری شود تا بتوانیم در هر لحظه مقدار وزن را بدست آوریم. در زیر کد HTML برای صفحه وب آورده شده است.

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<div><center>
<h1><span style="color:#5C5C5C;">Circuit</span><span style="color:#139442"> Digest</span></h1>
<h2>Smart Container using Raspberry Pi and Weight Sensor</h2>
<h3>Weight of Container: <span id="result" style="color:#C33; font-size:28px">302</span> gram</h3>
<span>(Updating every 5 seconds)</span>

<div id="alert" style="color:#F00; font-size:20px; "><br><br><b>Alert!!!<br>Container is full<br>Email sent.</b></div>

</center></div>

<script>
setInterval(
  function()
  {
    $.getJSON('/show_weight',function(data) {                                                
      $("#result").text(data.result);
        if( data.result > 300 ) {
           $("#alert").show();
        }
        else {
           $("#alert").hide();
        }
     });     
  },
5000);
</script>

شما باید این کد را در یک ویرایشگر مثل Notepad وارد کنید و سپس با آن را با پسوند .html ذخیره کنید. سپس با توجه به پوشه اسکریپت پایتون خود، آن را در پوشه /templates قرار دهید. حتما این مرحله را انجام دهید زیرا در غیر اینصورت پروژه کار نمیکند.

وقتی وزن ظرف بیش از 300 گرم مانند زیر باشد ، صفحه وب نیز پیام هشدار را نشان می دهد:

هشدار زیاد شدن وزن ظرف هوشمند

وقتی وزن ظرف کمتر از 300 گرم مانند زیر باشد ، صفحه وب نیز پیام هشدار را نشان می دهد:

هشدار کم شدن وزن ظرف هوشمند

با استفاده از دستور ifconfig می توانید آدرس IP رزبری پای خود را بررسی کنید:

Ifconfig

توضیحات مدار پروژه

اتصالات این ظرف هوشمند IoT آسان بوده و به صورت شماتیک در زیر آورده شده است. پین های ال سی دی 16×2 RS ، EN ، d4 ، d5 ، d6 و d7 به پین شماره 18 ، 23 ، 24 ، 25 ، 8 و 7 به پین های GPIO رزبری پای و پین های DT و SCK ماژول HX711 ماژول به طور مستقیم با پین 27 و 17 GPIO در ارتباط هستند.

ترازو هوشمند Raspberry pi با ارسال ایمیل هشدار و وضعیت در وب

قطعات مورد نیاز

در اینجا ما از Raspberry Pi 3 Raspbian Jessie OS استفاده می کنیم.

  1. هر مدل از برد های رزبری پای
  2. بار سلول
  3. ماژول تقویت کننده سلول بار HX711
  4. LCD 16×2

در اینجا ما یک پایه چوبی را با Load Cell برای ثابت کردن مانند شکل زیر متصل کرده ایم.

ثابت کردن لودسل ترازو

ماژول سنسور وزن Load Cell و HX711

Load Cell مبدل است که نیرو یا فشار را به خروجی الکتریکی تبدیل می کند. بزرگی این خروجی الکتریکی به طور مستقیم با نیرویی که اعمال می شود متناسب است. مقاومت مؤثر این سنسور ها در اثر افزایش فشار و نیروی وارده تغییر می کند. سلول بار (Load Cell) در محدوده های مختلفی از قبیل 5 کیلوگرم ، 10 کیلوگرم ، 100 کیلوگرم و … وجود دار ، در اینجا ما برای تست پروژه از یک لودسل با قابلیت وزن 40 کیلو گرم استفاده میکنیم.

تصویر یک Load cell لود سل

سیگنال های الکتریکی تولید شده توسط سلول بار در چند میلی ولت است، بنابراین آنها باید توسط تقویت کننده، تقویت شوند و به همین دلیل از ماژول HX711  استفاده میکنیم. ماژول حسگر توزین HX711 دارای تراشه HX711 است که یک مبدل آنالوگ به دیجیتال با دقت بالای 24 بیت است. HX711 دارای دو کانال ورودی آنالوگ است و با برنامه نویسی این کانال ها می توانیم به 128 دست پیدا کنیم.

لودسل با استفاده از چهار سیم به HX711 متصل میشود.

ماژول سنسور وزن HX711

  • سیم قرمز به E + وصل شده است
  • سیم سیاه به E وصل شده است
  • سیم سفید به A- وصل شده است
  • سیم سبز یا آبی به A + وصل شده است

نحوه اتصال لودسل به HX711

فیلم عملکرد پروژه

کد پایتون پروژه در فایل دانلودی قرار داده شده است. فیلم زیر نیز به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فایل ها باید عضو آیرنکس باشید، تنها چند ثانیه زمان لازم است.

ورود / ثبت نام

[lrm_form default_tab=”register” logged_in_message=””]

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *