فهرست مطالب:
- مرحله 1: موارد مورد استفاده در این پروژه
- مرحله 2: داستان
- مرحله 3: اتصال سخت افزار
- مرحله 4: پیکربندی نرم افزار
- مرحله 5: ساخت وب سایت
تصویری: راه حل LoRa IoTea را مشاهده کردید: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
یک سیستم جمع آوری اطلاعات خودکار برای مزارع چای استفاده می شود. این بخشی از جمع آوری اطلاعات کشاورزی هوشمند است.
مرحله 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
توصیه شده:
راه اندازی آسان کنترل از راه دور IR با استفاده از LIRC برای Raspberry PI (RPi) - جولای 2019 [قسمت 1]: 7 مرحله
راه اندازی آسان کنترل از راه دور IR با استفاده از LIRC برای Raspberry PI (RPi) - ژوئیه 2019 [قسمت 1]: پس از جستجوی زیاد ، من از اطلاعات متناقض در مورد نحوه تنظیم کنترل از راه دور IR برای پروژه RPi خود شگفت زده و مأیوس شدم. فکر می کردم کار آسانی باشد اما راه اندازی کنترل مادون قرمز لینوکس (LIRC) برای مدت طولانی مشکل ساز بوده است
راه بهتر برای مشاهده/سند فایلها در دستورالعمل ها: 4 مرحله
راه بهتر برای مشاهده/مستندسازی فایل ها در دستورالعمل ها: مردم اغلب فایلهای پروژه را از طریق بارگذاری Instructables قرار می دهند. اغلب این فایل های منبع نرم افزاری هستند که حتی ممکن است قلب تپنده دستورالعمل باشد. اما Instructables راهی آسان برای خواندن و مرور کد به خواننده نمی دهد. (
کنترل لوازم خانگی بیش از LoRa - LoRa در اتوماسیون خانگی - کنترل از راه دور LoRa: 8 مرحله
کنترل لوازم خانگی بیش از LoRa | LoRa در اتوماسیون خانگی | کنترل از راه دور LoRa: وسایل برقی خود را از راه دور (کیلومتر) بدون حضور اینترنت کنترل و خودکار کنید. این از طریق LoRa امکان پذیر است! سلام بچه ها چه خبر؟ Akarsh اینجا از CETech. این PCB همچنین دارای یک صفحه نمایش OLED و 3 رله است که یک
راه حل IoTea LoRa (به روز رسانی 1811) را مشاهده کردید: 5 مرحله
IoTea LoRa Solution (به روز رسانی 1811): اینترنت+ امروزه یک مفهوم محبوب است. این بار ما اینترنت و کشاورزی را امتحان کردیم تا باغ چای از طریق اینترنت چای رشد کند
راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812): 5 مرحله
IoTea LoRa Solution (با Azure ، به روز رسانی 1812): Microsoft Azure یک سرویس ابری است که قدرت محاسباتی قوی تر و پایدارتری را ارائه می دهد. این بار ما سعی کردیم داده های IoTea خود را به آن ارسال کنیم