Arduinos Shield Capabilities Water Monitoring System

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

Our project for Microbiology this year is to make a self monitoring water maintenance system using the Arduino. We started this project with a few tools. The rest we had to buy and learn ourselves. One of the most useful tools so far is the ability to program a code. Using our newfound ability to write codes for the Arduino, we ran several tests using certain sensors that we believe will be necessary for this water monitoring system. After a few months of researching, testing, and shopping, we are finally ready to move on to the next stage. We are going to start building this system. Along with Felix and Charles, we plan to assist Mr. Katz with supplying clean water for his plants in the greenhouse. This clean water will be collected from rainwater that has been filtered through our water filtration system monitored by our Arduino.

Proposal Narrative

We began this project with two basic goals at mind. Firstly we wanted to assist Charles and Felix with their rainwater project, and secondly, we wanted to get our feet wet with programming Arduino. After two months of coding with the Arduino and hours of research, we found that we could greatly aid Charles and Felix with a solid project of our own.

Our main focus shifted to creating a water monitoring system that would provide insight on the quality of the rainwater collected by Charles and Felix. The monitoring system would assess water temperature, pH, and indicate water level with water sensors, all of this data was to be displayed on an LCD screen embedded on a metal chassis that would house the Arduino. We created a few small scale experiments that would mirror our final project design. The sensor we worked in depth with was the motion sensor and that was to help us master the "if then" format of coding is similar with all sensors. Next we tested the temperature sensor by comparing it’s readings with that of a thermometer.

It was at this point in time where our main focus shifted again. After visiting the school greenhouse, where our setup would be, we found that we had the potential to do so much more with the Arduino. Our current focus is to make a water storage tank that is capable of maintaining and monitoring its upkeep. We plan to achieve this goal by making a smaller scale tank, set up the fundamental components in the greenhouse, and then just keep building on it.

Materials

Aside from a computer with the Arduino software downloaded on it, the materials required in the first phase of our project are a small tank, a water temperature and humidity sensor, a water sensor/float sensor, a pH probe and sensor, a piezzo buzzer, tubing, and a water pump.

The materials required for the second phase are metal chassis, a LCD screen, a rechargeable (solar-cell preferably) battery power source that is Arduino compatible, Nitrate and Nitrite sensors, and potentially a water alkalinity test of sorts. The materials required for our final phase of the experiment is the SMS shield, the ethernet shield, and an Arduino mega.

Protocol

After obtaining the necessary materials, we are going to build a small scale water tank capable of draining excess water and noting the pH and temperature. First we are going to take our tank and fasten tubes on each side of it, serving as entry and exit points for water. Next we are going to place a pH sensor near the tip of the entry point so that pH can be read as soon as possible. Then we are going to place a temperature probe at the bottom of the tank so that there will always be a read temperature at any given moment. Near the temperature probe will be a float sensor that will rise and fall with the level of the water and communicate to the Arduino, the water level. Connected to the exit tube will be a water pump that will drain water when the water level rises higher than the exit tube.

For the next phase of our project we will be encasing the Arduino in a metal chassis that has an embedded LCD screen in it. Instead of displaying the information on the serial monitor in the Arduino software, it will be displayed on the LCD screen. Also we will implement a piezzo buzzer to go off if the parameters reach undesirable levels. We will also add a Nitrate and Nitrite sensor. After we master all of the sensors on the small scale tank we will move to the greenhouse and set up everything there. In order to avoid the limitations of no computer in the greenhouse we will connect the Arduino to a rechargeable battery cell, hopefully running on solar power.

In the final phase we will move the code to an Arduino mega, and with the additional ports we will implement a SMS shield and an ethernet shield to get the data obtained from the sensors to be displayed online, and to alert via text when parameters are broken.

Timeline

November 26, 2012:

Tweaked with LED lights and code.

Started first test: Blinking LED.

November 27, 2012:

Finished PIR circuit and experimented and began writing the code for it.

November 28, 2012:

Started testing with PIR motion sensor.

Started second test: Testing motion sensor.

November 29, 2012:

Worked with Piezzo buzzer.

Started third test: Making buzzer music.

December 30, 2012:

Troubleshoot PIR motion sensor.

December 4, 2012:

Troubleshooting because motion sensor still doesn’t work.

December 5, 2012:

Discussed fundraising for a new Chrome book.

December 7, 2012:

Planning ahead for the rest of the month.

Continued troubleshooting PIR motion sensor.

Continued discussing fundraising.

December 10, 2012:

Worked with new PIR sensor.

Resumed second test.

December 12, 2012:

Worked with PIR motion sensor and Piezzo buzzer.

Started fourth test: Putting it all together into one small security device.

January 14, 2013:

Visited greenhouse to examine and discuss what we need for water filtration and storage.

January 15, 2013:

Started working with Felix and Charles on water filtration project.

Made blueprints for a smaller version of the filtration system.

January 16, 2013:

Gathered materials to make a small filtration system.

Attempted to mold plastic drinking straws using boiling hot water bath.

Didn’t work.

January 18, 2013:

Made a 6-chambered filter system using cups and tubes.

January 21, 2013:

Researched on what is needed for filtration system.

January 22, 2013:

Discussed fundraising again.

January 24, 2013:

Decided to temporarily stop the project and start working on the project proposal, prepare for finals, and make our presentation.

Results

First Test: Blinking LED Lights

We managed to learn how to manipulate the default code that makes the LED blink at 1 second intervals to blink at any split second interval.

Second Test: PIR Motion Sensor

The PIR motion sensor that came with the Arduino was malfunctioning. It took 2 weeks of trying to repair, alter, and re-coding before we bought a new motion sensor from RadioShack. This one worked like a charm on day one.

Third Test: Making Buzzer Music

Initially, this was just for fun when Anthony input a code into the Arduino that made the buzzer play a Christmas song. Tony decided to expand upon this and researched how to change the tone of the buzzer noises to make it sound like a song. He also researched what code is for what note to play and wrote a coded song himself for the buzzer.

Fourth Test: Making the Security Device

In just 3 days, we somehow managed to put a month’s worth of work on the Arduino into one small motion detector. When the PIR motion sensor notices a change in the heat signatures of organisms of the room, it sends a signal to the Arduino. The Arduino then relays this signal to the LED light to start blinking and another signal for the buzzer to sound.

Making the Water Filtration System

Our group finally paired up with Felix and Charles to get started with the water filtration system. Mr. Katz took both groups to the greenhouse to show them what the current situation is and how we will be doing this project. Afterwards, we got started on what materials we need to build a miniature system. Tony bought a few cups from Billy Goats to mimic containers. At first we wanted to boil plastic drinking straws in hot water. This idea didn’t work even when the water was over 100 degrees Celsius. So we decided to switch to rubber tubing found in one of the supply closets in the Science Department. We soon made the mini system and tested it. The system so far chains water flow from one container to another, from top to bottom.

Future Plans

Now that our initial preparation is complete. The final portion of this project is underway. Our mini water system works as expected. We have found most of the materials we need online. All that’s left is the fundraising for the money we need to buy those materials. Once the second semester begins, we will resume our goal and kick start the project. When this project is complete, the greenhouse will have a water system that can filter the water by itself, automatically maintain the flow of water, and be able to release any excess water so it doesn’t overflow. Once we have a system that does that, we will have a greenhouse full of fresh food that can be served to our lunchroom cafeterias. Mr. Katz said that this would be a competition among high schools to see who can grow their own food efficiently first. We don’t know what the winners get, but we’re excited to find out once we win this.

Background on the Arduino

People encounter problems several times on a daily basis. Solutions may be irrelevant as one may never encounter the same problem twice; however, there are some problems that never go away unless action is taken against it. It is an innate human tendency to look for solutions to one’s problems, but what determines whether a person submits to their inclination is the availability of a solution. In an industrialized world, many turn towards technology. The issue with technology is that hardware range in pricing and the lay person may require some training to use any of it. To address this issue, Italian engineers David Cuartielles and Massimo Banzi invented the Arduino.

What is an Arduino? Arduino is a Microcontroller

To put it simply, an Arduino is a single board microcontroller intended to make the practice of using electronics in multidisciplinary projects more handy. Before getting into the Arduino, one has to understand what a microcontroller is. A microcontroller is a microprocessor on a single integrated circuit intended to operate as an embedded system. As well as a CPU, a microcontroller typically includes small amounts of RAM, PROM timers, and I/O ports [1]. Piecing all of this together, the purpose of an embedded system, using a processor, is to control a function, either in whole or in part, as an integral part of a larger system or subsystem in real time.

The "CPU" (Central Processing Unit) component is the microprocessor: the part in charge of retrieving, decoding, and executing instructions; It does most of the data processing, much like the name implies. RAM (Random Access Memory) is simply a form of volatile memory (i.e. temporary memory). The memory pertains to electric memory circuits that allow for information to be stored or accessed in any order with all storage locations being equally accessible. Data is lost once the module is turned off. PROM (Programmable Read Only Memory) is the nonvolatile component of memory used by, but not limited to a microcontroller. PROM pertains to a form of digital memory that is programmed by software and can either be permanent, or can be erased to reload new data. The memory components of an embedded system within a microcontroller allows for the repeated execution of a single function, with tight constraints on design metrics, that reacts to real time [2].

Programming

Specific instructions made for microcontrollers and microprocessors are what make them function. Every microprocessor is given unique directions in order to perform seemingly simple tasks such as basic math computations, manipulating gathered data, and obtaining information from memory. Here is an example: a Macintosh computer’s Motorola PowerPC houses a totally different instruction set than Intel Premium found in International Business Machine compatibles. Intel premium’s processors use a program known as "machine language" in order to carry out its tasks. A simple computation, such as the addition of two numbers can potentially take thousands of machine instructions to process and complete. Such programs are extremely puzzling to programmers not familiar with the language, and even more so for a novice of the field. Code to add the numbers six and seven may look similar to this:

LDA #$06

STA $1B6C

LDA #$07

ADD $1B6C

STA $1B6D

       

There exists a solution to such complexities in the form of higher level languages. Two examples are the languages BASIC and C which operate under instructions that are easier to understand because they use a program that’s close to English. Additionally, versions of the same program designed for different operating systems can very much be the same. Let’s say BASIC designed for International Business Machine PCs is similar to BASIC used in Macs [3]. Coding the program to add six and seven together may result in a straightforward algorithm such as this:

Sum = 6 + 7

        The design of a higher level computer’s interpretation system or compiler, is to take its input in the form of code, in this case BASIC code, and process it in such a way that it is more comprehensible to the processor under which it is operating. Just to clarify, a compiler takes a program, decodes it, and then runs it as it normally would whereas an interpreter decodes to machine language as the program runs. The following is an example that involves instructions for preparing scrambled eggs. A basic procedure for this action looks like this:

· Crack open a desired amount of eggs over a container.

· Stir contents.

· Fire up the stove and heat a frying pan.

· Along with vegetable oil and a preferred amount of salt, apply egg contents.

· Fry eggs and scramble them as preferred.

· Turn off stove, transfer eggs to a plate and chow down.

        This task can be described by the English language as "scramble eggs". One way or another, one has likely experienced the execution of this task and therefore knows what it means and what steps the task requires one to take. Let's say this command was in a programming language. Hypothetically, here is how it would be interpreted and compiled: C, the hypothetical compiled language, would perceive the action to "scramble eggs", and it would dissemble it into its component steps, storing them as its own instructions in machine code. The procedures "Crack open a desired amount of eggs over a container", "Stir contents", etc, would be evaluated instead of "Scramble eggs". At the execution of the program, the CPU would read "Fire up the stove", comprehend the instruction inherently and proceed to enact it. The CPU would then read "Apply egg contents" and effectuate the task, and so on, until the eggs are finally prepared, scrambled.

        This is an example of an interpreted language. What occurs in reality is that the language stores tokens or symbols in the place of the action "Scramble eggs". To a person, symbols can be the eggs frying on the pan but to a computer or microprocessor it may be a numerical value such as "01101100". Once the program is evaluated and implemented, the language interpreter interprets the token or symbol that was stored. The token or symbol is then broken down to inform the CPU on the actions it must carry out. "Okay, this symbol means to scramble eggs! Processor, commence cracking some eggs open. Alright, the next step is... processor, stir the contents. Next…" [4]

It seems a little simple. It may be; however, this is what the interpreter needs to do at a fundamental level. In summary, an uncomplicated statement is compiled or segmented into various instructions in a compiled language. These instructions are understood by the processor and carried out before execution. Commands are converted into tokens or symbols which are processed and understood all while a program is running, one function at a time, continuously unless told otherwise.

Why use Arduino?

        The aforementioned properties of a microcontroller and its software components are applicable to the Arduino. The open-source Arduino is a physical computing platform based on a simple input/output (I/O) board and development environment that effectuates the Processing language. Arduino can be used to cultivate stand alone interactive objects, or can be linked to software on a computer (such as Flash, Processing, VVVV, or Max/MSP). The boards can be self assembled on one’s own, or a manufactured model can be purchased. The open source IDE (Integrated Development Environment) can be downloaded for free at www.arduino.cc [5].

What sets Arduino apart from other microcontrollers on the market:

·        It’s IDE is compatible with windows, Macintosh, and Linux operating systems.

·        It is programmable via USB cable as opposed to serial ports, which most computers don’t have.

·        It exhibits open-source software AND hardware: one can download circuit diagrams online, buy all of Arduino’s components, and make one’s own Arduino board without owing anything to its makers.

·        Arduino boards are extremely cheap. The USB model costs about $35. Furthermore, one can afford to make mistakes. Replacing a burnt-out chip is not difficult in the least, and it costs about $4.

·        There exists an active community of Arduino users which are more than willing to help anyone starting out their own project.

·        Because the Arduino Project was developed in an educational setting, it is easy for newcomers to get started quickly [6].

        Arduino boards are interesting, but they can’t really do much on their own. Thanks to their open source technology, building add-on boards to extend what Arduino can do is fairly easy, and people do it all the time. As a result, Arduino is compatible with many add-on boards. Below is a listing of some of the boards used to propagate Arduino’s capabilities [7]:

·        Gorilla Builderz Wi-Fi Shield: A shield (synonymous with "add-on board") supplying Arduino with internet connectivity.

·        Freetronics Ethernet Shield: This shield connects the Arduino itself to the internet, allowing it to interact with an online database granting the user the ability to automatically update twitter, surf through web pages and connect to other web services, display sensor data online, and control extraneous devices through a web browser

·        Rock Seven RockBLOCK: A shield that can receive and send short messages from anywhere in the world.

·        Freetronics USB Droid: Connect an android phone to this shield for all sorts of controller and networking features.

        These are but a few of the many Arduino shields available for purchase online or on the market. There are shields that allow Arduino to drive robot motors, read GPS signals, connect to Bluetooth devices, take pictures, control electroluminescent wire, etc. As of today, there are over 300 working Arduino compatible shields [8].  The focus of this research and project undertaking is making use of Arduino’s environmental monitoring shields, namely those used for water monitoring systems in urban agriculture projects, for example.

Water Monitor System

        The importance of monitoring water in urban agriculture stems from the rigid regulations companies like the EPA (Environmental Protection Agency) impose upon drinkable water as well as that used to nurture plants. The issue is that water may contain contaminants such as bacteria no matter the source. In an agricultural setting, contaminants may directly affect plants, or they may affect secondary consumers, in this case the people who eat the plants. The goal of monitoring water is to keep the water within the limits of healthy drinkability set by the EPA. Constant data retrieval is essential for the propagation of such endeavors. Clean drinkable water means healthy plants, and in turn, healthy consumers.

Below are examples of contaminants the EPA are concerned with, and their respective Maximum Contaminant Level Goal (MCLG) in mg/L, Maximum Contaminant Level also in mg/L, and detrimental effects [9]:

Total coli form: The EPA’s goal is zero MCL. The highest concentration allowed in drinking water is 5% however it is not a threat to health in itself. It is simply used to detect other harmful bacteria.

Turbidity: This is a qualitative measure of how murky the water is. It is indicative of the effectiveness of filtration, but higher turbidity levels are frequently associated with disease causing microorganisms.

Copper: The EPA’s goal is 1.3 MCL. That is also the level at which action against the contaminant is taken. Copper, during short-term exposure can cause gastrointestinal distress. But get exposed for too long and it may cause kidney or liver damage.

Lead: The EPA’s goal is zero MCL. The level at which action is taken against the contaminant is 0.015 MCL. Lead is very dangerous as it can cause developmental failures in children and kidney problems in adults even at a small exposure.

Listed are but a few contaminants taken into consideration. Using Arduino sensors, one can monitor water for alkalinity, which is one of the EPA’s main concerns. Furthermore, the coli form in the water can be monitored as well. The purpose of implementing such sensors in an urban agriculture system or a greenhouse is to take reasonable action against unwanted detected agents to make water safe for plant and human consumption.



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now