آموزش اینترنت اشیا و Espآموزش رزبری پایپروژه رزبری پایپروژه های اینترنت اشیا

ساخت ترازو با رزبری پای (هشدار ایمیل و نمایش در اینترنت)

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

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

شاید در مورد یخچال های هوشمند شنیده باشید. این یخچال ها به طور هوشمند مواردی که در یخچال کم هستند را سفارش میدهد. با الهام از این یخچال ها، ما یک پروژه رزبری پای را طراحی کردیم که در آن یک ظرف با استفاده از لود سل وحسگر وزن 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

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

مطلب پیشنهادی:  پروژه تشخیص رنگ با رزبری پای و سنسور TCS3200

ایمیل های هشدار ارسال شده از 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

موارد موجود در فایل : سورس کامل ، شماتیک کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

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

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

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

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

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