Hello! I have been trying to set up a serial connection via the rx/tx ports of an arduino and a cr1000 but I haven't been able to make the message understandable by the Cr1000. Basically I just need to make the arduino send 2 numerical values (air temperature and relative humidity) to the CR1000 and then add them to a table with values from other sensors connected directly to the CR1000. I searched in the forum but only found this thread: https://www.campbellsci.com/forum/messages.cfm?threadid=00210E65-48D6-43C5-8082656A2BA0071C . In there is a little explanation for the CR1000 side, but I have no clue of how it's the arduino supposed to format the serial message it sends. I really don't care if the value it's sent as a number or a string, as long as the CR1000 can understand it and transform it into a numerical value. Can anyone help me with this?
Also, I would like to know if it's possible to connect a cheap AM2301 sensor (which is actually just a DHT21 in a enclosure) directly to a CR1000 (now it's connected to an arduino). I have read the data sheet (http://mon.dubna.tk/files/AM2301.pdf) but I really don't understand how can I make the CR1000 communicate with the sensor.
Thanks a lot for your help!
Best regards from Chile,
Andrés
Well, it was pretty simple really. If anyone is interested in doing this here is how:
Hardware:
Arduino TX to CR1000 RX
Arduino RX to CR1000 TX
Arduino GND to CR1000 GND
Te baudrate should be the same in both.
Code:
Arduino:
You can use Serial.print() and send the data as a string. If no USB cable is connected, the data will automatically be sent through the Arduino's TX port.
CR1000:
a little example
BeginProg
SerialOpen (Com4,115200,19,0,1024) 'Initialize the COMPORT
SerialFlush(Com4)
Scan(2,sec,1,0)
SerialIn(variable,Com4,200,-1,25)
NextScan
EndProg
You can use SplitStr() to split the data received ("variable" in this case) into multiple table outputs.It's really easy and well explained in the help file.
Hope it helps someone!
Greetings.
Dear ASant,
I have similar problem. Because Vaisala WAV151, wind direction sensor, is 6-bit GRAY-code and is not possible to connect to CR800 I connected it to Arduino by my primitive code and it is working. Although to Adruino I connected Vaisala WAA151, wind speed sensor, and it is working too. My problem in this step is how to send both readings from Arduino to CR800 COM1. Next problem will be how to implement that readings in CR800 in code for RSR2. I will be very grateful to you if you can help me by private message.
Thanks in advance.
Best regards,
* Last updated by: Adi on 11/13/2015 @ 3:02 AM *
ASant
You know something about grab weather parameters to other webserver (not rtmc) to show up the info?
Thanks!
Maurixio
PLX-DAQ
Asant,
Thank you for the example code! This worked beautifully for me! The biggest challenge was determining the correct buffer size and timeout length to use. Once I increased my timeout from 200 msec to 500 msec, and allocated 2n + 1 bytes for a buffer, where n = the number of bytes being sent from the arduino to the CR1000 Rx line, the output string within PC400 matched the Arduino IDE serial monitor perfectly.
Thanks again,
Philip
Adi
There is a routine to read vaisala parameters with arduino?
Dear Adi,
How did you finally make out with your work adding devices to the RSR2 program? Any information you can provide would be greatly appreciated so I don't have to reinvent what you've already accomplished.
I will be very thankful if you can share what you've accomplished.
I'm working on my senior project at the NED University of Engineering and Technology in Karachi, Pakistan. It is our responsibility to create a data acquisition card that will gather the data and transmit it to the cloud platform. Data from the Campbell CS215, NRG 40H anemometer, NRG 200, and Campbell CS100 must be retrieved from the Campbell Scientific data logger CR-1000, which also served as a storage device for other instruments.
Our attempt to retrieve the data using an Arduino Mega and MAX3232 to RS232 converter has been unsuccessful. With respect to this, I have the following queries:
1. Which method of communication is being employed? Is it possible to do it using MODBUS TCP or MODBUS RTU?
2. What are the register addresses and where are sensor values typically stored?
3. How can a command be sent to the Data Logger using Arduino (using MODBUS or another Library) to inform it of the
password, after which we can retrieve the data.
And what kind of password is necessary to complete the task? either Level 1 or Level 2 or Level 3
If you have any documents with register addresses, please provide them.
Please assist me in solving this issue.
If the hints in this thread aren't enough, maybe try https://s.campbellsci.com/documents/us/manuals/cr1000.pdf ?