
ttgo paxcounter مع مستشعر الغبار الناعم و BME280
wird aktuell überarbeitet für v.3 Stack CEwird aktuell überarbeitet für v.3 Stack CEالأجهزة:
مكونات اختيارية ، اعتمادًا على الموقع وطلب الإسكان:
التجميع / الأسلاك
يتم لحام شرائط القلم على لوحة Paxcounter وعلى مستشعر BME ، اعتمادًا على موضع التثبيت أو موقع التثبيت ، يتوفر شريط القلم في الجزء العلوي أو الجانب السفلي من اللوحة. يتم تثبيت هوائي المسمار - هنا أيضًا يمكنك تثبيت كبل طويل اعتمادًا على بنية المستشعر. ثم يتم توصيل المستشعرين بـ paxcounter على النحو التالي:
المستشعر البيئي سلكي على النحو التالي:
VCC (VDC 3,3 Volt) wird mit Pin 3.3V angeschlossen ORANGE
GND (Ground) wird mit dem GND am Paxcounter verbunden GELB
SCL (i2c Bus) --> Pin 22 am Paxcounter (mit SCL oder 22 beschriftet) GRÜN
SDA (i2c Bus) --> Pin 21 am Paxcounter (mit SDA oder 21 beschriftet) BLAU
frei
frei
مستشعر الغبار الناعم سلكي على النحو التالي:
TXD (Daten senden) wird mit Pin 23 am Paxcounter verbunden WEISS
RXD (Daten empfangen) wird mit Pin LoRa2 am Paxcounter verbunden SCHWARZ
GND (Ground) wird mit einem weiteren Pin GND am Paxcounter angeschlossen BRAUN
frei
VCC (VDC 5 Volt) kommt an den 5 Volt Pin (beschriftet mit 5V) ROT
frei
frei
يرجى إلقاء نظرة على الصور في المجلد /IMG ، حتى تتمكن من رؤية الأسلاك بوضوح مرة أخرى! لقد أدرجت ألوان الكابل المستخدمة في المثال بالنسبة لك في خطة الأسلاك! للحصول على تعليق مستقر على كبل توصيل> على شريط القلم ، نوصي أن تكون المقابس ببساطة إصلاح المقابس مع القليل من الغراء الساخن. لذلك لفترة من الوقت تتجنب انزلاق الكابل الجزئي بشكل فضفاض للغاية. في مجلد الصورة ، يمكنك الآن رؤية التجميع الموصى به الذي قمت بتوثيقه لك. لقد تابعنا المشروع بشكل أساسي من شتوتغارت ، ولكن تم تعديله قليلاً
wird aktuell überarbeitet für v.3 Stack CE ThethingsNetwork --- حاليًا لـ V.3 Stack CE في الخطوة التالية ، نقوم بإعداد حسابنا على thethingsnetwork.org-first (ما لم يكن متاحًا بالفعل) يتم إنشاء حساب. ثم يتم إنشاء تطبيق جديد. بالإضافة إلى اسم واضح ، يتم إدخال معالج TTN فقط هنا باسم "TTN Handler-EU".
ضمن هذا التطبيق ، نقوم بإنشاء جهازنا - لذلك تقريبًا مستشعر TTN Fine Dust. للقيام بذلك ، نضغط على "Decord Device". في النافذة التالية ، نمنح اسمًا قصيرًا وفريدًا ، على سبيل المثال "Fine Dust Sensor-01"-يمكننا إنشاء Deviceui تلقائيًا. للقيام بذلك ، ننقر على السهم المزدوج أمام الحقل المقابل. ليس هناك حاجة إلى المزيد في هذه المرحلة ، في وقت لاحق يمكنك تخزين الموقع وبيانات مماثلة للجهاز إذا كنت تريد. نترك نافذة المتصفح مع "نظرة عامة على الجهاز" ، وستكون هناك حاجة إليها لاحقًا!
برمجة
للبرمجة ، نستخدم رمز Microsoft Visual Studio مع توسيع معرف النظام الأساسي. أولاً ، تم تثبيت رمز Visual Studio ، ثم تم إدخاله وتثبيته ضمن "File" و "Temperences" ، "extensions" في حقل بحث IDE Platformio. بعد إعادة تشغيل البرنامج ، تكون بيئة البرمجة جاهزة.
ملاحظة: تصف العديد من الإرشادات المكثفة في شبكة الاتصالات العالمية التثبيت وإعداد الكود المفصل للغاية
مستودع جيثب
لقد تم استخدام Cybmerman54 من Github كبرنامج أساسي لبعض الوقت. https://github.com/cyberman54/esp32-paxcounter/releases
ملاحظة مهمة: نظرًا لأن هذا الريبو قد تمت مراجعته بقوة من الإصدار 3.2 ، فإن الاتصال من مستشعر الغبار الدقيق عبر الواجهة التسلسلية ، كما هو موضح في تعليماتنا ، لم يعد يعمل أيضًا. لذا قم بتنزيل الإصدار 3.1 لبناء المستشعر البيئي بناءً على لوحة TTGO Paxcouner !!!
يتم تنزيل المستودع وتفريغه ، ثم فتحه في الكود VS.
التغييرات والتعديلات
(1) في الخطوة الأولى ، يتم إعادة تسمية ملف platformio_orig.ini من الدليل الرئيسي ثم إعادة تسميته منصة. ثم يتم استبدال السطر 10 في هذا الملف ;halfile = generic.h . في هذا الملف أيضًا ، يتم استبدال السطر 19 بـ halfile = ttgov21new.h - تم إزالتها المنقوسة وبالتالي تفعيلها (انظر الصورة)
(2) في المجلد/SRC/HAL/تم ضبط ملف "TTGOV21NEW.H" على النحو التالي ، يتم إدراج الكود التالي ببساطة في السطر 21:
// BME280 sensor on I2C bus
#define HAS_BME 1 // Enable BME sensors in general
#define HAS_BME280 GPIO_NUM_21, GPIO_NUM_22 // SDA, SCL
#define BME280_ADDR 0x76 // change to 0x77 depending on your wiring
// SDS011 dust sensor settings
#define HAS_SDS011 1 // use SDS011
// used pins on the ESP-side:
#define SDS_TX 12 // connect to RX on the SDS011
#define SDS_RX 35 // connect to TX on the SDS011
ما عليك سوى نسخ الرمز أعلاه وأدخله في الكود VS في الملف. يمكن رؤية النتيجة في الصورة.
(3)]
(4) /src/loraconf_sample.h: إعادة تسمية أو نسخ إلى "loraconf.h" في السطر 38 و 40 و 42 إدراج Deveui و Appeui و Appkey (مثل MSB). للقيام بذلك ، نعود إلى نافذة المتصفح مع "نظرة عامة على الجهاز". من أجل الحصول على المفاتيح في تنسيق الرقم الصحيح ، يتم النقر على رمز <> للخط المعني ، ويقوم المفتاح بتغيير تنسيقه. نحن بحاجة إلى تنسيق MSB لكل منهما
الرحلات: عند البرمجة ، تعثرت بالتأكيد من خلال الاختصارات "MSB" و "LSB". يمكنك معرفة ماهية الاختصارات في هذه النصيحة العملية. قيمة بت: يشرح MSB & LSB ببساطة أن Bitterworthy هو تحديد أهمية كل البتات. على سبيل المثال ، هذا مهم للنقل التسلسلي.
- LSB يقف على "أقل أهمية". إذا تم ترقيم تسلسل قليلا وفقا لرقم LSB-0-bit ، فإن BIT مع الفهرس 0 هو أقل حالة.
- MSB تعني "أهم بت". مع ترقيم MSB-0-Bit ، فإن BIT مع الفهرس 0 له أعلى أهمية. إذا كان مع رقم ثنائي مع المواضع 0 ، 1 ، ... ، N-1 Bit مع الفهرس 0 له أعلى أهمية ، يجب مضاعفة قيمته بمقدار 2 (N-1).
في نهاية السطر المعني مع المفتاح ، يمكنك نسخ الجزء بأكمله في الحافظة ، مرة أخرى في رمز VS ، يتم نسخ المفاتيح الثلاثة في الخطوط المقابلة واحدة تلو الأخرى - يتم كتابة مفاتيح العينة المحددة ببساطة. هنا ، أيضًا ، قمت بإنشاء صورة لتوضيحها.
(5) يتم الآن معالجة ملف/.pio/libdepepsusb/sds011 مكتبة مستشعر/sds011.cpp الآن:
يأتي هذا الرمز من Cyberman54/ESP32-Paxcounter#597 (تعليق) ويصف "أمر العمل"
يتم إدخال النص في السطر 35:
static const byte WORKCMD[19] = {
0xAA, // head
0xB4, // command id
0x06, // data byte 1
0x01, // data byte 2 (set mode)
0x01, // data byte 3 (work)
0x00, // data byte 4
0x00, // data byte 5
0x00, // data byte 6
0x00, // data byte 7
0x00, // data byte 8
0x00, // data byte 9
0x00, // data byte 10
0x00, // data byte 11
0x00, // data byte 12
0x00, // data byte 13
0xFF, // data byte 14 (device id byte 1)
0xFF, // data byte 15 (device id byte 2)
0x06, // checksum
0xAB // tail
};
بالإضافة إلى ذلك ، يتعين علينا تغيير السطر 113 في:
void SDS011::wakeup() {
// sds_data->write(0x01);
// sds_data->flush();
for (uint8_t i = 0; i < 19; i++) {
sds_data->write(WORKCMD[i]);
}
sds_data->flush();
while (sds_data->available() > 0) {
sds_data->read();
}
}
wird aktuell überarbeitet für v.3 Stack CE Decoder and Converter --- حاليًا لـ V.3 Stack CE في نهاية التغييرات ، سنظل نحصل على محتوى هذا الملف من ما يلي عبر Copy & Paste /SRC/Packed_Converter.js -> المحول والعودة إلى نافذة المتصفح. في خصائص تطبيق TTN ، نذهب إلى علامة التبويب "Payoad Format" وحدد المحول هناك للإدراج. إذا كان هناك نص بالفعل في النافذة ، فسيتم حذفه تمامًا تمامًا ثم يتم إدخال النص من ملف OG هناك.
ثم نحصل على وحدة فك الترميز من ملف/src/tn/packed_decoder.js في رمز VS ونسخه تمامًا كما هو الحال في حقل "payoad -> decoder" لا يزال تغييرًا يدويًا صغيرًا:
أضف ما يلي في السطر 37 (تنسيقات payoad -> فك التشفير):
// combined wifi + ble + SDS011
if (bytes.length === 8) {
return decode(bytes, [uint16, uint16, uint16, uint16], ['wifi', 'ble', 'PM10', 'PM25']);
}
يجلب اختبار قصير في وحدة التحكم الأمان الذي يعمل عليه وحدة فك الترميز: إدراج 16x 0 في الحقل لـ Payoad ، ووضع المنفذ على 1 ثم انقر فوق "اختبار" ثم انقر فوق "حفظ وظيفة Payoad".
تجميع وتحميل
كخطوة أخيرة ، لا يلزم سوى تجميع البرنامج في VS Code ، وبعد ذلك يتم تحميل البرنامج بأكمله على عداد PAX عبر USB. لذلك يتم توصيل المستشعر عبر كابل USB صغير وتفعيله مع مفتاح الانزلاق.
في الجزء السفلي من الشريط الأزرق ، يتم تنظيف المحتوى والملفات غير الضروري والرمز تلقائيًا على "Clean" (Symbost Garbage Bin).
ثم انقر على الرمز مع الخطاف "المبني" في الشريط الأزرق في الأسفل - قد يستغرق الأمر لحظة ، ولكن يجب إغلاقه بعد بضع دقائق في آخرها.
في النهاية ، يتم إرسال رمز البرنامج بأكمله إلى المستشعر. ما عليك سوى النقر على السهم الأيمن "تحميل" ؛ يتم نقل البرنامج ثم إعادة تشغيل المستشعر عند الانتهاء من الإرسال بنجاح.
إذا قمت بالنقر فوق رمز موصل "Serial Monitor" في الشريط الأزرق ، فيمكنك مراقبة وحدة التحكم في وحدة التحكم التي يتم عرض القيم النشطة ويتم قياسها هناك.
لاختبار الوظيفة المباشرة في وحدة التحكم TTN ، تعد بوابة TTN ضرورية في متناول اليد ، وإلا فإن المستشعر سيرسل بياناته إلى المنطقة المحيطة ، ولكن لا يتم استلامها ومعالجتها.
wird aktuell überarbeitet für v.3 Stack CE بالتوازي لفتح تطبيق TTN في المتصفح ، وحدد الجهاز وانقر فوق حقل "البيانات" في أعلى اليمين. بعد فترة زمنية قصيرة ، يجب أيضًا عرض البيانات هنا التي تنتقل إلى thethingsnetwork عبر Lora Funktechnik. ملاحظة ، نظرًا لأن قيم الغبار الدقيقة يتم نقلها على أنها "الانتخابات الكاملة" ، يجب مشاركة القيم المقاسة المعروضة في وحدة التحكم TTN بمقدار 10 !!! مبروك ، مستشعر الغبار في لورا الخاص بك جاهز !!! في فصلين آخرين ، نقدم نظرة على ما يمكن القيام به مع البيانات التي تم الحصول عليها وكيفية نشرها على بطاقات Opendata.
Outlook 1 - Node -Red ، influxdb و Grafana يتبع النص هنا
Outlook 2 - بطاقات Opendata وبيانات الهواء و OpenSenseMap يتبعه النص هنا