خادم البيانات البحرية هو خادم البيانات المركزية (السحابة) للبيانات البحرية. إنه يخزن البيانات التي تأتي من Exmaple MDC (جامع البيانات البحرية أو Lora-Bootsmonitor أو أي جهاز آخر) ، في قاعدة بيانات ويمنح المستخدم واجهة المستخدم الرسومية لإظهار البيانات والقيام ببعض التكوينات.
كانت الفكرة الأولية ، هي أن تكون لديها إمكانية أن تكون قادرًا على رؤية بعض البيانات البحرية (درجة الحرارة ، فولتية البطارية ، إنذار الثقل) بينما لا تكون على متن القارب.
MDC IT لوحة صغيرة مع ESP32 وعدد قليل من المستشعرات ، التي تجمع بيانات المستشعر وتنقل هذه البيانات إلى MDS. ستجد وثائق MDC تحت https://github.com/bytecrusher/maritimedatacollectorsmall
خادم البيانات البحرية هو تطبيق ويب لتخزين البيانات وعرض البيانات للمستخدم. إنه يعيد قاعدة بيانات MySQL لتخزين البيانات وخادم الويب مع دعم PHP لعرض المعلومات مع البيانات. يمكن لـ MDS عرض البيانات من أجهزة الاستشعار في الرسم البياني/المقاييس أو المخططات. من الممكن أيضًا تكوين لوحاتك وأجهزة الاستشعار.
يتم تنظيم الخادم في الواجهة الخلفية (API لتلقي البيانات من Collector و TTN ، وإرسال رسائل البريد الإلكتروني) وواجهة أمامية لعرض البيانات في متصفح المستخدمين.
الخلفية تخزن البيانات في DB. كما أنه يتحقق مما إذا كانت البيانات صالحة وأن توجد مستشعرات في DB ، وإلا سيتم إنشاء سجلات DB الجديدة.
للواجهة الأمامية ، يحتاج المستخدم إلى تسجيل الدخول. الآن يمكن للمستخدم القيام ببعض التكوينات أو عرض بعض البيانات.
انسخ جميع ملفات MDS من مجلد "SRC" إلى Htdocs Dir. قم بإنشاء قاعدة بيانات جديدة (مع phpmyadmin) وإنشاء مستخدم جديد مع امتيازات الكتابة لهذه قاعدة البيانات هذه. افتح http: //yourdomain/maritimedataserver/install/index.php في متصفحك وخطو خطوات التثبيت. بعد الانتهاء من التثبيت ، قم بإزالة DIR المسمى "تثبيت" (لأسباب أمنية).
الآن MDS متوفر تحت http: // yourdomain/maritimedataserver



لتشغيل MDS ، تحتاج إلى خادم ويب (Apache) مع دعم PHP و MySQL DB.
إذا قمت بتشغيل MDC S خارج شبكتنا المحلية ، فيجب أن يكون MDS الخاص بك عامًا (يجب أن تكون TTN قادرة على الوصول إلى هذا الخادم).
للتنمية ، أستخدم حلولًا مختلفة. الأول هو حاوية Docker المحلية التي تعمل على جهاز كمبيوتر الترميز الخاص بي. ثانياً ، لدي على شبكة الإنترنت الخاصة بي ، والتي تسحب فرع "التطوير" الخاص بي من Guthub هناك.
######## My Current Way First Wave: أقوم بإعداد 4 حاويات (واحدة لكل خدمة):
لقد قمت بتكوين VSC ليكون قادرًا على العمل مباشرة في مجلد HTDOCS إذا كان Apache. لذلك لا يوجد تزامن يدوي للملفات المطلوبة.
الموجة الثانية: في نطاق ويب الفرعي الخاص بي ، أقوم بإعداد Respository الخاص بي ، لذلك يمكنني تشغيل طلب سحب من لوحة Plesk ولدي أحدث فرع التطوير على WebSpace.
لتصحيح الأخطاء PHP أنا استخدم xDebug. يتم التكوين في mamp في **/التطبيقات/xampp/xamppfiles/etc/php.ini ويبدو:
[xDebug]
zend_extension = "/usr/local/cellar/php/8.1.1/pecl/20210902/xdebug.so"
xDebug.mode = تصحيح
xDebug.client_host = 127.0.0.1
xdebug.client_port = "9000"
في Firefox ، استخدم "Xdebug Helper" (مفتاح IDE: VSCODE).
في Safari أستخدم "XDEBUGTOGGELESTENSIOND 1.2".
لتصحيح الأخطاء ، عليك أن تذهب إلى "Ausführen" - "Debugger Starte" وزر اللعب الأخضر (F5).
بسبب أنواع مختلفة من أجهزة الاستشعار وحاول تقليل كمية البيانات التي تم نقلها عبر WiFi (ولاحق Lora) ، من الجيد أن يكون لديك مخطط لأجهزة الاستشعار لنقل البيانات. أيضا ليست هناك حاجة لتقديم اسم القيمة.
إذا كانت جميع القيم تسليم بالترتيب الصحيح ، فمن الواضح أي قيمة هي.
المخطط #: 1
الاسم: DS18B20
deschription: TempSensor
NR من المستشعر (متصل): 1
عدد القيم: 1
اسم القيم: #1 درجة الحرارة
نوع القيمة: #1 UINT8 (؟)
المخطط #: 2
الاسم: DS2438
deschription: Batteriemonitor
NR من المستشعر (متصل): 1
عدد القيم: 4
اسم القيم: #1 CH1 Voltage ، 2 #CH1 التيار ، #3 CH2 الجهد ، #4 CH2 تيار
نوع القيمة: #1 UINT8 (؟) ، #2 UINT8 (؟) ، #3 UINT8 (؟) ، #4 UINT8 (؟)
المخطط #: 3
الاسم: DHT11
deschription: Tempsensor والرطوبة
NR من المستشعر (متصل): 1
عدد القيم: 2
اسم القيم: #1 درجة الحرارة ، #2 الرطوبة
نوع القيمة: #1 UINT8 (؟) ، #2 UINT8 (؟)
المخطط #: 4
الاسم: المدخلات الرقمية
deschription: المدخلات الرقمية
NR من المستشعر (متصل): 1
عدد القيم: 1
اسم القيم: #1 الإدخال الرقمي
نوع القيمة: #1 منطقي (؟)
المخطط #: 5
الاسم: GPS
deschription: بيانات من جهاز الاستقبال GPS
NR من المستشعر (متصل): 1
عدد القيم: 4
اسم القيم: #1 Latitude ، #2 خط الطول ، #3 دورة ، #4 السرعة
نوع القيمة: #1 UINT8 (؟) ، #2 UINT8 (؟) ، #3 UINT8 (؟) ، #4 UINT8 (؟)