اینترنت اشیا IOT اینترنت اشیاء تئوریک رزبری پای نرم افزار Node Red

سنجش شدت نور محیط با پارامتر لوکس lux توسط رزبری پای و Node-RED

getting-started-with-bh1750-light-sensor-with-raspberry-pi-and-node-red-digispark
نوشته شده توسط پریسا پوربلورچیان

اندازه گیری پارامتر نور و شدت نور توسط سنسورهای نور Light قابل سنجش است. سنسورهای Light مانند GY-30 جهت اندازه گیری شدت نور دریافتی از محیط استفاده می‌شود. در این آموزش توسط برد رزبری پای Raspberry Pi و سنسور شدت نور GY-30 به کمک نرم افزار Node-Red مقادیر سنسور را دریافت و مشاهده میکنیم. در ادامه با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 سنسور شدت نور BH1750 و رزبری پای - دیجی اسپارک


سنسور شدت نور BH1750


سنسور BH1750 GY-30 با خروجی دیجیتال Digital حساس به نور است. رنج قابل تشخیص سنسور بین ۰ تا ۶۵۵۳۵ بر واحد لوکس LUX است. سنسور بر پایه مبدل ۱۶ بیتی AD طراحی شده و از پروتکل I2C پشتیبانی می‌کند. ولتاژ کاری سنسور بین ۳٫۳ تا ۵ ولت و تراشه اصلی آن BH1750FVI است. با قرار گرفتن سنسور در محیط تاریک مقدار لوکس LUX کاهش یافته و به صفر نزدیک می‌شود و به همین صورت با قرارگیری سنسور در محیط روشن مقدار لوکس افزایش یافته و به عدد ۶۵۵۳۵ نزدیک می‌شود. بسته به نوع سنسور انتخابی دارای ۴ تا ۵ پایه است که پایه های I2C به ترتیب SDA و SCL است.

راه اندازی سنسور شدت نور BH1750 با رزبری پای - دیجی اسپارک

 


رزبری پای Raspberry Pi


برد رزبری پای ۳ مدل A+ در ظاهر برد کمی کوچکتر و فقط یک پورت USB دارد. پورت اترنت هم حذف شده است. تراشه  A 1.4GHz 64-bit quad-core ARM Cortex-A53 CPU در کنار ۵۱۲ مگابایت رم LPDDR2 کل پردازش برد را انجام می‌دهند. تراشه بلوتوث و وای فای هم همانند رزبری پای B+ بوده از نوع Dual-band 802.11ac wireless LAN and Bluetooth 4.2/BLE می‌باشد. انتخاب نوع برد رزبری پای کاملا آزادانه است.

برد رزبری پای A+ - دیجی اسپارک

 


اتصالات سنسور شدت نور


برای اتصال سنسور به رزبری پای همانند زیر اجرا کنید:

  • پایه SDA سنسور نور را به پایه GPIO2 رزبری پای اتصال دهید.
  • پایه SCL سنسور نور را به پایه GPIO3 رزبری پای اتصال دهید.
  • پایه VCC سنسور نور را به پایه ۵ ولت رزبری پای اتصال دهید.
  • پایه GND سنسور نور را به پایه GND رزبری پای اتصال دهید.

اتصالات سنسور شدت نور BH1750 و رزبری پای - دیجی اسپارک

 


اجرا در نرم افزار Node-RED


در این آموزش به کمک نرم افزار گرافیکی Node-RED که بر پایه Nodejs است، مقادیر LUX را خوانده و در داشبورد نمایش میدهیم. برای این کار از رزبری پای Raspberry Pi استفاده شده است. رزبری پای به دلیل پشتیبانی از پروتکل های I2C و SPI ارتباط با سنسورها را برای ما فراهم کرده است. سنسور BH1750 از پروتکل I2C استفاده کرده و جهت ارتباط با بردهای امبدد به واسطه پروتکل ارتباطی قابل راه اندازی و دریافت دیتا است. در این آموزش از نرم افزار Node-RED در سیستم عامل رزبین Raspbian استفاده میکنیم. با نصب رزبین نود رد Node-RED به صورت اتوماتیک بر روی رزبین اجرا می‌شود. جهت دسترسی به محیط نود رد Node-RED ارتباط به صورت لوکال است و با آی پی آدرس IP ADDRESS که هنگام ران RUN نمایش داده می‌شود از طریق مرورگر به محیط نود رد دسترسی پیدا میکنیم. از اینرو در محیط رزبین محیط گرافیکی Node-RED را بررسی خواهیم کرد. در منو رزبین Raspbian در قسمت Programming، ابزار Node-RED قرار گرفته شده است. با کلیک بر روی آن پنچره زیر باز می‌گردد. در خط اول یک آدرس URL جهت دسترسی به Node-RED برای شما نمایش داده می‌شود. پورت URL برابر با ۱۸۸۰ می‌باشد که جهت اجرای برنامه بر روی مرورگر بایستی URL را وارد نمایید.

۱۹۲٫۱۶۸٫۹۱٫۱۵۶:۱۸۸۰

با فعال شدن Node-RED محیط گرافیکی نمایش داده شده و آماده اجرا خواهد بود.

برای شروع از منو سه خط Node-RED بر روی Manage palette کلیک کنید. سپس در User Setting بر روی install کلیک کرده و عبارت I2C را سرچ کنید. سپس پکیج I2C را که به صورت زیر است، نصب کنید:

node-red-contrib-i2c

منتظر باشید تا نود نصب شده و پیام اضافه شدن به پالت های نود رد نمایش داده شود. برای اجرای برنامه و ارتباط با سنسور یک Flow ایجاد میکنیم.


ایجاد FLOW سنسور شدت نور


برای ساخت یک فلو Flow جدید از منو Node-RED بر روی FLOWS کلیک کرده و سپس ADD را انتخاب کنید. یک اسم برای آن به دلخواه انتخاب کنید. برای شروع و ارسال فرمان از نود ورودی inject استفاده میکنیم که اولین نود در پالت می‌باشد. حالت پیشفرض را بر روی Timestamp قرار دهید.

خواندن اطلاعات سنسور در رزبری پای با نرم افزار نود رد - دیجی اسپارک

از نوار سمت چپ در کادر فیلتر عبارت I2C را سرچ کنید. نود I2C را وارد صفحه کرده و همانند زیر تنظیمات نود را انجام دهید:

تبدیل پورت I2C رزبری پای و شناخت سنسور شدت نور BH1750 - دیجی اسپارک

برای یافتن آدرس I2C نود I2C SCAN را انتخاب کرده و به دیباگ متصل کنید.

بخشی از نرم افزار نود رد Node-red روی رزبری پای - دیجی اسپارک

برای مشاده دیباگ و کد I2C برنامه را Deploy کنید. سپس در نوار سمت راست دیتا نماش داده می‌شود.

 اطلاعات سنسور شدت نور در نرم افزار نود رد - دیجی اسپارک

 


تبدیل اطلاعات سنسور به JSON


برای دریافت دیتا از سنسور و خواندم مقادیر Lux به از JSONata استفاده میکنیم. در واقع از فرمت json برای ذخیره و انتقال دیتا از سرور به وب پیچ استفاده می‌کنیم. در انتقال دیتا بین وب پیچ و سرور داده ها فقط به صورت متن Text میتوانند رد و بدل شوند. به عنوان مثال اگر دیتایی در جاوا اسکریپت ذخیره داشته باشید، میتوانید به فرمت json تبدیل کنید. در json ما به جزییات میپردازیم و دیتای خروجی بر اساس جزییات اولیه به دست می‌آید. در این آموزش مقادیر لوکس به jsonata تبدیل شده و در خروجی دیتا را نمایش میدهد. نود change را از نوار سمت چپ انتخاب کرده و سپس کامند زیر را وارد کنید.

$round((payload."1" + (265 * payload."0"))/1.2,2)

تغییر فرمت اطلاعات سنسور شدت نور به Json - دیجی اسپارک

 


ساخت دشبورد در UI


امکان ساخت محیط گرافیکی و یک دشبورد در مرورگر توسط نودهای Dashboard وجود دارد. جهت دسترسی به نودهای UI Dashboard کافیست در manage palette عبارت Dashboard را سرچ کرده و پالت زیر را نصب کنید:

node-red-dashboard

   

نود Gauge را از شاخه UI انتخاب و وارد صفحه کنید. سپس مانند زیر تنظیمات را انجام دهید:

طراحی محیط UI در رزبری پای با نرم افزار نود رد - دیجی اسپارک

 


اتصال نهایی نودها


تمامی نودها وارد صفحه و تنظیم شده است. همانند تصویر زیر اتصالات را انجام داده و کامپایل کنید.

سورس پروژه شدت نور محیط بر حسب لوکس - دیجی اسپارک

 


طراحی محیط UI در رزبری پای


جهت ورود به محیط ui بایستی URL نرم افزار Node-RED را همراه با پورت ۱۸۸۰ و /ui وارد نمایید.

url:1880/ui

به عنوان مثال URL نود رد من در این مثال برابر با http://192.168.1.156:1880/ui می‌باشد. گوگل کرده و سپس وارد Dashboard خواهید شد

محیط UI در رزبری پای - دیجی اسپارک

 


جمع بندی لیدی پای


هدف از نوشتن این آموزش یادگیری جیسون دیتا Jsondata و دریافت دیتا از سنسور و تبدیل به دیتای قابل فهم است. سنسور استفاده شده در این آموزش از پروتکل ارتباطی I2C پیروی کرده و به همین دلیل ارتباط سنسور با دنیای اینترنت اشیا را برای ما فراهم کرده است. برای برقراری ارتباط از سخت افزار سبکی مانند رزبری پای استفاده کردیم که با استفاده از دو پایه SDA و SCL سنسور به رزبری پای متصل شده است. به کمک نرم افزار Node-RED محیط گرافیکی ساخته شده و دیتا به jsonata تبدیل و مقادیر LUX از سنسور خوانده و نمایش داده شده است. از کاربردهای این مورد میتوان به طراحی گلخانه هوشمند، مدیریت مصرف انرژی و … اشاره کرد. با انجام اتصالات، با قرار گرفتن سنسور در محیط تاریک مقدار Lux کاهش یافته و با تابش نور مقدار لوکس Lux افزایش می‌یابد.

 


وسایل مورد نیاز


ماژول سنجش شدت نور GY-30 با سنسور BH1750FVI

رزبری پای Raspberry Pi

پک ۳ عددی کابل فلت ۲۰ سانتی متری رنگی Jumper color kit

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه