Home › Forums › Other Data Loggers › Datalogger build
Tagged: datalogger, RS485, Teensy3
- This topic has 17 replies, 6 voices, and was last updated 2015-10-08 at 2:09 PM by Shannon Hicks.
2015-06-18 at 3:19 PM #1194
I am very new to this type of datalogging and building (just this week while visiting SWRC). I am not really sure where to start when it comes it to which board to purchase. I do know that I need an onboard data storage device such as the SD card. And for my first build I want to use a water level, temp, and electrical conductance sensor (maybe decagon CTD). A solar panel would also be needed to keep battery charged up. I think it would cool too and use a bluetooth card that can be password protected and we connect via bluetooth to download data (maybe add this on later).
Any tips and suggestions on what to look for on deciding what board/platform to use would be greatly appreciated.
2015-06-24 at 10:29 AM #1198
Can you say a little about your application/project – is it something you are collecting data to supply to others or a kick-off learning project, how urgent is the project, is it outdoors with no power, does it have a cabinet, what range of water level/accuracy and placement (a well or a stream?). What range of conductance and whats the analysis you are looking to do with the data. Conductance can have simple and complex interpretations.
What is the most critical parameter you are measuring?
If you are looking to experiment with the Decagon CTD, then looking at its protocol interfaces SDI12 is the starting point,
I’d have to scout around for and SDI12 logger at this point, though I do have something I purchased but haven’t used yet. I do have a plan to make an SDI-12 logger that would interface to amongst other things the CTD.
2015-06-25 at 7:04 PM #1203
This project is a dual purpose in that primarily will be a kick-off learning tool but also be used by local high school students. It is an outdoor project with no power source other than battery and/or small solar panel and will also need some sort of water proof containment such as the pelican cases SWRC use. The application will be in a stream with ranges of conductance of 80 to 1500. Water level has been recorded at a height of ~3.5 meters in years past. All three parameters (level, cond, and water temp) are required to be of any good analysis of the system so they are all of equal importance. I am very familiar with SDI-12 sensors and protocols. I do believe the decagon ctd can also be used in 485 format as well. I do not need to stick with that particular device though but haven’t found anything in the same price range or cheaper that could provide relatively reliable data.
My biggest issue getting started with building my own Arduino sensor system is how to choose the appropriate board to start with? What do I look for when determining the interface and add-on capabilities on the boards?
2015-06-29 at 9:27 PM #1207
Wow Brandon, sounds like a great project. I’ve just got back from a music festival – and have a whole pile of work to get through – but hopefully can get back tomorrow with some ideas.
Since its a school, and I’ve been talking to some local teachers about a similar thing and I’m being introduced to the language of cirriculum, do you have specific items you are hoping to teach – is it focused on the biology? and/or what level of “maker” or “computer science” skills – or is it too early for all of that.
I guess what I’m thinking of is this type of project could be multi-year – an emphasis first on getting something working – Arduinio.cc with simple instrumentation output and primarily lab based testing.
– then project evolution and focusing on refining different parts of the system that could be split into different projects and moving to stream side and longer term monitoring.?
2015-06-30 at 7:11 PM #1208
Ultimately that is the direction I would like to take this. I first want to build a complete setup to have it up and running then have it broken up in ‘pieces’ for the students. I do want to have system though up and running that we can collect data and have students analyze sooner rather than later (ie…don’t want to wait for the students to build there own).
As far as what I want to teach, it will be based on water quality and in our neck of the woods in particular the Marcellus shale waterways. It will also show them as future scientists(we hope) that sensor arrays don’t have to be all that expensive (as SWRC puts it). I only recently learned of these systems while visiting the SWRC and thought it was awesome to be able to build these and want to do it myself along with others! But again, just not sure where to start especially on what is compatible to what boards and all.
2015-07-01 at 9:57 PM #1209
I’d Be interested in who your contact is at SWRC that you heard it from.
I’d say if you want to start monitoring ASAP you’ll need to buy the “value added” system that has had the work done for you.
You need to pay attention to the specification sheets.
This should be integrated piece of equipment with all functions, logger,SD card/USB drive, solar panel and sensor – so that if there is any queries you have one place to ask questions “How do I make this work per specification sheet”
This would be used by the “stream monitors/biologists?” – and it would need to teach reliable data measurements and management – reading integrity and traceability – and of course offer the chance of a fact based opinion on water quality in a specific locatiion/stream.
This could become a “reference test system” for putting your own lower cost systems together later – probably by a different group of students as its different skills. Teaches team work as well.
My suggestion for an RS485 based logger with solar power:
arduino.cc development environment,
I recommend ARM based processor (thats where its heading) and for students to be able to have the most extensible environment – 65Kram is good.
https://forum.pjrc.com/ – have ARM based processor with great detailed technical support, including low power.
Teensy3.1 – Processor with 65Kram /256K program memory
Solar Charger & Battery needs to be same technology – either LiPo (LiFePO4) or LiIon. LiIon is used through out cell phones but can explode/catch fire if discharged too fast
http://www.seeedstudio.com/depot/LiPo-Rider-Pro-p-992.html Max1A $15
However, your mileage is likely to vary, these are parts that can fit together lego like, but need an analysis of data and power flow.
If used wrongly they can break/smoke, but other then LiIon batteries are not dangerous.
To start, I would get the Teensy3.1 and RS485 and power supply and Decagon CTD – and get the data from the sensor Decagon CTD. This would verify your toolchain (prjc variant of Arduino) and data flow. I’ve used it and its worked well for me and lots of other people – however your mileage may vary.
Then you build the other parts in “brick by brick”
Hope that overview is useful?
2015-06-25 at 1:34 PM #1202mathewParticipant
Not sure if SDI12 is where you’re going, there are DIY options too.
Stroud has a great SDI-12 Arduino interface. it only works with Atmega 328P based Arduinos though.
2015-09-22 at 1:32 PM #1267
Stroud has a great SDI-12 Arduino interface. it only works with Atmega 328P based Arduinos though.
mathew, just so you are aware……the SDI-12 library will work on the Mega2560 as well. I’m using it right now to pull SDI-12 data from a Sutron Rain Weight gauge. You can only use pins that are set up for digitalPinToPCMSK calls if I remember right.
pins_Arduino.h for the Mega calls the following pins for that function.
#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \
( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \
((uint8_t *)0) ) )
2015-09-10 at 9:04 PM #1261
I am finally working on a system. I have an Arduino Mega 2560 – R3, the Adafruit Datalogging SD Shield, and just a DS18B20 temperature sensor (waterproof with 3 wires using a 4.7 ohm resistor). I can get the temp to record however I am having trouble getting the RTC on the shield to respond as it should. The shield seems to be working initially keeping track of time however once unplugged from USB and wait for 5 minutes the time doesn’t keep up. In other words when it is plugged back in the time resumes at the time the Arduino was unplugged. The shield does have a 3v battery backup which should maintain the clock when the Arduino isn’t powered.
I have attached the code as well.
2015-09-29 at 6:54 PM #1276Rene SchieritzParticipant
Have you checked the battery for battery health? While the Arduino is disconnected, connect one probe of your multimeter to the top of the battery, and one to the GND breakout on the datalogging shield.
Also, I would comment out the rtc.adjust function once you’ve set the time initially. I’m not sure if that makes a difference in this case, but it did cause problems for me using a different library.
2015-09-30 at 7:07 AM #1277
I took a look at your code. Not sure why the clock is doing that to you, but Rene could be correct. I’ve not had a clock do that to me before so I couldn’t personally confirm.
I don’t typically use the RTC library as I only need a couple of functions (set time and get time) so I just put the operations within the main sketch. If you would like to, you can try the modified code attached. just rename the extension from .txt to .ino. It is your same code just modified to use the clock structure as I do. It didn’t look like you were pulling anything else from the clock either. I use a DS3231(chronodot setup), but the 1307 is the same address I believe.
I’m not sure how the library you had performs the time setting but this adds an option for you to send a time update to the sketch over the serial port whenever you like. Its explained at the top of the sketch.
2015-10-07 at 11:40 AM #1279
Thanks Rene and Rick
The battery is brand new but I did confirm it has the correct voltage.
How would I go about forcing the time set on the RTC now? I tried the code you provided as is and the time stamp is about 20 minutes off of actual time.
2015-10-07 at 11:49 AM #1280
Open up the Serial terminal within the Arduino IDE and perform the following:
Send Time as T, sec(00-07), min, hr, dayOfWeek, dayOfMonth, month, year.
example: T0045073071015 Send/Enter
//sec=00, min=45, hr=07, dayofweek=3, dayofMonth=07, month=10, year=15
I forgot that using Putty or HyperTerm this won’t work because they send chars as they are typed. The Arduino Serial Monitor allows you to type it all first and then hit send.
I have another menu based structure that would work in any terminal emulator. I’ll see if I can dig that up.
2015-10-07 at 12:19 PM #1281
Try this latest one if you have issues. Setting the time within Arduino Serial monitor with T0045….. will still work, but if you are in hyperterm or putty just hit the “?” symbol and it should bring up a menu for you to modify the time manually and step you through the process. If you have issues just let me know and I’ll help you get through.
File name changed and change the .txt to .ino again to load into Arduino.
2015-10-07 at 12:35 PM #1283
Thanks for the info. I believe this is working. I am having power issues now though too so I can’t be sure. The dc jack will not give consistent power. I may have fried something when we tried to set this up in the field using the gnd and vin pins (didn’t have the jacks at the time).
I may be asking more questions about the SDI12 setup then too. I have a CTD sensor we want to use in this manner as well.
2015-10-07 at 1:03 PM #1284
Your method does work for the most part. However, when I moved the adafruit sd/rtc shield to another board I had to send the time to it again. Should the rtc maintain the time once set since it has its own battery? It does maintain the time without moving the shield to another board and cutting power for a minute or two but not sure yet what would happen if we lost power for 15, 20, etc minutes.
definitely better than what we had before though so thank you!
2015-10-07 at 1:30 PM #1285
should maintain time as long at vBatt on the RTC is good……although plugging and unplugging electronics can do crazy things sometimes. At least now you have a quick way to set the time should you need to.
2015-10-08 at 2:09 PM #1286Shannon HicksModerator
FWIW, in the past I’ve had a few times where the DS1307 clock on the Adafruit shield would reset to some random time in the past or sometimes even in the future. If I remember right, I think it usually happened whenever I was trying something new with the hardware, so I just assumed it was sensitive to shorts or other weird electrical gremlins. It has only happened a few rare times with the DS3231 on the Stalker in the past couple years. I stopped using the Adafruit shield for deployments where timing really mattered because the DS13007 is so inaccurate at either high or low temperatures that our timestamps would get horribly fast or slow during the either the winters or summers. But if you’ve got a GPRS unit on the logger, you could just grab the time from a time server occasionally and resync your clock every few weeks.
- You must be logged in to reply to this topic.