مقياس دلو البسيط البسيط متصل عبر Lorawan ™. يحسب الجهاز عدد المرات التي يرسل فيها طرف الدلو/التعثر ، ويرسل القيمة باستخدام LoRawan ™.
يمكن لتطبيق المتلقي بعد ذلك حساب هطول الأمطار ، وإذا لزم الأمر إعادة تعيين العداد.
حساب هطول الأمطار مستوحى من تعليمات المعايرة Arduino-Rain.
يتم استخدام مقياس المطر دلو مع الأبعاد 11 سم في 5 سم على التوالي ، مما يعطي مساحة مستجمعات المياه 55 سم مربع. مجموعة من 10 ملليتر من المطر هي 10 مل/55 سم مربع = 0.181818182 سم = 1.81818182 ملم من المطر.
في مقياس المطر دلو التحول ، تُعرف الدلو/الانخفاضات 5 مرات لمدة 10 مل (أو 1.81 مم من المطر) وبالتالي نصيحة واحدة هي (10/5) مل = 2 مل (أو 0،364636364 مم).

جميع المسامير المطلوبة من دبابيس RFM95 موجودة على الريشة المتصلة مباشرة بالدبابيس على 32U4 باستثناء RFM95 DIO1. بالنسبة إلى RFM95 DiO1 تم اختيار Arduino Pin 1 لأنه مقاطعة خارجية رقم 3 ، ويقع أيضًا بجوار DiO1 على الريشة. Adafruit Feather 32U4 RFM95 Pin Mapping.
يحتاج دلو التحول إلى دبابيس على الريشة ، GND والمدخلات. نظرًا لأن دبوس الإدخال هو Arduino Pin 3 (المقاطعة الخارجية 0) المحددة.
يجب تمكين السحب الضعيف من أجل دبوس Arduino 3 ، لذلك عندما يمكن اكتشاف إشارة منخفضة ، يمكن اكتشاف إشارة منخفضة.
Platformio باستخدام لوحة Adafruit Feather 32U4 Platformio هي القاعدة. توفر مكتبة Arduino-Lmic دعم Lorawan ™.
لا يحسب البرامج الثابتة سوى عدد النصائح/التدهور التي يتم إجراؤها بواسطة دلو الإبادة ويرسلها باستخدام LoRawan ™. في الرسالة هو أيضا مستوى الجهد البطارية المبلغ عنها.
خلال Lorawan انضم إلى تسلسل LED يتلاشى. يتم بناء فئة التلاشي من مثال LED Arduino Pading.
يتم توفير الطاقة في دولتين رئيسيتين. وضع التمطر وعدم وجود وضع المطر.
يقوم الوضع الثالث بتعيين الجهاز في وضع Sleep_Forever دون تمكين أي مقاطعات إذا كان جهد البطارية أقل من 3.5 فولت. وهذا هو حفظ البطارية من تدميرها عن طريق التفريغ.
يتم النوم في 8 فترات ثانية وبعد كل 8 ثوان من النوم ، يتم فحص آلة الحالة LMIC والبيانات إذا تم إرسال بيانات الوقت.
فترة إرسال البيانات الافتراضية هي 15 ثانية.
إذا لم يكن هناك أي أمطار تم اكتشافها لمدة ساعة تقريبًا ، يقوم الجهاز بتعيين وضع النوم في مكانه وينتظر في المرة القادمة التي تمطر فيها حتى تستيقظ المقاطعة الخارجية على الجهاز.
عندما يستيقظ الجهاز ، يتم إرسال رسالة لجلب أي أمر وارد.
لتبسيط التكامل على شبكة الأشياء ، يمكن استخدام وحدة فك الترميز والمشفر لتبسيط استخدام API MQTT.
أمر MQTT لإعادة تعيين عداد المطر في الجهاز. يجب أن يكون لإعادة ضبط المعلمة القيمة 234 (0xea) لأمر إعادة تعيين ليتم قبولها بواسطة الجهاز.
mosquitto_pub -h < Region > .thethings.network -u " <AppID> " -P " <AppKey> " -t ' <AppID>/devices/<DevID>/down ' -m ' {"port":2,"confirmed":true,"payload_fields":{"reset":234}} 'أمر MQTT لتعيين الفاصل الزمني إلى 15 دقيقة.
mosquitto_pub -h < Region > .thethings.network -u " <AppID> " -P " <AppKey> " -t ' <AppID>/devices/<DevID>/down ' -m ' {"port":2,"confirmed":true,"payload_fields":{"multiplexer":15}} ' function Decoder ( bytes , port )
{
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
var decoded = { } ;
if ( port === 1 )
{
if ( bytes . length >= 3 )
{
decoded . counts = ( ( ( bytes [ 2 ] & 0x80 ) >> 7 ) << 16 ) | ( bytes [ 1 ] << 8 ) | bytes [ 0 ] ;
decoded . vbat = ( ( bytes [ 2 ] & 0x7F ) + 330 ) / 100.0 ;
}
}
return decoded ;
} function Encoder ( object , port ) {
// Encode downlink messages sent as
// object to an array or buffer of bytes.
var bytes = [ ] ;
if ( port === 1 && ( ( object . multiplexer > 0 ) && ( object . multiplexer < 255 ) ) )
{
bytes [ 0 ] = 1 ;
bytes [ 1 ] = object . multiplexer ;
}
else if ( port === 2 && object . reset === 0xea )
{
bytes [ 0 ] = object . reset ;
}
return bytes ;
}