Hi guys. Thanks in advance for your attention and time.
I am pretty new to campbell devices and we are now using CR1000 to collect the information about the temperature of soil. We have deployed three CR1000, each of which is connected to lots of sensors. Now, we have also built up a LTE access point to upload data to the cloud. The access point is with oen of the datalogger CR1000 (named as A), while B and C are wirelessly connected via WiFi network.
One problem in our case, is that the LTE service is not very stable. Therefore, we plan to gather all the data acquired (by A, B and C), to A via WiFi service, and upload them to the cloud daily via LTE.
It turns out that the proposed plan can be realized by ParkBus data consolidation. I've read an article in the following link
https://www.campbellsci.ca/blog/many-possibilities-of-pakbus-networking
It is pretty clear that the data consolidation can be done by following the steps in the link above. However, in our case, we cannot 'wire the transmit terminals to the receive terminals on the other datalogger as shown in the image below' as mentioned in the article since our dataloggers are physically isolated, and connected via WiFi.
I'm just wondering, what modification should be done to change the physical wiring into wireless connected multiple dataloggers?
Thank you so much!
You don't need to physically wire them together. The dataloggers can use Pakbus communication over the Wifi connection. It sounds like you have that connection already figured out.
You just need to work on adding GetDataRecord() to the program in datalogger A. You essentially need to copy the data table declarations from the other datalogger and use GetDataRecord() in place of CallTable() for those tables. I recommend using a negative number for the MaxRecords parameter of GetDataRecord() (ex. -1 or -5). The from oldest record works better than from newest record.
The help for GetDataRecord() explains what to do if over a TCP connection like Wifi.
Thanks Jacob! Can I edit the program using ShortCut? Or CRBasic Programming is necessary?
Also, is this function also possible with Modbus?
Actually I have got some other questions, too.
1. Can I schedule a transmission from B/C to A in an arbitrary way? For example, I would like B/C to transmit to A during 4;00AM to 5:00AM.
2. Can I schedule an upload from A to cloud in a similar way?
3. The reason for the above two qustions is due to our power constraint. When the network status is not stable, the searching and connection process consumes lots of power. As our dataloggers and network peripherals (NL241 for most of them) are powered by battery and solar cells, this is really problematic (One of our datalogger was out of power last year). We would like to set our NL241 in standby status for most of the time, and client mode only during network non-peak hours, to save the power. For all these operations, is it necessary for us to program in CRBasic?
4. Where could I find some programming examples? Our field travel is within September and I need to get it done soon. I guess the best way is to program according to a reference.
Thanks a lot!
Sean