In the previous post I described the entire system architecture. In this post, I am going to describe the Arduino shield that I unfortunately call “Elkhorn Creek Water Level 1.1”. It is unfortunate because in version 1.0 I made a really stupid error which ruined the first run of printed circuit boards. You can read more about how I made the error and what I am doing in the future in the post Creek Board 1.0 RCCA.
To make this system work I need to be able to interface the PSoC4200 with two sensors:
- The US381-000005-015PG pressure sensor
- A TMP036 temperature sensor
Both of these sensors are subject to environmental noise so they both have capacitive or RC filters connected to them. I originally built a prototype of this board using a proto board. However, it was a PITA because the wires would come loose and the system would stop working.
So I decided to make a real PCB. To do the design, I used the Eagle 7.2 PCB editor as it seemed like it had the most support from the maker community. The schematic for the system is fairly simple. It has
- Pressure Sensor
- X1: A Molex Microfit 3.0 Connector to attach the two wires from the pressure sensor
- R1: A 51.1 Ohm resistor to group to convert the 4-20mA –> 0.204mV to 1.022V
- C1/R2: A low pass filter
- TVS1: A ESD diode to clamp any ESD event to ground to prevent it from blowing up the PSoC4A or the Sensor
- Temperature Sensor
- TMP36: A sensor that turns temperature into a voltage. The equation for temperature is T=0.5V+10mV/degreeC. For 25 degrees C the Voltage = 750mV
- C2 + C3: Two decoupling capacitors to filter power supply noise
- Arduino Interface
- A standard Arduino interface set of pins + the additional Cypress CY8CKIT-042 pins. I only used the A0 and A1 pins for signals and the Vin pin (which is 12v) to drive the current loop
- Measurement Test Points
- Keystone 5000 test points. These test points are a little loop of wire that sticks up from the surface of the PCB to make it easy to probe a voltage with your DMM.
Here is the final Eagle Schematic for the board.
Once I completed the layout I sent the board to OSH Park to be manufactured. I have shared the project on their website. OSH Park is an excellent company that is easy to do business with. They charged me $22.55 for three of the boards. The fit and finish of the boards is very nice. Here is the board:
Here is the assembled board:
I have posted all of the project files at github. You can “git” them from https://github.com/iotexpert/TheCreek The Eagle project is in the CreekBoard directory.
Index
Description
The Creek: IOT for the Elkhorn Creek
Introduction
The Creek: Solution Architecture 1.0
Overall architecture
The Creek: Creek Board 1.1
Eagle layout of the board
The Creek: Creek Board 1.0 – RCCA
A discussion of the errors in the 1.0 board
The Creek: CYPI, a Raspberry Pi to Arduino Bridge
PSoC4 <--> Raspberry Pi Bridge Board
The Creek: PSoC4 Creator Schematic and Firmware
Firmware to interface with the temperature and pressure sensors
The Creek: Testing the Firmware
Using tools to verify that the PSoC 4 Firmware is working correctly
The Creek: Testing the Bootloader
Make sure that you can load new firmware into the PSoC
The Creek: Software Architecture
All of the Raspberry Pi software connections
The Creek: Install MySql
Instruction to configure MySql
The Creek: Install Tomcat
Instruction to configure Tomcat JSP Server
The Creek: Data Collection Java (Part 1)
The Java program that reads the I2C and saves it in the database
The Creek: Data Collection Java (Part 2)
The Java program that reads the I2C and saves it in the database
The Creek: Create the Chart with JFreeChart
Using open source Java charting software to create plots of the Creek Depth
The Creek: Flood Event Data Processor
A batch program to create analyze the database and create a table of flood events
The Creek: Flood Event Web Page
A batch program to create the flood event web page
The Creek: Creek Server 1.1
Updates to all of the back off server programs to integrate charts
The Creek: JSP Web Page for www.elkhorn-creek.org
The JSP program to make the table and display the website
The Creek: Raspberry Pi Clock Stretching
Sorting out a bug in the system having to do with the Broadcomm Raspberry Pi Master not functioning well with clock stretching
The Creek: Creek Server 1.2
Caching the web pages to make them faster
No comment yet, add your voice below!