element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino Projects
  • Products
  • Arduino
  • Arduino Projects
  • More
  • Cancel
Arduino Projects
Blog MKR WAN 1300: LoRa Marine Environmental Ranger
  • Blog
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino Projects to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: fmilburn
  • Date Created: 30 Nov 2018 5:36 AM Date Created
  • Views 5418 views
  • Likes 19 likes
  • Comments 18 comments
  • mkr relay shield
  • buoy
  • mkr_giveaway_projects
  • arduinoday2019
  • lorawan
  • arduino_projects
  • lora
  • arduino mkr 1300
  • boat
  • arduino
  • mkr_smarterworld
  • wan_1300
Related
Recommended

MKR WAN 1300: LoRa Marine Environmental Ranger

fmilburn
fmilburn
30 Nov 2018

Product LinkProduct Link

image

Arduino Home

An Open-Source platform to create digital devices and interactive objects that sense and control physical devices.

Arduino Tutorials
Arduino Projects

 

LoRa MER

 

The LoRa Marine Environmental Ranger (LoRa MER) is a demonstration project using the Arduino MKR WAN 1300 to gather and assess environmental data in an aquatic environment.  The project is an entry in the Build A Smarter World challenge hosted by element14 who provided two Arduino MKR WAN 1300 boards and an Arduino MKR Relay Proto Shield for the project.  This is a summary of the project and there is much additional detail of the development in the links at the bottom of the post.

image

The concept has the potential to provide improved data acquisition in difficult to access locations as well as being a low cost educational tool.

 

Concept

 

With the advances in inexpensive microcontrollers, sensors, and low powered long range radio it is now possible to gather environmental data more easily and with less cost than ever before.  Open water being less sparsely instrumented than much of the land mass provides an opportunity for new study.  The near shore and inland waters are of particular interest in that they are susceptible to human activities and important to marine life.  This project makes use of the long range, low power wireless capabilities of LoRa to study this environment.

 

The prototype described here is housed in a radio controlled boat.  However, the platform can be modified to meet different requirements:

  • Stationary Buoy - Moored buoy to continuously monitor a location
  • Floating Buoy - Free moving platform to study currents or wind
  • Autonomous or Semi-Autonomous Boat - Boat with programmed route or even decision making capability
  • Radio Controlled Boat - Operator controlled boat as described here

image

 

There are a number of sensors that could be deployed depending on the objectives.  The block diagram below shows the devices that were investigated in this project.

image

 

Sensor Selection

 

The sensors being considered were individually tested and evaluated with the MKR WAN 1300 on a breadboard first.

image

The sensors and electronics chosen for inclusion in the final project were:

Sensor / DeviceDescription
Arduino MKR WAN 1300Arduino MKR WAN 1300Microcontroller and LoRa Radio
Raspberry Pi 3 Model BRaspberry Pi 3 Model BInternet storage of data using adafruit.io
Invensys ICP-10100Atmospheric Pressure and boat interior Temperature
NEO-6M-0-001GPS
Thermistor (2)Water and air temperature
Rohm KX224-I2CRohm KX224-I2CAccelerometer
Rohm RPR-0521RSRohm RPR-0521RSLight Sensor
Amphenol TSW-10Turbidity Sensor
Generic ST3775LCD Display

 

Following sensor selection, daughter boards were constructed from 5x7 cm perfboard to hold the LCD displays and attach the sensors.  One of the MKR WAN 1300 boards was made into a base station and the other placed in the boat after testing.

 

 

{gallery} RC Boat and Shore Station

image

Boat

image

Inside boat

image

 

Sensor Development

 

One of the more interesting sensors on the boat is the turbidity sensor which measures the cloudiness in the water caused by suspended particulate matter.  The sensor used is intended for use in clothes washing machines and such but is used here to give a rough indication of turbidity.

{gallery} Testing Turbidity

image

Open Air

image

Low Turbidity

image

Medium Turbidity

image

High Turbidity

image

 

Data Acquisition and Internet Storage

 

A python script was written for the Raspberry Pi so that adafruit.io can be used to permanently store and analyze results.

{gallery} Internet Display of Environmental Data

image

Sensors and Dashboard

REPLACE THIS TEXT WITH YOUR IMAGEimage

Dashboard

REPLACE THIS TEXT WITH YOUR IMAGEimage

Base Station with Raspberry Pi running python script

 

Firmware and Software

 

The Arduino IDE was used for the MKR WAN 1300 and Python for the Raspberry Pi.  The code is heavily commented, describes all sensor connections, and can be found here on GitHub.

 

Concept Demonstration

 

My 7 year old grandson and I used the LoRa MER to explore turbidity and temperature in a duck pond located near his home.  An outline of our experiment follows:

 

Problem / Question:  How does the water temperature and turbidity vary from the inlet of the duck pond to the outlet?

Hypothesis:  I hypothesized that cooler water coming in would be warmed up by the sun as it slowly moved through the pond.  My grandson hypothesized that it would cool down because "the water is deeper".  We both thought the turbidity would be higher at the inlet due to mixing in the fast moving creek followed by settling in the pond.

Experiment: The boat was maneuvered close to the inlet and then allowed to drift.  Data was recorded by photographing the readings on the base station.

Example data:  (close to inlet and then outlet) is shown below.

image

Analysis:  The limited readings taken showed minimal water temperature and turbidity differences from the inlet to the outlet of the pond. 

Conclusion:  The data did not show meaningful variation in the limited data recorded.  The outcome might be different in different seasons or with higher or lower water flow rates.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Summary

 

This is a project I have had in mind for some time and I thank element14 and Arduino for providing the MKR WAN 1300 which performed well in the prototype.  It successfully demonstrates how LoRa can be used to gather environmental data in an inexpensive manner that would otherwise be difficult to obtain.  The technology is accessible and could be used for all levels of education.  It is also easily adaptable to commercial and scientific usage.

 

Links

 

If you are interested in further information, or building something similar yourself, see the week by week posts made during the project along with other interesting links that are given below.  There is also a lot of valuable information in the comments provided by other element14 community members below each post.

 

Week 1:  Making it Portable

Week 2: Boat in a Box

Week 3: Building a Shore Station and Starting the Boat

Week 3.5: Testing Turbidity and Posting to the Internet

Week 4: Boat Afloat and New Antenna

Week 5: Indoor Testing

Week 6: First Sea Trials

Week 7: Concept Demonstration

Winners Announcement: Build a Smarter World: Build an Arduino MKR WAN 1300 Project for an Arduino Engineering Kit!

Rohm SensorShield-EVK-003 (Arduino Compatible) - Review

  • Sign in to reply

Top Comments

  • 14rhb
    14rhb over 6 years ago +8
    Hi Frank, Great overview and the idea of having a landing page. Looking at your diagram I see you have turbidity of the water. Given the current high profile news of plastics in the ocean, I wonder if…
  • fmilburn
    fmilburn over 6 years ago in reply to 14rhb +7
    Hi Rod, 14rhb wrote: Given the current high profile news of plastics in the ocean, I wonder if your system could be used to monitor that and direct clean up vessels to the very worst affected areas before…
  • 14rhb
    14rhb over 6 years ago in reply to fmilburn +4
    fmilburn wrote: ...incorporating fish finder technology with the thought of maybe tracking / counting populations of spawning salmon or other marine life. Another great idea which, even if too much for…
Parents
  • jscook
    jscook over 6 years ago

    Hi Frank,

     

    So you're communicating from MKR board to MKR board, then accessing the data via the Raspberry Pi, correct?

     

    So no gateway per se, it's just like a 2-way radio between the two boards? Do you have any more info as to how this is set up?

     

    Thanks for sharing

     

    -Jeremy

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • fmilburn
    fmilburn over 6 years ago in reply to jscook

    Hi Jeremy,

     

    I demonstrated a couple of different setups in this project.  In the videos above it is MKR board to MKR board, peer to peer only.  The code is posted here:  https://github.com/fmilburn3/LoRa_MER  on github for the boat and the base.  If you page down the comments here on element14 to November 17th you will find a discussion of the issues being worked and the approach used to get around them.  I also posted some basic code there to show how it works.

     

    To connect to adafruit.io the base station outputs serial to the Raspberry Pi using the very same peer to peer code described above.  To get the serial output, set #define DEBUG 1 in the code.  The Raspberry Pi is set up to read the serial input in a python script and forwards it to adafruit.io as described here.  I haven't posted my python script, but there is a link to a tutorial by Adafruit at the github link above.  The python is a pretty trivial modification of the Adafruit example, but if you would like it then let me know.  The adafruit dashboard.io uses their basic widgets.

     

    Hope that answers your questions,

    Frank

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jscook
    jscook over 6 years ago in reply to fmilburn

    Thanks Frank. I think that points me in the right direction.

     

    So the way these modules work is basically like a serial connection, sending out and receiving packets without any address or dedicated connection per se? So if there was another LoRa radio in the area sending out similar signals, it would instead receive that data, correct?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • BigG
    BigG over 6 years ago in reply to jscook

    So the way these modules work is basically like a serial connection, sending out and receiving packets without any address or dedicated connection per se? So if there was another LoRa radio in the area sending out similar signals, it would instead receive that data, correct?

     

    There are a number of ways to control which device receives the data and which device will not. For example, in the Arduino LoRa library there is a function called "setSyncWord". The default value is set to 0x34. So any device using the default value will receive data from a transmitting device if also using the default value. If you set your LoRa device to a different value then only those LoRa devices which have the same value set can receive the data that is transmitted from this device.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • BigG
    BigG over 6 years ago in reply to jscook

    So the way these modules work is basically like a serial connection, sending out and receiving packets without any address or dedicated connection per se? So if there was another LoRa radio in the area sending out similar signals, it would instead receive that data, correct?

     

    There are a number of ways to control which device receives the data and which device will not. For example, in the Arduino LoRa library there is a function called "setSyncWord". The default value is set to 0x34. So any device using the default value will receive data from a transmitting device if also using the default value. If you set your LoRa device to a different value then only those LoRa devices which have the same value set can receive the data that is transmitted from this device.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • fmilburn
    fmilburn over 6 years ago in reply to BigG

    Thanks for mentioning that...  I have just used the default to date as there doesn't seem to be any LoRa traffic in my area.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube