فهرست مطالب:

راه حل LoRa IoTea را مشاهده کردید: 5 مرحله
راه حل LoRa IoTea را مشاهده کردید: 5 مرحله

تصویری: راه حل LoRa IoTea را مشاهده کردید: 5 مرحله

تصویری: راه حل LoRa IoTea را مشاهده کردید: 5 مرحله
تصویری: اگر در 5 جا روی کمک دیگران حساب کنید زندگیتان تباه میشود! سخنان سقراط 2024, نوامبر
Anonim
راه حل LoRa IoTea را مشاهده کردید
راه حل LoRa IoTea را مشاهده کردید

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

مرحله 1: موارد مورد استفاده در این پروژه

اجزای سخت افزاری

  • Grove - سنسور دی اکسید کربن (MH -Z16)
  • Grove - سنسور نور دیجیتال
  • Grove - Dust Sensor (PPD42NS)
  • Grove-Oxygen Sensor (ME2-O2-Ф20)
  • سنسور رطوبت و دما خاک
  • LoRa LoRaWAN Gateway - کیت 868 مگاهرتز با رزبری پای 3
  • Grove - Temp & Humi & Barometer Sensor (BME280)

برنامه های نرم افزاری و خدمات آنلاین

Microsoft Visual Studio 2015

مرحله 2: داستان

کشاورزی هوشمند عبارت است از به کارگیری فناوری اینترنت اشیاء در کشاورزی سنتی ، با استفاده از حسگرها و نرم افزار برای کنترل تولید کشاورزی از طریق تلفن همراه یا سیستم عامل های رایانه ای ، و کشاورزی سنتی را "هوشمند" تر می کند.

در کوه منگدینگ در شمال شرقی یاان ، سیچوان ، خط الراس کوه در دریای سبز از غرب به شرق می گذرد. این مکان برای دنگ 36 ساله ، یکی از معدود چای سازان Mengding از نسل خود ، با مزارع 50mu (= 3.3 هکتار) واقع در 1100 متر ارتفاع از سطح دریا ، بسیار آشنا است. دنگ از خانواده چای سازان می آید ، اما حفظ میراث خانوادگی کار ساده ای نیست. چای ما در ارتفاع زیاد در محیطی ارگانیک رشد می کند تا از کیفیت عالی آن اطمینان حاصل شود. اما در عین حال ، تراکم رشد کم است ، هزینه زیاد است و جوانه زدن ناهموار است ، و برداشت چای را سخت می کند. به همین دلیل است که چای های مرتفع معمولاً محصول کمی هستند و ارزش آنها در بازار منعکس نمی شود. در دو سال گذشته ، دنگ در تلاش است تا آگاهی مصرف کنندگان از چای کوهی را ارتقا دهد تا ارزش آن را ارتقا دهد. و هنگامی که با فن ملاقات کرد ، که به دنبال مزارعی برای پیاده سازی فناوری Seeed’s IoTea بود ، تطبیق کاملی برای راه حل ایجاد شد. راه حل مشاهده شده IoTea با هدف کمک به کشاورزان چای برای مدیریت بهتر مزارع بدون تغییر شیوه های سنتی کشت چای و ارائه داده های زیست محیطی واقعی از مزارع در یک بستر باز ارائه می شود.

IoTea متشکل از حسگرها ، گره ها و دروازه ها ، داده های زمان واقعی عواملی را که ممکن است بر کیفیت چای در حین کشت و فرآیندهای تولید ، از جمله دما و رطوبت ، CO2 ، O2 ، PM و قرار گرفتن در معرض نور تأثیر بگذارد ، جمع آوری می کند. داده ها توسط حسگرها جمع آوری می شوند ، توسط گره ها به دروازه و در نهایت به ابر ارسال می شوند و در صفحه وب برای مشتریان نهایی در دسترس قرار می گیرند.

مرحله 3: اتصال سخت افزار

مرحله 1: اتصال دروازه

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

تصویر
تصویر

مرحله 2: اتصال گره

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

تصویر
تصویر
تصویر
تصویر

گره در یک جعبه ضد آب قرار داده شده است. به منظور اتصال بهتر به گره ، یک برد آداپتور ایجاد می کنیم. در آخر ، ما لینک بارگیری شماتیک این تخته را ارائه می دهیم. همانطور که در زیر نشان داده شده است ، کابل های حسگر از طریق بلوک های ترمینال به برد آداپتور وصل می شوند. ما از 3 لوله MOS (SI2301) برای ساخت مدارهای سوئیچ برای کنترل روشن و خاموش شدن سنسورها و فن استفاده می کنیم. از فن برای خنک شدن استفاده می شود. ما یک سنسور دما (DS18B20) داریم که روی برد نصب شده است. این می تواند دمای داخلی جعبه را به ما بگوید و سپس میکروکنترلر تصمیم می گیرد که آیا فن را روشن کند یا خیر. ما از چندین مقاومت برای ایجاد یک مدار تقسیم ولتاژ برای اندازه گیری ولتاژ باتری سرب-اسید استفاده می کنیم. در نهایت ، ما 3 رابط IIC و پورت سریال را روی برد برای توسعه و اشکال زدایی بعدی ذخیره می کنیم.

تصویر
تصویر

بیایید در مورد مشکل منبع تغذیه گره صحبت کنیم. گره به طور تصادفی در مزارع چای قرار می گیرد ، بنابراین روش منبع تغذیه سنتی دیگر قابل استفاده نیست. استفاده از راه حل انرژی خورشیدی ایده خوبی است. در حال حاضر راه حل های زیادی در بازار ارائه شده است. ما می توانیم یکی از آنها را که نیازهای ما را برآورده می کند انتخاب کنیم. در محلول انتخابی ما 3 قسمت وجود دارد: پنل خورشیدی ، کنترل کننده شارژ خورشیدی و باتری اسید سربی. به منظور جذب بهتر انرژی خورشیدی ، ما پنل خورشیدی را در بالای براکت قرار می دهیم و زاویه آن را تنظیم می کنیم تا اطمینان حاصل شود که رو به خورشید است. ما کنترل کننده شارژ خورشیدی را در همان جعبه با گره قرار دادیم. از آنجا که فضای اضافی داخل جعبه وجود ندارد ، مجبور شدیم یک جعبه ضد آب جدید برای قرار دادن باتری سرب اسید پیدا کنیم.

تصویر
تصویر
تصویر
تصویر
تصویر
تصویر

مرحله 4: پیکربندی نرم افزار

گره

در این بخش ، پیکربندی نرم افزاری اصلی گره را معرفی می کنیم.

فرمت داده

داده های بارگذاری شده توسط گره به دروازه:

char بدون امضا Lora_data [15] = {0، 1، 2، 3،، 4، 5، 6، 7، 8، 9، 10، 11، 12، 13، 14}؛

معنی هر بیت داده:

Lora_data [0] temperature دمای هوا ،

Lora_data [1] humidity رطوبت هوا ،٪

Lora_data [2] : ارتفاع هشت متر ، متر

Lora_data [3] low ارتفاع کم هشت

Lora_data [4] concentration غلظت CO2 بالا هشت ، ppm

Lora_data [5] concentration غلظت CO2 کم هشت

Lora_data [6] concentration غلظت گرد و غبار بالا هشت ، عدد/0.01cf

Lora_data [7] concentration غلظت گرد و غبار کم هشت

Lora_data [8] intensity شدت نور بالا هشت ، لوکس

Lora_data [9] intensity شدت نور کم هشت

Lora_data [10] concentration غلظت O2 ،٪ (داده های خام تقسیم بر 1000)

Lora_data [11] temperature دمای خاک ،

Lora_data [12] humidity رطوبت خاک ،٪

Lora_data [13] voltage ولتاژ باتری ، v

Lora_data [14] error کد خطای حسگرها

کد خطا:

Lora_data [14] = [bit7 ، bit6 ، bit5 ، bit4 ، bit3 ، bit2 ، bit1 ، bit0]

معنی هر بیت:

بیت 0: 1 ---- خطای Temp & Humi & Barometer Sensor (BME280)

بیت 1: 1 ---- خطای سنسور دی اکسید کربن (MH-Z16)

بیت 2: 1 ---- سنسور گرد و غبار (PPD42NS) خطا

بیت 3: 1 ---- خطای سنسور نور دیجیتال

بیت 4: 1 ---- خطای سنسور اکسیژن (ME2-O2-Ф20)

بیت 5: 1 ---- خطای سنسور رطوبت و دما خاک

بیت 6: محفوظ است

بیت 7: محفوظ است

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

تنظیم پارامتر: الف) چرخه انتقال داده

// seeedtea.ino

#زمان_متقابل_زمان 600 // ثانیه

این پارامتر را می توان برای تغییر چرخه انتقال داده ها تغییر داد. در هر چرخه ، جمع آوری اطلاعات حدود 1 دقیقه به طول می انجامد. بنابراین ، توصیه نمی شود این مقدار را به کمتر از 60 ثانیه تغییر دهید.

ب) زمان گرم شدن سنسور گرد و غبار

//seeedtea.ino

#definePreheat_time 30000 // DustSensor warming time، milliseond //Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s

ج) ضریب ولتاژ

//POWER_Ctrl.cpp

#defineBattery_coefficient 0.159864 // مقدار ADC × ضریب_باتری = ولتاژ_باطری #تعریف_شخص_خورشیدی 0.22559 // مقدار ADC co ضریب_خورشیدی = ولتاژ_خورشیدی

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

د) آستانه دمای باز شدن فن

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // درجه حرارت آستانه #defineFan_start_light 500 // شدت نور

وقتی دمای واقعی از آستانه فراتر رود ، فن شروع به سرد شدن می کند.

ه) پارامتر مقداردهی اولیه سنسور O2

//Oxygen.cpp

#defineO2_percentage 208.00 //20.8٪

و) سوئیچ ماکرو

//seeedtea.ino

#defineLORA_RUN // بعد از اظهار نظر ، مقداردهی اولیه Lora و انتقال داده متوقف می شود #deSineSEN_SUN_RUN // پس از اظهار نظر ، عملکرد خارجی حسگرها متوقف می شود *** حالت کنترل DS18B20 *********************/ #defineSlower_Mode // حالت آهسته با هم دما. نظر دادن حالت سریع است

g) نقشه برداری پین

D2: نشانگر LED و میکروکنترلر تنظیم مجدد خارجی IIC: SCL و SDA

// گرد و غبار دیگر

#defineDust_pin 3 // حسگر گرد و غبار //CO2.cpp #defineCO2_serial Serial1 // از پورت سخت افزار (D0 & D1) //seeedtea.ino #definedataPin 6 // پین اطلاعات خاک #defineclockPin 7 // پین ساعت خاک // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // فن #defineAir_CtrlPin 10 // پین کنترل سنسورهای قرار داده شده در لوورباکس /اندازه گیری ولتاژ پنل خورشیدی //Oxygen.h #defineO2_pin A1 // سنسور O2

ح) زمان سنج نگهبان

زمان سنج نگهبان برای نظارت بر وضعیت عملکرد سیستم استفاده می شود. وقتی سیستم به طور غیر عادی کار می کند ، گره بازنشانی می شود ، به طوری که می تواند به طور مداوم برای مدت طولانی اجرا شود.

کتابخانه مورد اشاره:

  • Adafruit_SleepyDog.h به پروژه اضافه شده است
  • Adafruit_ASFcore-master.zip در پوشه theproject بسته بندی شده و باید به صورت دستی به IDE آردوینو اضافه شود.

توابع مرتبط:

Watchdog را فعال کنید

int WatchdogSAMD:: فعال کردن (int maxPeriodMS ، bool isForSleep)

پارامترهای ورودی:

Int maxPeriodMS: زمان انتظار در میلی ثانیه. حداکثر مجاز 16000 میلی ثانیه است.

مقدار بازگشتی:

نوع Int ، زمان انتظار واقعی را بازگردانید

بازنشانی ناظر

void WatchdogSAMD:: reset ()

برای بازنشانی زمان سنج نگهبان ، که به آن "تغذیه سگ" گفته می شود ، با این عملکرد تماس بگیرید. بیش از زمان انتظار بدون تنظیم مجدد باعث راه اندازی مجدد گره می شود.

نگهبان را متوقف کنید

void WatchdogSAMD:: غیر فعال ()

دروازه

در این قسمت نحوه اتصال به سرور Loriot را معرفی می کنیم.

مرحله 1: ثبت نام دروازه سرور Loriot

الف) کاربر جدید باید ابتدا یک حساب کاربری ثبت کند ، روی آدرس ثبت نام کلیک کنید. برای ثبت نام نام کاربری ، رمز عبور و آدرس ایمیل را وارد کنید ، پس از ثبت نام یک ایمیل برای شما ارسال می شود ، لطفاً برای فعال کردن دستورالعمل موجود در ایمیل را دنبال کنید.

ب) پس از فعالسازی موفقیت آمیز ، برای ورود اینجا را کلیک کنید. ردیف پیش فرض "Network Community" است ، از 1 Gateway (RHF2S001) و 10 گره پشتیبانی می کند.

ج) وارد Dashboard -> Gateway شوید ، روی Add Gateway start کلیک کنید تا Gateway اضافه شود.

د) رزبری پای 3 را انتخاب کنید

ه) به صورت زیر تنظیم کنید:

  • رادیو جلو -> RHF2S001 868/915 مگاهرتز (SX1257)
  • BUS -> SPI

f) آدرس MAC RHF2S001 خود را پر کنید ، باید در قالب b8: 27 باشد: eb: xx: xx: xx. و همچنین اطلاعات موقعیت مکانی Gateway را وارد کنید.

ز) برای پایان ثبت نام ، روی "ثبت نام دروازه تمشک پای" کلیک کنید.

تصویر
تصویر

ح) برای ورود به صفحه پیکربندی ، روی دروازه ثبت شده کلیک کنید ، "برنامه فرکانس" را به صورت دستی تغییر دهید ، برنامه شما در اینجا براساس نوع RHF2S001 شما تعیین می شود ، طرح موجود CN470 , CN473 , CN434 , CN780 , EU868 است ، پس از انتخاب لطفاً صفحه را تازه کنید برای دریافت کانال دقیق در این ویکی ما EU868 را انتخاب می کنیم.

من) فرمان را در ترمینال بتونه اجرا کنید

cd /home/rxhf/loriot/1.0.2

sudo systemctl stop pktfwd sudo gwrst wget > -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io

j) Finish gateway registration. You will see the gateway is Connected now. Next is to register node.

تصویر
تصویر

مرحله 2: دستگاه اتصال گره Loriot Server

الف) کانال های دروازه موجود را دریافت کنید

کانال های دروازه فعلی را می توان از Dashboard -> Gateway -> Your Gateway دریافت کرد ، می توانید کانال های موجود را به عنوان تصویر زیر مشاهده کنید.

تصویر
تصویر

ب) پیکربندی Seeeduino LoRAWAN GPS (RHF3M076)

مانیتور سریال ArduinoIDE را باز کنید ، روی فرمان زیر ضربه بزنید.

در+ch

برای تأیید کانال پیش فرض GPS Seeeduino_LoRAWAN ، 3 کانال دریافت خواهید کرد. در صورت عدم وجود کانال در دسترس ، می توانید کانال های Seeeduino_LoRAWAN را با دستور زیر تغییر دهید.

در+ch = 0 ، 868.1

در+ch = 1 ، 868.3 در+ch = 2 ، 868.5

سپس می توانید دوباره از+ch برای بررسی استفاده کنید.

ج) GPS Seeeduino_LoRAWAN را به عنوان ABP NodeLog در سرور Loriot اضافه کنید ، روی Dash Board -> Applications -> SimpleApp کلیک کنید. روی وارد کردن ورودی ABP below در زیر موارد کلیک کنید

  • DevAddr: Seeeduino_LoRAWAN GPS از طریق دستور "AT+ID" عبور می کند (توجه: Loriot از اتصال روده بزرگ پشتیبانی نمی کند ، باید به صورت دستی برداشته شود)
  • FCntUp : Setto 1
  • FCntDn : Setto 1
  • NWKSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI : DEVEUI ، Seeeduino_LoRAWAN GPS از طریق دستور "AT+ID" عبور کنید
تصویر
تصویر

برای پایان وارد کردن دستگاه ، روی دکمه وارد کردن دستگاه کلیک کنید. اکنون Dashboard-> Applications -> SampleApp را انتخاب کنید ، ABP Node جدیدی را که تازه اضافه کرده اید مشاهده خواهید کرد.

تصویر
تصویر

د) ارسال داده از Seeeduino_LoRAWAN

توجه! این تنها یک امتحان است.

بازگشت به مانیتور سریال ArduinoIDE ، دستور را ارسال کنید:

AT+CMSGHEX = "0a 0b 0c 0d 0e"

سپس به Dashboard -> Applications -> SampleApp -> Device بروید ، روی Node Device EUI یا DevAddr کلیک کنید ، داده هایی را که تازه ارسال کرده اید در اینجا خواهید یافت.

تصویر
تصویر

برای جزئیات بیشتر ، لطفاً به این ویکی مراجعه کنید.

مرحله 5: ساخت وب سایت

ابزارهای مرتبط

  • virtualenv
  • پایتون 3
  • گونیکورن
  • سرپرست
  • Nginx
  • MySQL

ما از CentOS7 به عنوان محیط استقرار آزمایشی استفاده می کنیم

virtualenv

از virtualenv برای ایجاد یک محیط تولید مستقل python3 استفاده کنید

الف) نصب کنید

pip نصب virtualenv

ب) ایجاد یک محیط مجازی python3

virtualenv -p python3 iotea

ج) محیط مجازی را راه اندازی کرده و فهرست iotea را وارد کنید

منبع بن/فعال سازی

د) محیط موجود

از کار انداختن

پایتون 3

الف) نصب کنید

yam نصب epel-release

yum python36 را نصب کنید

ب) نصب کتابخانه وابسته PyMySQL ، DBUtils ، Flask ، websocket-client ، configparser

پیپ pymysql را نصب کنید

pip install dbutils pip install flask pip install websocket-client pip install configparser

گونیکورن

الف) نصب (تحت محیط Python3)

پیپ نصب gunicorn

ب) اجرای پروژه فلاسک (تحت فهرست پروژه iotea)

gunicorn -w 5 -b 0.0.0.0:5000 برنامه: برنامه

ج) websocket-clint را برای بدست آوردن اطلاعات loriot اجرا کنید

gunicorn loriot: برنامه

د) مشاهده درخت فرآیند Gunicorn

pstree -ap | grep gunicorn

سرپرست

الف) نصب (کاربر اصلی)

سرپرست نصب پیپ

ب) ایجاد فایل های پیکربندی

echo_supervisord_conf> /etc/supervisord.conf

ج) ایجاد یک دایرکتوری و معرفی پیکربندی فهرست

mkdir -p /etc/supervisor/conf.d

/etc/supervisord.conf را ویرایش کرده و قسمت فایل های زیر [شامل] در انتهای فایل را اصلاح کنید.

توجه داشته باشید که باید '؛' را حذف کنید. در مقابل این دو خط ، که شخصیت نظر است.

[عبارتند از]

فایلها = /etc/supervisor/conf.d/*.conf

به معنی معرفی /etc/supervisor/conf.d/. فایل پیکربندی زیر به عنوان فایل پیکربندی فرآیند (تحت نظارت سرپرست) استفاده می شود.

د) پیکربندی ورودی (تحت فهرست iotea)

cp iotea.conf /etc/supervisor/conf.d/

cp loriot.conf /etc/supervisor/conf.d/

ه) سرویس iotea باز کنید

superviosrctl بارگذاری مجدد #فایل پیکربندی را بارگیری کنید

superviosrctl شروع loriot #بازکردن دریافت اطلاعات loriot superviosrctl شروع iotea #باز کردن برنامه فلاسک iotea

و) سایر عملیات متداول

supervisorctl reload # بارگذاری مجدد فایل پیکربندی

supervisorctl update supervisorctl شروع xxx supervisorctl توقف xxx وضعیت supervisorctl xxx supervisorctl راهنما # مشاهده دستور بیشتر

Nginx

الف) نصب کنید

yum install -y nginx

ب) پیکربندی

cp NginxIotea.conf /etc/nginx/conf.d/

ج) Nginx را راه اندازی کنید

systemctl nginx.service را شروع کنید

MySQL

الف) پارامترهای مرتبط

کاربر = 'ریشه'

passwd = '1234' db = 'iotea' port = 3306

ب) پرونده

iotea_iotea.sql

ج) فایل پیکربندی

db.ini

توصیه شده: