ที่เก็บนี้มีเฟิร์มแวร์ที่ทำงานบนแผงวงจรทางเลือกสำหรับมาตรวัด Rain TFA 30.3161 (ดูลิงก์ที่ด้านล่างของหน้าสำหรับข้อมูลเพิ่มเติม) ซึ่งแปลงอุปกรณ์เป็น 868MHz Lorawan Technology
ข้อมูลการวัดจะถูกส่งไปยังเกตเวย์ Lorawan ในช่วงของอุปกรณ์ (แม้ในเขตเมืองสามารถครอบคลุมได้ 1 กม. โดยไม่มีปัญหาใด ๆ ) ในขณะที่การใช้พลังงานต่ำมาก
ตัวถอดรหัสเพย์โหลด JavaScript ที่ทดสอบด้วย THETHINGNETWORK V3 และ Chirpstack V4 นั้นมีให้

นอกเหนือจากบอร์ดมาตรวัดฝน Lora ที่ประกอบแล้วต้องใช้เครื่องมือต่อไปนี้:
โปรเซสเซอร์บนแผงวงจรหลักเป็น Atmel Atmel328p ที่เข้ากันได้ของ Arduino โครงการจึงใช้ห้องสมุด MCCI Arduino LMIC ยอดนิยมสำหรับ Lora เพื่อการรวบรวมและการปรับใช้ที่ง่ายจะใช้ Platformio Toolchain
การดำเนินการ LoRawan สนับสนุน OTAA และ ABP ข้อมูลเซสชัน (เช่นคีย์เซสชันเคาน์เตอร์เฟรม) และค่าตัวนับปริมาณน้ำฝนจะถูกเก็บไว้ในชิป SPI Fram เป็นครั้งคราว จะทำทันทีหลังจากเข้าร่วมเครือข่ายและหลังจากส่งแพ็คเก็ตข้อมูลที่สามแต่ละครั้งแล้ว ข้อได้เปรียบของ Fram Over Flash Memory คือรอบการเขียนที่สูงขึ้นมาก แต่ก็ยังเป็นความคิดที่ดีที่จะ จำกัด พวกเขาเล็กน้อย
หลังจากเริ่มต้นอุปกรณ์จะเข้าสู่โหมดสลีปก่อน มันตื่นขึ้นมาหลังจากช่วงเวลาที่กำหนดหรือเมื่อกดปุ่ม (ซึ่งเป็นไปได้หนึ่งครั้งต่อนาที) หากไม่มีเซสชันที่ถูกต้องจะพยายามเข้าร่วมก่อน เมื่อมีการส่งแพ็คเก็ตข้อมูลไมโครคอนโทรลเลอร์จะสลับกลับไปที่การนอนหลับลึกซึ่งการใช้พลังงานลดลงเหลือเพียง 14µA ระยะเวลาของโหมดสลีปลึกนั้นเกิดขึ้นได้โดยใช้ตัวจับเวลาสุนัขเฝ้าบ้านเพื่อปลุกไมโครคอนโทรลเลอร์จากโหมดปิดเครื่องทุกวินาทีโดยลดตัวแปรตัวนับที่มีระยะเวลาจนกว่าจะมีการส่งครั้งต่อไป
พัลส์ที่สร้างขึ้นโดยมาตรวัดฝนที่ให้ทิปมีการจับกุมโดยการเปลี่ยนพอร์ตการเปลี่ยนแปลง สิ่งนี้มีความจำเป็นเนื่องจากส่วนประกอบส่วนใหญ่ของอุปกรณ์ต่อพ่วงไมโครคอนโทรลเลอร์ (รวมถึงตัวจับเวลา/ตัวนับ) นั้นไม่ได้ใช้งานเนื่องจากโหมดสลีปลึก การขัดจังหวะจะปลุกตัวควบคุมเป็นระยะเวลาสั้น ๆ เพื่อเพิ่มเคาน์เตอร์ฝน หลังจากนั้นมันจะดำเนินต่อไปด้วยรอบการนอนหลับลึกครั้งต่อไป
หากเชื่อมต่อเซ็นเซอร์ BMP280 ข้อมูลความดันอุณหภูมิและบารอมิเตอร์จะรวมอยู่ในการส่งผ่าน
ช่วงเวลาการนอนหลับและตัวนับฝนสามารถอัปเดตผ่านข้อความ Downlink เพียงใช้ FPort 1 สำหรับช่วงเวลาและ FPort 2 สำหรับค่าตัวนับทั้งสองส่งเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ (MSB ก่อน)
เฟิร์มแวร์นี้ใช้ระบบ Build Platformio ซึ่งจะจัดการกับสิ่งที่เกี่ยวข้องกับเครื่องมือและการพึ่งพาทั้งหมดโดยอัตโนมัติ โปรดติดตามคำแนะนำบน platformio.org เพื่อติดตั้ง Platformio Core (สำหรับการดำเนินการคอนโซล) หรือ VS Code & Platformio (IDE) จากนั้นโคลนที่เก็บนี้และเปลี่ยนเป็นไดเรกทอรีที่ถูกต้อง
เพียงเชื่อมต่อ USBASP ของคุณกับขั้วต่อ ISP 6 พินบนบอร์ด โปรดตรวจสอบให้แน่ใจว่าโปรแกรมเมอร์ถูกตั้งค่าเป็นแรงดันไฟฟ้า 3.3V เนื่องจาก RFM95W ไม่ ทน 5V! หลังจากนั้นเพียงแค่เรียกใช้ pio run -t bootloader -e m328p_isp (หรือ -e m328pb_isp สำหรับ atmega328pb) ไปยังโปรแกรม bootloader และ fusebits หลังจากนั้นอุปกรณ์สามารถตั้งโปรแกรมได้อย่างง่ายดายผ่านการเชื่อมต่ออนุกรม
คัดลอกไฟล์ src/config.h.example ไปยัง src/config.h จากนั้นการไม่ลงรอยกันทั้ง USE_OTAA หรือ USE_ABP สร้างอุปกรณ์ใหม่บนเซิร์ฟเวอร์ Lorawan ของคุณและกรอกข้อมูลเซสชันเริ่มต้นใน config.h ตามที่อธิบายไว้ในนั้น คุณสามารถค้นหาตัวถอดรหัสเพย์โหลดที่จำเป็นในเอกสาร/payload-decoder.js
เมื่อกำหนดค่าทุกอย่างให้เชื่อมต่ออะแดปเตอร์อนุกรม USB เข้ากับส่วนหัว PIN ที่เหมาะสม จากนั้นเรียกใช้งาน pio run -t upload (เพิ่ม -e m328pb สำหรับ ATMEGA328PB) เพื่อโปรแกรมเฟิร์มแวร์
คุณอาจต้องการตรวจสอบคอนโซลอนุกรมสำหรับข้อความบันทึกโดยใช้ pio device monitor เครือข่ายจะเข้าร่วมทันทีหลังจากพลังขึ้น ค่าการวัดจะถูกส่งทุก ๆ 15 นาที
เมื่อการเปิดใช้งาน Lorawan เสร็จสมบูรณ์ข้อมูลเซสชันจะถูกเก็บไว้ใน FRAM และกู้คืนเมื่อทำการบูต ค่าแฮชของ config.h ถูกรวมไว้เพื่อตรวจจับการเปลี่ยนแปลงการกำหนดค่าและทำให้เซสชันปัจจุบันเป็นโมฆะบังคับให้อุปกรณ์เปิดใช้งานอีกครั้ง การเปิดใช้งานอีกครั้งสามารถถูกบังคับโดยกดปุ่มค้างไว้ในช่องใส่แบตเตอรี่เป็นเวลาไม่กี่วินาทีในขณะที่ใส่แบตเตอรี่
LED บนแผงวงจรจะสว่างขึ้นหากมีการส่งแพ็กเก็ต มันจะกะพริบหากการเปิดใช้งาน OTAA ล้มเหลว
https://www.maltepoeggel.de/?site=lora-raingAuge
เฟิร์มแวร์นี้ถูกปล่อยภายใต้ข้อกำหนดของใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับรายละเอียด