جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
لقد سئمت من التحقق في كل مرة صندوق البريد الخاص بك بينما لا يوجد شيء بالداخل. تريد معرفة ما إذا كنت تتلقى بريدك أو طردًا أثناء الرحلة ، لذا فإن صندوق البريد المتصل يناسبك. سيُعلمك إذا كان ساعي البريد قد أودع بريدًا أو طردًا ، مباشرة على هاتفك الذكي عن طريق بريد إلكتروني ، وذلك بفضل أحدث التقنيات التي صنعتها LORAWAN في فرنسا. نحن نذهب خطوة بخطوة في كيفية تصميم نموذج أولي خلال هذه التعليمات.
الخطوة 1: التجهيز
اللغات المستخدمة: C / C ++
المعرفة الأساسية في الإلكترونيات الرقمية.
متطلبات الأجهزة:
Grove - الدوران الرقمي ثلاثي المحاور:
وحدة Kit sigfox مع هوائي:
زر ضغط عشوائي (اختر ما تريد).
Nucleo F030R8:
متطلبات البرنامج:
جهاز كمبيوتر به متصفح جيد للعمل مع مترجم Mbed.
الخطوة 2: قم بإعداد جهازك
أولاً ، نحتاج إلى توصيل جميع الوحدات بالشريحة.
قم بتشغيل وحدة Sigfox والجيروسكوب بجهد 3.3 فولت! ثم قم بتوصيل أسلاك UART بوحدة Sigfox (PA_9 ، PA_10) وأسلاك I2C بالجيروسكوب (PB_10 ؛ PB_11). قم بتوصيل الزر بدبابيس PB_3. عند الانتهاء ، قم بتجميع الكود أدناه.
يمكنك اختبار النموذج الأولي عن طريق وضع الجيروسكوب على صندوق بريد والحصول على بعض القيم المتعلقة بالحركة وبالتالي التحقق مما إذا كانت حزمة تم إيداعها أم حرفًا.
# تضمين "mbed.h" # تضمين "ITG3200.h" // ---------------------------------- - // تكوين Hyperterminal // 9600 باود ، بيانات 8 بت ، بدون تماثل // ------------------------------ ------ الكمبيوتر التسلسلي (SERIAL_TX ، SERIAL_RX) ؛ المسلسل sigfox (PA_9، PA_10، NULL، 9600) ؛ InterruptIn bouton (PB_3) ، ITG3200 الدوران (PB_11 ، PB_10) ؛ تطبيق int متقلب ؛ int Facteur = 0 ؛ الموقت ر ؛ النظير في البطارية (A3) ؛ AnalogIn ref_batt (ADC_VREF) ، void lol () {pc.printf ("appui / r / n") ؛ التطبيق = 1 ؛ } / * بات باطل () {pc.printf ("batterie faible! / r / n")؛ } * / int main () {int x، y، z؛ // تعيين أعلى عرض النطاق الترددي. gyro.setLpBandwidth (LPFBW_42HZ) ، شار عازلة [20] ؛ bouton.fall (& lol) ؛ bouton.mode (PullDown) ؛ //batterie_faible.rise(&batt) ؛ //batterie_faible.mode (سحب للأسفل) ، pc.printf ("بدء / r / n")؛ بينما (1) {التطبيق = 0 ؛ x = gyro.getGyroX () ؛ y = gyro.getGyroY () ، ض = gyro.getGyroZ () ، إذا (x> 5000) {t.start () ؛ pc.printf ("الدقيقة الأولى / r / n")؛ بينما (t.read () <10) ؛ pc.printf ("fin temps / r / n")؛ //pc.printf("app=٪ d / r / n "، التطبيق) ؛ إذا (التطبيق == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n") ؛ // colis: 636f6c69732e202020 sigfox.scanf ("٪ s" ، المخزن المؤقت) ؛ pc.printf ("٪ s / r / n" ، مخزن مؤقت) ؛ } pc.printf ("fin if / r / n")؛ t.stop () ؛ t.reset () ؛ } / * if (batterie.read () <= (2.8 * ref_batt.read () / 1.23)) pc.printf ("batterie faible / r / n")؛ sigfox.printf ("AT $ SF = 636f757272696572 / r / n")؛ // colis: 636f6c69732e202020 انتظر (10) ؛ sigfox.printf ("AT $ P = 1") ؛ انتظر (10) ؛ sigfox.printf ("AT $ P = 0 / r / n") ؛ * /}}
الخطوة 3: تجميع ثنائي الفينيل متعدد الكلور
النموذج الأولي السابق أكبر من أن يتم وضعه في صندوق البريد. هنا بعض ملفات جربر لطباعة دائرتك وتجميع المكون الخاص بك.
الخطوة 4: موقع الويب الخلفي
لقد أسسنا بنية الواجهة الخلفية لدينا على IBM Cloud (IBM IoT Watson Platform و NodeRED) وعلى طلبات API REST. تم استخدام IBM Cloud لإدارة الاتصال بين أجزاء مختلفة من نظامنا. كما ترى في تدفق NodeRED الخاص بنا ، فإننا نتحكم في جميع الطلبات الواردة من Sigfox API (التي ترسل الرسائل من أجهزتنا) ومن موقع Wix على الويب (لتسجيل جهاز جديد). أيضًا ، تكون السحابة مسؤولة عن إرسال إشعار البريد الإلكتروني إلى العميل وتسجيل عميل جديد سيتم تخزين معلوماته في قاعدة البيانات السحابية الخاصة بنا (MongoDB). وبالتالي ، فإن NodeRED تدير بشكل أساسي طلبات API REST واستعلامات قاعدة البيانات (INSERT و SELECT) لضمان إرسال الإشعار الصحيح إلى العميل المناسب في الوقت المحدد.