First this might belong in the open hardware portion of this form. But since I am dealing with the classic for the most part I am starting here.
I have an application where I need to remotely monitor the solar/battery system. The facility is an off grid communications building, however this is the test bed for this concept. The eventual plan with be to have a private IP MW between this facility and other mountain top communication buildings, but that build out will be slow. two sites 60 miles apart take 4-6 hours to drive so doing setup and path alignment is very time consuming. Multiple this by 4-5 MW paths that is a lot of work.
In the meantime I need to come up with a solution that even when I don't have access to the privet IP I can still check status online. I do host an APRS digipeater which has been online a since the solar instillation. APRS is very low speed (1200 baud) packet radio. The primary use is ham radio mobile stations periodically broadcasting their location. The Digipeaters then repeat this for other station to receive and display on a map (old school) or for Igates which then dump the data online fore servers like aprs.fi or aprsdriect.com to display. Part of the APRS functionality is also telemetry. Where as information such as battery voltage, temp, Ah etc, can also be sent as part of the station data. This would then allow me to monitor the solar system remotely.
This is basic APRS telemetry format (yes I cut and paste this):
APRS TELEMETRY FORMAT: The on-air packet telemetry format is as follows:
T#sss,111,222,333,444,555,xxxxxxxx where sss is the serial number
followed by the five 3 digit analog
values and the eight binary values.
Each telemetry value is actually a decimal number between 000 and 255. The user can adjust his sensors to meaningful values, or the telemetry equations can be modified on receipt. Usually just a a simple 10k and 2.4k resistor divider is used on channel 1 to give you battery voltage in tenths. So a reading of 138 would mean 13.8 volts. It is easy to make APRS display any other quadratic telemetry equation too. See following sections.
ArgentData System makes several Terminal Node Controller (TNC's) that function as part of the digipeater. Specifically the T3-Mini has two serial ports and multiple analog and digital I/O to interface with.
But here is where I am hung up I would like to leverage the IP connectivity on the classics. I could certainly connect to the MODBUS with a RS-232 interface to an arduino and then serialWrite this to the TNC. This creates a couple issues, the DC powerplants are usually not located near the radios and it would require more wiring (albeit not much).
I do have IP switches all all of my facilities'. I am increasingly utilizing IP for Radio linking (ROIP), Site monitoring, Video, remote control and signaling. with the IP MW that I am starting to build out I will be replacing individual RF links with IP links.
So here is the question. would it be possible to have a classic (with a fixed IP) attached to a network, and have a device such as an arduino with and ethernet shield be able to parse the classic for specific information (battery voltage, SOC, Ah, etc). then either convert this to a value between 0-255 for a digital input or even write it to the TNC through a serial port (with a level shifter) for the TNC to then use as telemetry data?
I have read most of the posts regarding interfacing the MODBUS to an Arduino and using the Arduion with an ethernet shield as a server. These seem to indicate this should be feasible. However I want the arduino to parse data (via IP) and either map it as either a digital or analog value on the Arduino pins with are then read by the Argentdata T3 or via serial com.
I have a couple ideas of where to begin but I would like some feed back first.
Also with the the Classics IP port being parsed every so often with it still be possible to log into the Classics with a computer running the monitoring software on the same network.
Disclaimer.... I am by no means a programmer, I still use Elmers glue for cut and paste and bang away at the keyboard until it works or it doesn't. so bear with me as i muddle my way into this project.
Jim
Jim,
Take a look at the Homebrew software section of the forums.
Look in both the general and Raspberry Pi sections.
Graham and Matt have done a lot of work on interfacing to the Classic using Esp32 and Raspberry Pi in MQTT form.
Once the data is in a Pi in MQTT you can use node red or other ways to do with the data what you want.
Matt has a remote station he monitors uses a cellphone network but it gives him total control of the Classic.
http://midniteftp.com/forum/index.php?topic=4849.0
https://github.com/ClassicDIY
Larry
Quotewould it be possible to have a classic (with a fixed IP) attached to a network, and have a device such as an arduino with and ethernet shield be able to parse the classic for specific information (battery voltage, SOC, Ah, etc). then either convert this to a value between 0-255 for a digital input or even write it to the TNC through a serial port (with a level shifter) for the TNC to then use as telemetry data?
The answer is yes. With an ESP32, you can connect to a WiFi network and access port 502 on the Classic and get just about any data you need, then convert it in any manner you see fit. If you need to actually use a wired ethernet connection, I would use a Raspberry Pi with an ethernet port and use the software I wrote to poll the Classic and push the data to the MQTT service. It would be a simple matter to then periodically get the data you seek and convert it and send it out the TNC. In fact, I think there is Pi software to interface to the TNC that already exists.
Matt
Thanks for this information!