co ntrol sy stem f أو ir mlimationإخلاء المسئولية: هذا مشروع شخصي وليس تابعًا لصاحب العمل الخاص بي
يجب أن يساعدك Cosyfir في سقي نباتاتك.
يعمل برنامج العقدة على متحكم Cortex Cortex STM32. يعمل برنامج الخادم على أنظمة تعتمد على UNIX مثل Debian. الصورة التالية تصور مثالا:
[] / +--+ / o/
[] <-> | <-> | | <-> ( )( ) <-> |
/ LoRa | +--+ MQTT ( ) SSH /
Sensor LoRaWAN TTN RPi User
Node Gateway Server @home
./node/* (Not part of cosyfir) ./server/*
يصف README كل من الخادم (مثل Raspberry PI) وبرنامج عقدة المستشعر في الأقسام التالية.
تطبيق Cosyfird هو خفي ، يتلقى رسائل من العقد المستشعر عبر خادم TTN ويعرض الرسالة الأخيرة.
قم بتثبيت حزم البرامج التالية على سبيل المثال لـ Debian DO:
sudo apt install libncurses6 libmosquittopp1 libssl1.1 libyaml-cpp0.6 gcc cmake libjsoncpp1 libb64-0d
المترجم C ++ 17 مطلوب. ينصح GCC 8.3.0.
يصف هذا القسم برنامج عقدة المستشعر الذي يتواصل بناءً على Lora و TTN.
يجب أن يعمل LSN50-V2 على الأرجح.
تثبيت الحزم التالية:
sudo apt install stm32flash arm-none-eabi-gcc
قبل إنشاء الثنائيات ، قم بتسجيل تطبيق Cosyfir الخاص بك على موقع TTN.
فيما يلي قالب ملف تكوين YAML لـ Cosyfird:
MqttConfig :
HostAddress : region.thethings.network
Port : 8883
ClientId : application-id
Password : secret يستخدم TTN المنفذ 8883 مع SSL ومنطقة العنوان المضيف region.thethings.network حيث يمكن أن تكون region على سبيل eu .
بادئ ذي بدء ، قم بإنشاء معرف عميل على موقع TTN من خلال النقر فوق "إضافة تطبيق" على وحدة تحكم الشبكة الشخصية. يمكن العثور على مفتاح الوصول إلى التطبيق في الأسفل بعد إنشاء تطبيق. إنه بمثابة كلمة مرور لاتصال MQTT.
فيما يلي نظرة عامة على مصطلحات لورا:
| لورا | توضيح | من أين؟ | أين تضع؟ |
|---|---|---|---|
| deveui | 64 بت معرف الجهاز النهائي (فريد) | على مربع الجهاز | وحدة TTN ("تسجيل الجهاز") |
| appeui أو joineui | معرف التطبيق 64 بت | صادر عن TTN ("إضافة تطبيق") | commission.h |
| nwkkey أو appkey | مفتاح تشفير البيانات (TTN <-> خادم) | تم إنشاؤه بواسطة TTN ("إضافة تطبيق") | commission.h |
| Devaddr | عنوان 32 بت (غير يونيك) | تم تعيينه عندما تنضم العقدة إلى TTN | - |
ستكون طريقة التنشيط دائمًا تنشيطًا على الهواء (OTAA). تم تكوين الملف مسبقًا للتشغيل في أوروبا.
تعرّف ملء المعالج المسبق في node/Commissioning_template.h كما هو موضح في الجدول. ثم أعد تسمية الملف:
mv node/common/Commissioning_template.h node/common/Commissioning.h
قم بتشغيل البرنامج النصي في الجذر لبناء كل من الخادم والعقدة الثنائية.
./build_all.sh
المعلمات المتاحة للبرنامج النصي هي:
clean : قم بإجراء بناء نظيفdebug : بناء مع رموز التصحيحيمكن إجراء LSN50 الوامضة باستخدام كبل FTDI UART بسيط باستخدام وضع التمهيد ISP.
قم بتوصيل UART كما هو موضح أدناه:
GND (black): JP4 Pin11 GND
TXD (orange): JP3 Pin9 PA3 (USART1)
RXD (yellow): JP3 Pin10 PA2 (USART1)
اكتشف مكان تثبيت جهاز USB التسلسلي الخاص بك:
journalctl -k -n 100
قم بتعيين التبديل من وضع الفلاش إلى وضع ISP ثم قم:
sudo stm32flash -w node/build/sensor-node.hex /dev/ttyUSBx
قم بتوصيل المستشعرات:
# DS18B20
GND (blue): JP3 Pin2 GND
DQ (yellow): JP3 Pin4 PA9 (Half-duplex single-wire using only TX)
VDD (red): JP3 Pin1 VDD
# Watermark 200SS (tbd)
JP3 Pin12 PA0
JP3 Pin5 PA4
# 10k resistor between PA4 and PA1
مزيد من المعلومات حول مستشعر العلامة المائية.
تحقق من تغطية TTN المحلية وتأكد من وجود بوابة في مكان قريب. ابدأ ./cosyfird --config-file /path/to/cosyfird.yaml و power على LSN50 مع ضبط مفتاح التمهيد على Flash. بعد لحظات قليلة ، يجب أن ترى رسائل تصل. في وضع التصحيح ، يتم إرسال الرسائل كل 30 ثانية. في وضع الإصدار كل نصف ساعة.
مثال على حمولة الرسائل في Hex:
| 42 | BE | EF | CA | FE |
^
Battery level
^
Temperature (resolution 0.0625 °C)
^
Soil water tension
(tbd)
للتنمية ، قد تكون الحزم التالية ضرورية:
sudo apt install clang-format libmosquittopp-dev libssl-dev libyaml-cpp-dev libjsoncpp-dev libb64-dev libncurses-dev
احصل على مصحح أخطاء ST-Link V2 وتثبيت هذه الحزم:
sudo apt install stmlink-tools gdb-multiarch
ثلاثة تطبيقات متوفرة بعد التثبيت:
الاتصال كما هو موضح أدناه:
GND: JP4 Pin11 GND
SWCLK: JP4 Pin4 PA14
SWDIO: JP4 Pin9 PA13
RST: JP4 Pin1 NRST
اضبط مفتاح التمهيد على ISP وحاول:
st-info --probe
إذا كان كل شيء يعمل بشكل صحيح ، فيجب أن ترى المسلسل وغيرها من المعلومات حول متحكم. في حالة عدم رؤية INFOS ، حاول تبديل SWDIO و SWCLK. تم تصنيف بعض الأخطاء ST-Link V2 بشكل خاطئ.
يمكنك فلاش وتصحيح الرمز الخاص بك مع:
st-util -p 1234
(gdb-multiarch) set arch arm
(gdb-multiarch) target extended-remote localhost:1234
(gdb-multiarch) load sensor-node
لتكون قادرًا على القفز مرة أخرى إلى رمز المستخدم ، قم بتعيين مفتاح التمهيد مرة أخرى إلى Flash. ثم يمكنك ضبط نقاط التوقف وتشغيل الرمز كالمعتاد:
(gdb-multiarch) break foo.c:42
(gdb-multiarch) run
مجرد تحميل الرموز دون وميض ممكن:
(gdb-multiarch) file sensor-node
للقيام بإعادة تشغيل دافئ ، قفز إلى بداية الفلاش:
(gdb-multiarch) jump *0x08000000
لتكون قادرًا على رؤية PrintF's تقوم بتوصيل FTDI على نفس المسامير كما هو الحال في الوميض عبر وضع التمهيد/ISP Bootloader/ISP وتشغيله:
screen /dev/ttyUSB3 38400