جدول المحتويات:
- الخطوة 1: الأشياء المستخدمة في هذا المشروع
- الخطوة الثانية: القصة
- الخطوة 3: توصيل الأجهزة
- الخطوة 4: تكوين البرنامج
- الخطوة 5: إنشاء موقع الويب
فيديو: انظر حل LoRa IoTea: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-02-02 14:32
نظام جمع المعلومات الأوتوماتيكي المطبق في مزارع الشاي. إنه جزء من جمع المعلومات الزراعية الذكية.
الخطوة 1: الأشياء المستخدمة في هذا المشروع
مكونات الأجهزة
- جروف - مستشعر ثاني أكسيد الكربون (MH-Z16)
- جروف - مستشعر الضوء الرقمي
- جروف - جهاز استشعار الغبار (PPD42NS
- جروف - مستشعر الأكسجين (ME2-O2-Ф20)
- رطوبة التربة ومستشعر درجة الحرارة
- بوابة LoRa LoRaWAN - مجموعة 868 ميجا هرتز مع Raspberry Pi 3
- جروف - مستشعر درجة الحرارة وهومي والبارومتر (BME280)
تطبيقات البرمجيات والخدمات عبر الإنترنت
مايكروسوفت فيجوال ستوديو 2015
الخطوة الثانية: القصة
تهدف الزراعة الذكية إلى تطبيق تقنية إنترنت الأشياء على الزراعة التقليدية ، باستخدام أجهزة الاستشعار والبرمجيات للتحكم في الإنتاج الزراعي من خلال منصات الهاتف المحمول أو الكمبيوتر ، مما يجعل الزراعة التقليدية أكثر "ذكاءً".
على جبل مينجدينج شمال شرق يان ، سيتشوان ، تمتد سلسلة التلال الجبلية من الغرب إلى الشرق في بحر أخضر. هذا مشهد مألوف للغاية بالنسبة لدنغ البالغ من العمر 36 عامًا ، وهو أحد صانعي الشاي القلائل جدًا من جيله ، مع مزرعة تبلغ مساحتها 50 مترًا مكعبًا (= 3.3 هكتارًا) تقع على مستوى 1100 متر فوق سطح البحر. ينحدر دينغ من عائلة من صانعي الشاي ، لكن الاستمرار في إرث العائلة ليس بالمهمة السهلة. تتم زراعة أنواع الشاي لدينا على ارتفاعات عالية في بيئة عضوية لضمان جودتها الممتازة. ولكن في الوقت نفسه ، تكون كثافة النمو منخفضة ، والتكلفة مرتفعة ، والتبرعم غير متساوٍ ، مما يجعل حصاد الشاي صعبًا. هذا هو السبب في أن شاي الجبال العالية عادة ما يكون حصادًا صغيرًا ولا تنعكس قيمته في السوق . على مدار العامين الماضيين ، كان دنغ يحاول رفع وعي المستهلكين بشاي أعالي الجبال للترويج لقيمته. وعندما التقى فان ، الذي كان يبحث عن مزرعة لتنفيذ تقنية Seeed's IoTea ، تم التوصل إلى حل مثالي. يهدف حل Seeed IoTea إلى مساعدة مزارعي الشاي على إدارة المزارع بشكل أفضل دون تغيير الممارسات التقليدية لزراعة الشاي ، وتقديم بيانات بيئية في الوقت الفعلي من المزارع على منصة مفتوحة.
تتكون تقنية إنترنت الأشياء من أجهزة استشعار وعقد وبوابات ، وتجمع بيانات في الوقت الفعلي عن العوامل التي قد تؤثر على جودة الشاي أثناء عمليات الزراعة والإنتاج ، بما في ذلك درجة الحرارة والرطوبة ، وثاني أكسيد الكربون ، والأكسجين ، والجسيمات الدقيقة ، والتعرض للضوء. يتم جمع البيانات بواسطة المستشعرات ، وإرسالها بواسطة العقد إلى البوابة وفي النهاية إلى السحابة ، ويمكن الوصول إليها للعملاء النهائيين على صفحة الويب.
الخطوة 3: توصيل الأجهزة
الخطوة 1: اتصال البوابة
يتم تثبيت البوابة بشكل منفصل في صندوق. بالنظر إلى مشكلة تبديد الحرارة ، أضفنا مروحتين. أحدهما مخصص لتبديد الحرارة لـ Raspberry Pi ، والآخر مخصص لتدوير الهواء الداخلي والخارجي. يتم وضع صندوق المدخل في منزل المزارع ، لذلك لا نحتاج إلى النظر في مشكلة الطاقة الخاصة به.
الخطوة 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] : درجة حرارة الهواء ،
Lora_data [1] : رطوبة الهواء ،٪
Lora_data [2] : ارتفاع عال ثمانية ، م
Lora_data [3] : ارتفاع منخفض ثمانية
Lora_data [4] : تركيز ثاني أكسيد الكربون مرتفع ثمانية ، جزء في المليون
Lora_data [5] : تركيز ثاني أكسيد الكربون منخفض ثمانية
Lora_data [6] : تركيز غبار مرتفع ثمانية ، قطعة / 0.01 قدم مكعب
Lora_data [7] : تركيز الغبار منخفض ثمانية
Lora_data [8] : شدة الضوء عالية ثمانية ، لوكس
Lora_data [9] : شدة الضوء منخفضة ثمانية
Lora_data [10] : تركيز O2 ،٪ (البيانات الأولية مقسومة على 1000)
Lora_data [11] : درجة حرارة التربة ،
Lora_data [12] : رطوبة التربة ،٪
Lora_data [13] : جهد البطارية ، v
Lora_data [14] رمز خطأ أجهزة الاستشعار
خطا بالكود:
Lora_data [14] = [bit7، bit6، bit5، bit4، bit3، bit2، bit1، bit0]
معنى كل بت:
بت 0: 1 ---- خطأ في مستشعر درجة الحرارة وهومي ومقياس الضغط (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
#defineinterval_time 600 // second
يمكن تغيير هذه المعلمة لتغيير دورة نقل البيانات. في كل دورة ، يستغرق الحصول على البيانات حوالي دقيقة واحدة. لذلك ، لا يوصى بتغيير هذه القيمة إلى أقل من 60 ثانية.
ب) وقت إحماء مستشعر الغبار
//seeedtea.ino
#definePreheat_time 30000 // وقت إحماء DustSensor ، مللي ثانية // Dust_other.cpp #definesampletime_ms 30000 // samplingtime30s
ج) معامل الجهد
//POWER_Ctrl.cpp
#defineBattery_coefficient 0.159864 // قيمة ADC × Battery_coefficient = battery_voltage #defineSolar_coefficient 0.22559 // قيمة ADC × معامل_الطاقة الشمسية = الفولتية الشمسية
يتم حساب هاتين المعلمتين بناءً على دائرة مقسم الجهد.
د) عتبة درجة حرارة فتح المروحة
//POWER_Ctrl.cpp
#defineFan_start_temp 45 // tempsurethreshold #defineFan_start_light 500 // شدة الضوء
عندما تتجاوز درجة الحرارة الفعلية العتبة ، ستبدأ المروحة في التبريد.
هـ) معلمة تهيئة مستشعر O2
//Oxygen.cpp
# حدد O2_percentage 208.00 //20.8٪
و) مفتاح ماكرو
//seeedtea.ino
#defineLORA_RUN // بعد التعليق ، ستتوقف تهيئة Lora ونقل البيانات #defineSENSOR_RUN // بعد التعليق ، ستتوقف المستشعرات الخارجية عن العمل // POWER_Ctrl.cpp #defineFAN_ON // Fortesting only ، يحتاج التطبيق العملي إلى التعليق / **** *** وضع التحكم DS18B20 ********************** / #defineSlower_Mode // الوضع البطيء مع درجة الحرارة. التعليق خارج هو الوضع السريع
ز) رسم الخرائط
D2: مؤشر LED ووحدة تحكم خارجية لإعادة الضبط: SCL و SDA
//Dust_other.h
#defineDust_pin 3 // مستشعر الغبار //CO2.cpp # حدد CO2_serial Serial1 // استخدم منفذ hardwareserial (D0 & D1) //seeedtea.ino #definedataPin 6 // Soil data pin #defineclockPin 7 // Soil clock pin // POWER_Ctrl. h # حددDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // دبوس التحكم للمستشعرات الموضوعة في صندوق التهوية #defineSoil_CtrlPin 11 // Soil Moisture & Temperature Sensor Switch #defineBattery_pin A2 // قياس جهد البطارية # تعريف A3 / قياس جهد الألواح الشمسية // الأكسجين. h # تحديد O2_pin A1 // مستشعر O2
ح) جهاز توقيت حراسة
يُستخدم مؤقت المراقبة لمراقبة حالة تشغيل النظام. عندما يعمل النظام بشكل غير طبيعي ، ستتم إعادة تعيين العقدة ، بحيث يمكن تشغيلها بشكل مستمر لفترة طويلة.
المكتبة المراد الرجوع إليها:
- تمت إضافة Adafruit_SleepyDog.h إلى المشروع
- يتم حزم Adafruit_ASFcore-master.zip في مجلد المشروع ويجب إضافته يدويًا إلى Arduino IDE.
الوظائف ذات الصلة:
تمكين المراقبة
int WatchdogSAMD:: enable (int maxPeriodMS ، bool isForSleep)
معلمات الإدخال:
Int maxPeriodMS: وقت الانتظار بالمللي ثانية. الحد الأقصى المسموح به هو 16000 مللي ثانية.
قيمة الإرجاع:
نوع Int ، قم بإرجاع وقت الانتظار الفعلي
إعادة تعيين مراقب
Void WatchdogSAMD:: إعادة تعيين ()
قم باستدعاء هذه الوظيفة لإعادة ضبط مؤقت المراقبة ، والمشار إليه باسم "إطعام الكلب". سيؤدي تجاوز وقت الانتظار بدون إعادة الضبط إلى إعادة تشغيل العقدة.
وقف الحراسة
WatchdogSAMD باطلة:: تعطيل ()
بوابة
في هذا القسم سوف نقدم كيفية الاتصال بخادم Loriot.
الخطوة 1: تسجيل بوابة خادم لوريوت
أ) يحتاج المستخدم الجديد إلى تسجيل حساب أولاً ، انقر فوق عنوان التسجيل. املأ اسم المستخدم وكلمة المرور وعنوان البريد الإلكتروني للتسجيل ، بعد التسجيل سيتم إرسال بريد إلكتروني إليك ، يرجى اتباع التعليمات الواردة في البريد الإلكتروني للتفعيل.
ب) بعد التنشيط الناجح ، انقر هنا لتسجيل الدخول. الطبقة الافتراضية هي "شبكة المجتمع" ، وهي تدعم بوابة واحدة (RHF2S001) و 10 عقد.
ج) أدخل Dashboard -> Gateway ، انقر فوق Add Gateway ابدأ لإضافة Gateway.
د) حدد Raspberry Pi 3
هـ) حدد على النحو التالي:
- واجهة الراديو الأمامية -> RHF2S001 868/915 ميجا هرتز (SX1257)
- الحافلة -> SPI
و) املأ عنوان MAC الخاص بالملف RHF2S001 ، يجب أن يكون بتنسيق b8: 27: eb: xx: xx: xx. وأيضًا إدخال معلومات موقع البوابة.
ز) انقر فوق "تسجيل بوابة Raspberry Pi" لإنهاء التسجيل.
ح) انقر فوق البوابة المسجلة للدخول إلى صفحة التكوين ، وقم بتبديل "خطة التردد" يدويًا ، يتم تحديد خطتك هنا حسب نوع نوع RHF2S001 ، الخطة المتاحة هي CN470 , CN473 , CN434 , CN780 , EU868 ، بعد التحديد ، يرجى تحديث الصفحة للحصول على القناة بالضبط. في هذا الويكي نختار EU868.
ط) قم بتشغيل الأمر في طرف المعجون :
القرص المضغوط /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 Connect Node
أ) احصل على قنوات البوابة المتاحة
يمكن الحصول على قنوات البوابة الحالية من لوحة التحكم -> البوابة -> البوابة الخاصة بك ، ويمكنك رؤية القنوات المتاحة كما في الصورة أدناه.
ب) انظر التكوين GPS LoRAWAN (RHF3M076)
افتح الشاشة التسلسلية لـ ArduinoIDE ، انقر فوق الأمر أدناه.
في + الفصل
لتأكيد القناة الافتراضية لـ Seeeduino_LoRAWAN GPS الخاص بك ، ستحصل على 3 قنوات. إذا لم تكن هناك قناة متاحة ، فيمكنك تغيير قنوات Seeeduino_LoRAWAN بواسطة الأمر أدناه.
في + ch = 0 ، 868.1
في + ch = 1 ، 868.3 في + ch = 2 ، 868.5
ثم يمكنك استخدام في + ch مرة أخرى للتحقق.
ج) إضافة Seeeduino_LoRAWAN GPS باعتباره ABP NodeLog في خادم Loriot ، انقر فوق لوحة القيادة -> التطبيقات -> SimpleApp. انقر فوق استيراد ABP , المدخلات الموجودة أدناه
- DevAddr: Seeeduino_LoRAWAN GPS يمر بأمر "AT + ID" (ملاحظة: Loriot لا يدعم موصل النقطتين ، يلزم إزالته يدويًا)
- FCntUp سيتو 1
- FCntDn : سيتو 1
- NWKSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
- APPSKEY : Defaultvalue 2B7E151628AED2A6ABF7158809CF4F3C
- EUI : DEVEUI، Seeeduino_LoRAWAN GPS الحصول على أمر "AT + ID"
انقر فوق الزر "استيراد جهاز" لإنهاء استيراد الجهاز. اختر الآن Dashboard-> Applications -> SampleApp ، سترى عقدة ABP الجديدة التي أضفتها للتو.
د) إرسال البيانات من Seeeduino_LoRAWAN
الانتباه! هذا مجرد اختبار.
العودة إلى الشاشة التسلسلية لـ ArduinoIDE ، أرسل الأمر:
AT + CMSGHEX = "0a 0b 0c 0d 0e"
ثم انتقل إلى Dashboard -> Applications -> SampleApp -> Device ، وانقر فوق Node Device EUI أو DevAddr ، وستجد البيانات التي أرسلتها للتو هنا.
لمزيد من التفاصيل ، يرجى الرجوع إلى هذا الويكي.
الخطوة 5: إنشاء موقع الويب
أدوات ذات صلة
- فيرتالينف
- بايثون 3
- جونيكورن
- مشرف
- Nginx
- MySQL
نستخدم CentOS7 كبيئة نشر اختبار
فيرتالينف
استخدم virtualenv لبناء بيئة إنتاج python3 مستقلة
أ) التثبيت
نقطة تثبيت virtualenv
ب) إنشاء بيئة افتراضية python3
Virtualenv -p python3 iotea
ج) ابدأ البيئة الافتراضية وأدخل دليل iotea
مصدر بن / تفعيل
د) وجود البيئة
تعطيل
بايثون 3
أ) التثبيت
yum تثبيت الإصدار epel
yum تثبيت python36
ب) تثبيت مكتبة معتمدة PyMySQL و DBUtils و Flask و websocket-client و configparser
نقطة تثبيت pymysql
تثبيت الأنابيب dbutils الأنابيب تثبيت القارورة
جونيكورن
أ) التثبيت (تحت بيئة Python3)
نقطة تثبيت gunicorn
ب) تشغيل مشروع قارورة (ضمن دليل مشروع iotea)
gunicorn -w 5 -b 0.0.0.0:5000 التطبيق: التطبيق
ج) قم بتشغيل websocket-clint للحصول على بيانات لوريوت
gunicorn loriot: التطبيق
د) عرض شجرة عملية Gunicorn
pstree -ap | grep gunicorn
مشرف
أ) تثبيت (مستخدم الجذر)
مشرف تثبيت نقطة
ب) إنشاء ملفات التكوين
echo_supervisord_conf> /etc/supervisord.conf
ج) إنشاء دليل وتقديم تكوين دليل
mkdir -p /etc/supervisor/conf.d
قم بتحرير /etc/supervisord.conf وقم بتعديل حقل الملفات ضمن [include] في نهاية الملف.
لاحظ أنك بحاجة إلى إزالة "؛" أمام هذين السطرين ، وهو حرف التعليق.
[يشمل]
الملفات = /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 # open loriot استقبال البيانات superviosrctl بدء iotea # فتح تطبيق قارورة iotea
و) العمليات المشتركة الأخرى
Supervisorctl reload # إعادة تحميل ملف التكوين
مشرف تحديث ctl ctl start xxx Supervisorctl stop xxx Supervisorctl status xxx supervisorctl help # view more command
Nginx
أ) التثبيت
yum install -y nginx
ب) التكوين
cp NginxIotea.conf /etc/nginx/conf.d/
ج) ابدأ Nginx
systemctl ابدأ خدمة nginx.
MySQL
أ) المعلمات ذات الصلة
المستخدم = "الجذر"
passwd = '1234' db = منفذ 'iotea' = 3306
ب) ملف
iotea_iotea.sql
ج) ملف التكوين
db.ini
موصى به:
كرة بلورية: انظر إلى مستقبلك: 7 خطوات
كرة بلورية: انظر إلى مستقبلك !: هل تريد أن تعرف أسرار الكون؟ حسنًا ، لا يمكنك ذلك! ومع ذلك ، يمكنك معرفة ما يخبئه مستقبلك من خلال صنع كرة بلورية خاصة بك. أعني ، ما الذي نخسره؟ إذا كان بإمكاني صنع واحدة ، فيمكنك أيضًا باستخدام شاشة LCD ، بعقب
تم الاطلاع على حل IoTea LoRa (تحديث 1811): 5 خطوات
تم الاطلاع على IoTea LoRa Solution (تحديث 1811): الإنترنت + هو مفهوم شائع الآن. هذه المرة جربنا الإنترنت بالإضافة إلى الزراعة لجعل حديقة الشاي تنمو عبر الإنترنت. شاي
قصب العين: انظر بأذنيك: 16 خطوة (بالصور)
Cane-eye: انظر بأذنيك: أريد إنشاء "عصا ذكية" يمكن أن تساعد الأشخاص الذين يعانون من إعاقات بصرية أكثر بكثير من الحلول الحالية. ستكون العصا قادرة على إخطار المستخدم بالأشياء الموجودة في الأمام أو على الجانبين من خلال إحداث ضجيج في الصوت المحيط t
انظر مثل عدوك: إنشاء علامات مربكة ومذهلة ومحاكاة ساخرة!: 6 خطوات (بالصور)
انظر مثل عدوك: قم بإنشاء إشارات مربكة ومذهلة ومحاكاة ساخرة !: في هذا الدليل سوف تتعلم تصميم التمويه. في المشاريع السابقة ، قمت بتخصيص وصقل تقنيات مختلفة لتقليد لافتات الحكومة أو الشركات. سيسمح لك استخدام الطرق الموضحة في الخطوات التالية بإجراء
المخزون - تم الآن استبدال التشخيصات السريعة للكمبيوتر الشخصي ، انظر أدناه: 6 خطوات
المخزون - تم الآن استبدال التشخيصات السريعة للكمبيوتر الشخصي ، انظر أدناه: إذا احتجت في أي وقت إلى العمل على جهاز كمبيوتر ليس أمامك ، فأنت بحاجة إلى مخزون دقيق. جاء هذا التوجيه لمجرد أن أحد الزملاء يواجه مشكلة في العثور على برنامج تشغيل لجهاز كمبيوتر. سأستخدم Aida32 الشخصي من http://majorgeeks.com