Monitoring floating dock water levels and sensors with Croduino

Customer:

We need to monitor water levels in tanks on a floating (and submerging) dock. The tanks are 6m tall. We also want to measure temperature, motor speed, toxic gases, and monitor pumps and air systems. 1. First idea: pressure sensor at the top of the tank (dry area) connected via tube/hose to 0.5-1m above the tank bottom. Calculate water height from air pressure in the tube. Maximum pressure in the tube would be atmospheric + 7m water = ~1.8bar. Some sensors have two inputs - one at atmospheric pressure, one in the tube, measuring only the pressure difference (~0.8bar). Is this good logic? I want to buy 2 of each sensor you have. The MPS20N0040D-D says it measures only to 400hPa - is that enough for atmospheric pressure, or does it measure 400hPa ABOVE atmospheric? If the latter, we could measure at least 4m of water. 2. Second idea: ultrasonic sensor. You have one that measures 4-5m maximum, which would work as a start, but we need more ideally. Problem: the tank has a mesh structure inside, so signal won’t have a clear path to the water surface. Sensors might work better inside a tube. But I read experiences are mixed - 15 degree beam angle is too wide, requiring very thick tubes for longer measurements, not practical. Your thoughts? 3. Other ideas: float with magnet and hall sensor? Insulated rod measuring capacitance? Do soil moisture sensors work this way - could they be adapted with two long stainless steel rods measuring analog values? 4. Can one Arduino handle multiple sensors? Does programming get complicated? Is it easy with many identical sensors, or many different sensors? 5. If we have multiple Arduinos measuring different things, how do we collect all data together? Do Arduinos connect to each other (how?) or all connect to serial/LAN/WiFi/Bluetooth to a PC or Raspberry Pi for processing and aggregation? Inside the iron dock, wireless might not work, wires preferred. In some spots wireless could work if WiFi module can reach 2-3m from Arduino. How to display data on the main PC or Raspberry? We’d like graphs over time, maybe a web server, or something simpler? 6. Which Croduino suits us best? Basic2 is closest to regular Arduino? Nova for WiFi network parts? For now we’d get larger simpler ones, maybe several different versions to combine and test. Are Croduino completely compatible with all Arduinos and programs written for them? 7. Secondary sensors: motor temperature, motor speed (hall+magnet?), toxic gases (CO), fire, dock tilt (which sensor?).

Originally submitted via email support on 9 March 2016. Migrated to the forum for community visibility.

Soldered Support:

The MPS20N0040D-D measuring only to 400hPa is correct. It has an opening where you can attach a tube to measure lower pressures - used for industrial applications. BMP180 is better for hobby applications and weather station projects. We don’t currently stock a sensor that would be ideal for this application. Can you send us a link to the dual-tube sensor you found? We’d like to see how it works. You could try our sensor, but it will be a significant challenge for it. You might get stable readings up to 3-4 meters, after that you’ll need to test. For this application, I’d recommend getting a higher-quality ultrasonic sensor like Maxbotix or MaxSonar. Regarding sensor angle - a narrower angle suits you better. I don’t know the tank width so I can’t say if 15 degrees will work. We’ve used ultrasonic sensors for measuring water height in containers. A float is probably the best solution, with a sufficiently strong hall sensor or large enough magnet. That would be simplest. If stainless steel protects against sea salt, you could try it. We can’t know how it would work - it’s not plain water and not a closed tank. Soil sensors work on this principle. This definitely needs testing. Of course, Arduino/Croduino can have multiple sensors. Programming is “more complicated” - I put that in quotes because it just makes code longer, not actually more complex. If you have some time, you’ll quickly understand the programming principles, which are simple. I can’t say it’s “easy”, but it’s definitely not complicated. We’re here to help. Two Arduinos/Croduinos can connect many ways, including all you listed. Best not to connect them to each other if possible, as it complicates code. If you must, serial is probably simplest - you need two pins on each Croduino. Once you’ve collected all info on one Croduino, you have two options: a) Store on SD card, collect it occasionally and manually transfer data to computer b) Send directly via serial to a computer (Raspberry or Windows) with open serial port that data-logs the incoming information. This is more complex as it requires developing a Linux script or Windows software, but it’s automated. You then have a .csv file to do whatever you want - draw graphs, load into other data analysis programs. Unless you want to offer simultaneous access to other users, you don’t need a web server. Basic2 is best for all these purposes. NOVA if you want to send everything to the internet or connect multiple NOVAs together. That’s getting more complicated. But there’s a not-so-complicated way to send info directly from NOVA to a web server like data.sparkfun.com Croduino is 100% compatible with everything Arduino, hardware and software. Croduino is actually just Arduino’s version. Sensor recommendations for what you mentioned: Vodootporni DS18B20 senzor temperature – Soldered Electronics Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics or Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics https://e-radionica.com/hr/mq7-senzor-plinova.html Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics What do you mean by “tightness of dock”? I’ve included one Basic2 and one NOVA (you mentioned two Croduinos), and you have another Basic2 in the HOBBY kit, so you can test all the options we discussed. Compass only measures orientation when lying flat on a surface. Accelerometer will be better. Using hall effect you can measure current on 220V devices. Arduinos don’t need to know the time - that’s just for sensor readings so you always know when the reading was taken. We currently don’t have power supplies. You can use 5V adapters like phone chargers. You get a USB cable with Croduino.

Original message (Croatian)

evo odgovora na Vaša pitanja :slight_smile: Hvala na detaljinim objašnjenjima. Za senzor zraka MPS20N0040D-D nije pogreška da mjeri samo do 400hPa. Na njemu postoji otvor na kojega je moguće spremiti cjevćicu i mjeriti niže tlakove. Koristi se za industrijske primjene. BMP180 je bolji za hobističke primjene i primjene meteoroloških stanica. Kakav ste senzor našli s dvije cjevčice, možete nam poslati neki link? Pa da vidimo kako funkcionira.. Moje mišljenje je da možete probati s našim senzorom, ali da će to biti veliki izazov za njega. Ipak je to senzor koji košta 20ak kuna :slight_smile: Mislim da ćete moći dobiti do nekih 3-4 metra stabilna očitanja, a nakon toga.. Morat ćete testirat kako će to izgledati. Za ovakvu primjenu svakako bih preporučio pribaviti neki kvalitetniji ultrazvučni senzor, tipa Maxbotix ili MaxSonar, tako je. Što se tiče kuta senzora, više će Vam odgovarati uži kut, tako je. Nemam baš zamisao koliko je širok tank pa ne znam kako će 15 stupnjeva odraditi posao. Mi smo također u našim primjenama korisili ultrazvučni senzor za mjerenje visine vode u nekom spremniku. Plovka je možda i najbolje rješenje, sa dovoljno jakim hall sensorom ili dovoljno velikim magnetom. Mislim da bi to najjednostavnije bilo odraditi. Ako inox štiti od utjecaja mora(sol), može se probati odraditi. Ne znam kako bi funkcioniralo jer se ne radi o običnoj vodi + ne radi se o zatvorenom tanku. Inače, na taj način funkcioniraju sezori koji se ubodu u zemlju, tako je. Ovo svakako treba testirati. Naravno, Arduino/Croduino može imati više ovakvih senzora odjednom. Programiranje je “kompliciranije” u tom slučaju, ali stavljam pod navodnike jer samo čini kod dužim, ne kompliciranijim. Ukoliko imate ponešto vremena, brzo ćete shvatiti princip programiranja koji je jednostavan. Ne mogu reći da je “lako”, ali u svakom slučaju nije komplicirano :slight_smile: Tu smo da pomognemo, uostalom. Dva Arduina/Croduina se mogu povezati na veliki broj načina, čak i na sve koje ste nabrojali. Najbolje je ih ne povezivati međusobno jer komplicira program ukoliko je moguće. Ako ih ipak treba povezati, najjednostavnije je vjerojatno to odraditi serijski. Trebate dva pina na svakom Croduinu za to. Nakon što ste skupili sve info na jednom Croduino, imate dvije opcije: a) spremati ih na SD karticu koju ćete s vremena na vrijeme prikupiti i ručno prenjeti informacije na računalo b) serijskom vezom ih direktno slati na neko računalo, npr. Raspberry ili obično Windows računalo koje će imati otvoren serijski port i data-loggati informacije koje mu dolaze. Ovo je kompliciranija opcija jer uključuje razvoj skripte za Linux ili SW za Windows, ali je automatizirano rješenje. Na računalo tada imate .csv fajl s kojime možete raditi što god želite - crtati grafove, učitavati u druge programe za analizu podataka… Basic2 za sve ove namjene je najbolji, tako je. NOVA ako želite sve slati na internet ili međusobno povezivati NOVE. To je sve kompliciranija priča sada.. Ali postoji ne-tako-komplicirani način da se direkno s NOVE šalju info na neki web server. Tipa data.sparkfun.com Croduino je 100% kompatibilan s svime Arduino, hardwareski i softwareski. Croduino je zapravo verzij Arduina. Prijedlog senzora za navedeno: Vodootporni DS18B20 senzor temperature – Soldered Electronics Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics ili Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics https://e-radionica.com/hr/mq7-senzor-plinova.html Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics Što mislite pod nategnutost doka? Vjerujem da ćemo sada raditi izmjene, pa samo javite nakon čitanja ovog iscrpnog emaila :slight_smile: Stavio sam Vam jedan Basic2 i jednu NOVU(napisali ste dva croduina), a još jedan Basic2 imate u HOBBY setu, tako da ćete moći isprobati sve opcije koje smo ovdje nabrojali. Kompas Vam mjeri samo orijenaciju kada je horizntalno položen na površinu. Acelerometar će Vam biti bolji. Koristeći hall effect možete mjeriti struje na 220V uređajima. Arduini ne moraju znati koliko je sati, to Vam treba za očitanja sa senzora, da uvijek znate kada je očitanje bilo obavljeno. Napajanja trenutno nemamo. Možete koristiti 5V adaptere, kao za punjače za mobitele. USB kabel dobijete uz Croduino.

Attachment omitted in migration: PONUDA_38_Brodogradilište_Cres_d.d._.pdf

Customer:

  1. So that sensor when powered on and measuring atmospheric pressure shows nothing - is it already outside its measuring range? Here’s a sensor I’d like to use:

http://www.ebay.com/itm/ORIGINAL-Brand-New-Freescale-MPX5500DP-Pressure-Sensor-/ ?hash=item41998de180:g:GIgAAOSwyQtVpNN1

Can it connect simply to Arduino? What will accuracy/resolution be, knowing I’d only use a small part of its measuring range?

  1. Tank width - ~3m at top, larger at bottom, but the problem is L-profiles every 80cm connecting opposite walls. So the opening is 3 x 0.8m.

  2. Float with magnet. How large should the magnet be approximately so this Hall sensor registers it at 4-5m distance? What should the rod around which the float moves be made of - magnetic or non-magnetic material? Or no rod and float in a tube? One more thing - large electric motors power on and off ~10m from that sensor. Would they interfere with their magnetic fields?

  3. Can I connect 4-5 sensors to one Arduino, plus an LCD (16x2 or triple 7-segment) to display sensor values live, and also connect serially or by wire to a computer?

  4. Serial connection. How long can the wire be from Arduino to computer for serial? What wire type is OK, UTP? If 10 Arduinos all connect serially, do you need 10 USB to RS232 devices on the computer? Each Arduino on its own port? I read something about 1wire or similar where multiple Arduinos connect to the same bus on the same wires and one computer is master. What’s the maximum wire length then? Is it worth doing? That’s how the real-time clock connects so multiple devices can use it?

SD card - not an option. We need live display of values refreshing every 20-30 seconds.

CSV file on computer - is there a simple way to live-plot values from the CSV while it’s being filled, or does that require a database?

  1. data.sparkfun doesn’t work right now. I’d prefer to avoid online solutions because if internet drops during dock operations, we lose sensors. We’ll only use them then. By web server I meant local one in the LAN - that would be ideal, could have sensor displays at several places in the LAN, and Arduino just needs LAN/WLAN connection to share data.

  2. Dock tilt. The dock tilts very very slowly and I don’t know if accelerometer will detect it. We need data from 2 of 3 axes - tilt fore-aft and port-starboard. Third axis is rotation in horizontal level like east-west to north-south - we don’t need that one. Do the 3-axis compass show this? We could also measure dock immersion at each corner with sensors, then calculate tilt from the differences - actually better because we’d have much higher resolution. Dock is 100m long and 15m wide, and measuring immersion via pressure or ultrasound we’d get resolution in tenths of a degree or better.

Arduino power - 5V needed. Can it be powered via the USB cable used to connect to the computer?

Original message (Croatian)
  1. Znaci taj senzor kad se ukljuci i mjeri atmosferski tlak ne pokazuje nista, tj vec je preko svog mjernog podrucja? Evo senzora koji bih uzeo: http://www.ebay.com/itm/ORIGINAL-Brand-New-Freescale-MPX5500DP-Pressure-Sensor-/ ?hash=item41998de180:g:GIgAAOSwyQtVpNN1 Da li se da jednostavno spojiti na arduino? Kolika ce tocnost tj rezolucija biti, znajuci da bi iskoristavao samo manji dio mjernog podrucja tog senzora? 2. Sirina tanka - pa na vrhu je nekih 3m, na dnu vise, ali problem je sto su svakih 80cm L profili koji povezuju dvije suprotne stijenke. Znaci otvor je 3 x 0,8m. 3. Plovak sa magnetom. Koliki bi otprilike trebao biti magnet da ga ovaj Hall senzor registrira kada je 4-5m udaljen? I od cega bi trebala biti sipka oko koje bi plutao plovak, neki magnetni ili nemagnetni materijal? Ili bez sipke a plovak u neku cijev staviti? I jos jedna stvar, veliki elektromotori se pale i gase 10ak metara od tog senzora, da li bi oni smetali tj njihova magnetska polja? 4. Da li je moguce onda spojiti na jedan arduino 4-5 senzora, jedan lcd (16x2 ili trostruki 7 segmentni) da prikazuje vrijednosti sa senzora uzivo, i jos serijski ili nekako zicom na neko racunalo? 5. Serijsko povezivanje. Koliko duga zica smije biti od arduina do nekog kompjutera ako se radi serijski? I koja zica je ok, UTP? Ako bi svi se isli spajati serijski (npr 10 arduina), onda bi na taj kompjuter trebao staviti 10 usb na rs232 uredjaja? Pa da svaki arduino ide na svoji port? Nesto sam citao o 1wire ili nesto slicno gdje se vise arduina spaja na isti bus tj iste zice a jedan komp je u tom slucaju master. Kolika je maksimalna duljina zice u tom slucaju? I da li se to isplati raditi? Na taj nacin se spaja onaj realtimeclock pa da ga vise uredjaja koristi? SD kartica - to nije opcija. Nama treba uzivo nesto da prikazuje vrijednosti i refresha se svakih 20-30sek. CSV fajla na racunalu nekom - da li ima neki jednostavan nacin da se uzivo iscrtavaju vrijednosti iz te CSV fajle i istovremeno da se puni ta fajla ili za to treba imati neku bazu podataka? 6. data.sparkfun ne radi trenutno. Volio bih da izbjegnemo online rjesenja jer ako ponestane interneta taman tih par sati dok imamo dokovanje onda ostajemo bez senzora. A samo tada cemo ih koristiti. Pod webserver sam mislio lokalni neki, u LANu, to bi bilo idealno jer bi mogli imati prikaze sa senzora na par mjesta unutar LAN-a, a i bilo bi dovoljno spojiti arduino na LAN/WLAN i preko toga sherati podatke. 7. Nagnutost doka. Dok se naginje jako jako sporo i neznam dali ce akcelerometar to registrirati. Od 3 osi bitni su nam podaci sa 2 osi, znaci nagnutost pramac-krma i lijevo-desno. Treca os bi bila da se okrece u vodoravnoj razini npr iz smjera istok-zapad na sjever-jug. Ta treca (koja bi bila cisti kompas) nam nije potrebna. Ali ove druge dvije jesu. Da li to pokazuje taj 3-osni kompas? Nagnutost bi mogli jos napraviti pomocu senzora za uronjenost doka u more, da je na svakom kutu po jedan, pa onda oduzimanjem se dobije nagnutost po jednoj i drugoj osi. U biti bolje cak da to tako napravimo jer ce mo imati puno vecu rezoluciju, dok je dugacak 100m a sirok 15ak, a ako mjerimo uronjenost preko tlaka ili ultrazvucno imati cemo rezoluciju u desetinkama stupnja ako ne i vise. Napajanje arduina - znaci 5V treba. Moze se napajati preko USB kabela koji se koristi i za spajanje na racunalo? 1. Skinite 2 senzora tlaka MPS20N0040D pa neka ostane 1 samo. 2. Eksperimentalne plocice - 3 velicine, od svake po jedna.

Soldered Support:

The MPS20N0040D-D measuring to 400hPa is correct. It has an opening where you can attach tubing and measure lower pressures - it’s used for industrial applications.

The sensor from eBay with 0-4.7V output can easily connect to Arduino as it gives analog output. Precision won’t be high without additional external devices because Arduino’s analog pin is 10-bit, so Arduino measures in steps of approximately 0.5kPa.

Yes, the L-profiles could also interfere. You need a sensor with the smallest possible angle.

Depends on the hall sensor. I recommend testing magnet and hall effect. I don’t know about motors - it depends on the hall sensor. Definitely needs testing.

Float on silk or some other thread. If it’s on a rod, then non-magnetic.

It’s possible. You need to plan what goes on which pin and how to use the pins so each sensor and device connects properly. I believe you’ll have enough pins.

You can very simply connect serially to a computer.

I was thinking you’d connect via USB, not directly serial. Via USB you can go up to 5 meters (but verify this - I’m not 100% sure). USB extenders also exist.

Serial doesn’t go much further. I recommend RS232 or RS485 which can reach up to 100 meters. There’s also a module: Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics

If you go direct serial, yes, you need 10 serial ports on the computer. If you go via USB, virtual serial ports will be created on the computer, but then use Basic(1), not Basic2.

1wire can reach long distances, but you’ll need a master Croduino near the computer to decode everything.

I2C or IIC is the protocol for RTC.

For every method other than serial you’ll need some master device to decode it all and send serially to the computer.

I don’t think you’ll be able to read and write to CSV file simultaneously. You can if you optimize the code to have a write process then a read process, but that’s getting more complex.

Since data.sparkfun.com is hosted on Amazon’s CDN, I believe you’ll never catch it not working. Maybe you didn’t enter https.

Now I understand the concept. Why not go with wireless connection to a master? NOVA with WiFi? NRFos on 2.4GHz? RF on 433MHz? All depends on the speed you want and distances. Then you can connect the master to your LAN network, etc.

Compass shows which direction its “digital needle” points. Identical to a regular compass.

Accelerometer detects forces acting on it. You don’t need that then - you’ll use a gyroscope which determines orientation in three directions (identical to components in smartphones).

Regarding the complete application, I wouldn’t presume to get involved since you know the final application and implementation better. After all, I don’t understand the mechanics that well - I’m just a regular hardware guy with the necessary software that goes with all these components.

That’s right, any 5V power will work fine. From computer, phone charger, solar cells - you name it.

Updated quote attached.

Original message (Croatian)

Nisam testirao, ali iz dokumentacije vjerujem da to nije slučaj. Spaja se na treći sustav izolirano od atmosfere i mjeri tlak u to nekom trećem, zatvorenom, sustavu. Taj senzor, s linka s eBaya, moguće je lako spojiti na Arduino budući da daje izlaz 0 - 4.7V. Preciznost neće biti velika bez dodatnih vanjskih uređaja jer je analogni pin na Arduino 10-bitni, što znači da će Arduino mjeriti u koracima od približno 0.5kPa. Da, L profili bi također mogli smetati. Treba odabrati senzor sa što manjih kutem. Ovisi o hall senzoru. Preporučam testirati magnet i hall effect. Ne znam ni za motore, opet ovisi o hall senzoru. Definitivno treba testirati. Plovak na silku ili nekoj drugoj niti. Ako je na šipci, onda nemetalna. Moguće je. Trebate isplanirati što na koji pin i kako iskoristiti pinove kako bi svaki senzor i uređaj bio pravilno povezan. Vjerujem da ćete imati dovoljno pinova za to. Serijskom vezom na računalo možete vrlo jednostavno. Računao sam da ćete spajati preko USBa, a ne direktno serijski. Preko USB-a možete do 5 metara(ali provjerite ovo, nisam 100% siguran). Postoje i USB extenderi. Serijski vjerujem ne mnogo više. Preporučam da koristite RS232 ili RS485 s kojime možete i do 100 metara. Ima i modul: Soldered: Open-Source Electronics, Boards, Sensors & Modules – Soldered Electronics Ako idete direktno serijski, da, trebate 10 serijskih portova na računalu. Ako idete preko USBa, na računalu će se kreirati virtualni serijski portovi, ali onda koristite Basic(1), ne Basic2. 1wire može na velike udaljenosti, ali trebate ćete master Croduino blizu računala koji će sve to dekodirati. I2C ili IIC je protokol za RTC. Za svaki način osim serijskog ćete trebati neki master device koji će to sve dekodirati i slati serijski na računalo. Mislim da nećete istovremeno moći čitati i pisati u CSV fajl. Možete ako optimizirate kod da imate proces pisanja pa proces čitanja, ali to je već malo kompleksnije. Budući da je (https://data.sparkfun.com) hostan na Amazonom CDN-u vjerujem da ga nikada nećete uloviti da ne radi. Možda niste unjeli https. Sad razumijem koncept zapravo. Zašto ne idete onda na bežićnu konekciju na neki master? NOVA s WiFijem? NRFovi na 2.4GHz? RF na 433MHz? Sve ovisi o brzini koju želite i udaljenostima. Master onda možete povezivati na LAN mrežu itditditd. Kompas pokazuje na koju stranu je okrenuta njegova “digitalna igla”. Identično kao i običan kompas. Akcelerometar detektira sile koje djeluju na njega. To Vama onda ne treba, nego ćete koristiti žiroskop koji određuje orijentaciju u tri smjera(identične komponente onima koje se nalaze u smartphoneu). Što se tiče kompletne primjene, ne bih si davao za pravo ulaziti u to budući da bolje poznajete konačnu primjenu i realizaciju. Na kraju krajeva, ne razumijem previše ni mehaniku, ja sam Vam običan hardveraš uz onaj nužni software koji treba uz sve te komponente. Tako je, bilokakvo 5V napajanje će biti u redu. S računala, punjača mobitela, solarne ćelije - you name it.

Attachment omitted in migration: PONUDA_38_Brodogradilište_Cres_d.d._.pdf