Forum Replies Created
-
AuthorPosts
-
@ldecicco congrats on trying the platformio – it has a lot of professional capability, but like anything – getting in a fancy plane(!) there are lots of bells and whistles that can go off.
For “new” libs there are at least two ways to work with them, a) put the full path to them under libdeps
I find a https://github.com/arduino-libraries/ArduinoMqttClient
and in the platformio.ini
12lib_deps =https://github.com/arduino-libraries/ArduinoMqttClientThis pulls into your directory under .pio\libdeps\mayfly
b) clone to directory <lib> – that is go to the directory lib and run
git clone git@github.com:arduino-libraries/ArduinoMqttClient.git
Check that its been installed correctly and builds OK. Also then need to make sure its also not specified in platformio.ini as it will also be pulled in to .pio\libdeps\mayfly and compile there instead.
To be able to modify a lib, there are a couple more stages – assuming you have a github account, first on github fork the lib, then clone it into the local lib directory. Check that its building ok from that directory. Then make modifications, finally “git push” back to your forked repo.
For a number of examples, you could look at my forks in
https://github.com/neilh10/ModularSensors/tree/release1/examples/tu_xx01 – and say how I manage TinyGSM – the amazing AT interface lib ~ see
https://github.com/neilh10/TinyGSM.git<span class=”pl-c”>#rel1 ;Bug fixes over Envirodiy</span>
It is very powerful, however does require a lot of learning by doing and also checking out other examples.
It does also require following how git works – for instance on a repo fork I try and add to a different “branch” than what the source uses. so envirodiy specifies “master”, but I create and add to “release1”, and then in the repo make that the source branch.
To understand git, I prefer the cmd line interface, as I don’t quite trust what the gui github client to tell me what its doing. I do use the vsc git for looking at differences. I often make small changes, say in a comment, just to test out how it works, and verify that its getting to the online repo correctly. I keep a “<project>-diary.docx” of what I’ve done that works. Its pretty amazing, however it can take some curating to know the sequences to make it work.
Hope that works for you
The other side of failure is looking at how to design for system stability.
Some components may appear to fail, like modems. However the software of course needs to be robust enough to handle network conditions.
A way of thinking about it is the “7 Layer OSI stack” and transmission reliability is attributed to Network Layer, or layer 3 https://en.wikipedia.org/wiki/OSI_model
@sofija if you start a topic, perhaps describing what sensors you think you want, and some of the sensing goals, then it would be easier to provide some insights. My first board I used was from a Dutch company, the hardware availability isn’t a good place to discuss this. It could be in https://www.envirodiy.org/forum/infrastructure-and-equipment/
Hello Mary, gosh you may have to provide more detail of what you are thinking you are doing. The tipping bucket is typically a pulse count – it needs to translate the mechanical tipping bucket to an electronic pulse. So you may want to reference this in more detail.
There is this , never tried it . .. https://github.com/EnviroDIY/TippingBucketRainCounter
Hi Cal, great to hear you’ve got your problem solved.
Believe me that is part of the process, learning how the libs go together. They can be amazing to pull in, – but its part of the programming paradigm of how to reference and track them.
Sometimes better to post a new thread when asking a question, and for programming its getting the focus on the right level of detail to be able to get thoughts on what is causing an issue.
Hi Cal, its good if you could include the compile errors, even perhaps as an attachment. In your current form you are making anybody wanting to help do a lot more work.
As you are posting in this old thread on Yosemite-library I’m guessing its something to do with that.
I had a similar problem with Yosemitech Lib described here- https://github.com/EnviroDIY/YosemitechModbus/issues/32 I think its an AnthonyA issue with the Yosemitech Lib not being labeled.
If it is about Yosemitech Lib issue, you might trying pull from the (master) and I don’t think its an issue there, as it references an earlier Yosemitech Lib
While browsing something else, I came across this ISCO 3700 references – no idea if its workable
https://github.com/EnviroDIY/Trigger
https://github.com/EnviroDIY/Trigger/tree/master/hardware/ISCO-Mayfly-Trigger
@khaase great to hear – do you have a pn for the cap – be interested see what the internal ESR is.
Seems to me a way to monitor the battery for maximum life is to read the voltage unloaded, and then again when it is loaded. The capacitor moderates the voltage reading, but still droops. So it would be how much droop (lack of charging from high impedance battery) can tell you something, and how much accuracy do you need from the ADC to be able to effectively detect a significant droop.
BTW here are some observation on the battery voltage measurement.
https://github.com/EnviroDIY/EnviroDIY_Mayfly_Logger/issues/36 ~ I implemented an algorithm to reduce the noise.
https://github.com/EnviroDIY/EnviroDIY_Mayfly_Logger/issues/32 ~ discussion across different Mayfly versions
and if you have anything to add to this https://github.com/EnviroDIY/EnviroDIY_Mayfly_Logger/issues/29
Some real world, with two monitoring sources, one a resistor divider to 12bit ADC, and the other the internal method, https://monitormywatershed.org/sites/TUCA-Na13/ –
https://monitormywatershed.org/tsv/TUCA_PO03/ – battery V with inter Vbat and external STC3100 to read battery V & Est battery capacity – however turns out to be hard problem to calculate
@vogelrnws I had been looking at porting it to another processor and been using it and digging into the code. I’ve looked at some of the RP2040, but I’m cautious about its ability to go into low power – but haven’t looked at it in depth.
The SDI-12 lib uses a software based UART – running at 1200Baud, so 1200Baud is pretty slow and it does handle it. It needs to have a timer generated to be able to look for the changes in the data stream.
Unfortunately, IMHO, I’ve found it to be quite fragile. Also the software timing has made debugging fragile. In 2021 I had also found it worked with some Insitu LT500 sensors and not others. I tried to put a “test station” together, against a traceable SDI-12 test setup using https://www.vegetronix.com/Products/SDI-12 and it failed on the basic physical test.
So I’m thinking about how to 1) +5V buffer possibly this solution https://github.com/EnviroDIY/Arduino-SDI-12/issues/87
2) hardware timing. Possibly emulate the UART with with either DMA or Timer/Capture.
So maybe the hardware interface could be done with a simple 4 wire Seeed plugin with an off-board buffer and boost to +12V, and software modified.
So just IMHO a heads up on some of the possible issues to consider.
@hannahlb if I understand you – you have 4 geographically distributed ISCO samplers (say more than 100m apart) and you would like to trigger them when a threshold is exceeded from a Solinst level sensor. The trigger would be communicated via messages on the telemetry NB-iot?
Probably the best way to think about it is in stages
1) figure if this can be just done from one controller – both Solinst and ISCO
2) Then when you have got it working with one controller, can you communicate that through an mqtt message over NBIot to a remote server
3) then have the three or four other remotes subscribe through mqtt NB Iot to the notification.
While this could be sketched on a whiteboard quite easily – ModularSensors only does north bound (one way into the cloud) comms through an mqtt host.
However, looking at the ISCO 6712 manual, the issue may be how to trigger the ISCO 6712 to start. If there is an external connection it could work. Or program it to run just once when powered up – and then manage the power application as the trigger. Another way might be to stimulate an SDI-12 instrument – create a dummy instrument as a trigger method. All of it is probably a lot of software work, which can take a lot of time and also trial and error having extra equipment.
-
AuthorPosts