Thanks for reading this! I have been working on this for a few months and would like any kind of guidance or advice.
Background:
I am trying to develop a simple control system that will turn on a humidifier when there is low %humidity detected in a room. A Campbell CR1000 Data logger is collecting humidity data in the room continuously. I need some way for the serial coms on this data logger to send information to my Arduino within the humidifier. Developing the humidifier with relays has been easy, the wireless communication, not so much.
Parts:
2 – Xbee 1mW Series 1
1 – Dfrobot relay shield and xbee socket
1 – Voltage regulator for the xbee
Conveniently, there is a 5V port on the data logger that allows me to just power the xbee. Just for fun, I have the data logger send an ASCI character every second to the TX and RX pots that I have my Xbee hooked up to. I set both the coordinator and router to AT mode because I want it to act as a “wire” between the two. Even when I know there is data being sent from the data logger com port, I cannot see any lights on the xbee registering a receiving signal
I tried to hook up the Arduino directly to the TX and RX of the data logger to determine what kind of information I was seeing, but I only got garbage. I read online that the Arduino does not allow for external serial to communicate like this. Is this correct? Is there a workaround for this?
Questions.
Is this the appropriate programing mode for the Xbees? Can you direct me to a better guide on programming and pin-setup?
Can a single Xbee, on the voltage regulator, accept ASCI characters and transfer them to another XBEE or is there some preprocessing that needs to be done?
Is there a simpler way to do this?
I really appreciate any help or advice that you can give.
I set both the coordinator and router to AT mode because I want it to act as a “wire” between the two.
Coordinator and router are terms that make sense in a network sense. Series 2 models are mesh network models.
They are not terms that make sense in a point-to-point mode, which is what the Series 1 models are.
Exactly what have you condifured on the XBees? What values do PAN ID, MY, and DL have on each XBee?
I tried to hook up the Arduino directly to the TX and RX of the data logger to determine what kind of information I was seeing, but I only got garbage.
Only got garbage where? If you mean on the Serial Monitor, then that is not too surprising. The serial port is meant to talk to ONE device, either the data logger OR the PC. Not both.
It is possible for that to work, but it sounds like the Arduino and PC are communicating at a rate that is not compatible with the rate that the Arduino and data logger are communicating at.
Is this the appropriate programing mode for the Xbees?
Is what an appropriate programming mode?
Can you direct me to a better guide on programming and pin-setup?
Can you help be find a bigger house? Don't you need to know what size house I have now?
Can a single Xbee, on the voltage regulator, accept ASCI characters and transfer them to another XBEE
Of course. Of course, there is an assumption there, that the data logger is outputting ASCII data, that may not be valid.
I apologies I am using a WRL-10421 - XBee Pro 63mW Wire Antenna - Series 2B from Sparkfun for this. I currently have the following set up on each Xbee
Exactly what have you condifured on the XBees? What values do PAN ID, MY, and DL have on each XBee?
Router
Modem XB24-ZB
Function Set - AT Mode Router
PanID-1221
JV-enabled
DH-0
DL-0
Baud rate set - 115200
Remainder left as default settings
Coordinator
Modem XB24-ZB
Function Set - AT Mode Coordinator
PanID-1221
DH-0
DL-FFFF
Baud rate set - 115200
Remainder left as default settings
It is possible for that to work, but it sounds like the Arduino and PC are communicating at a rate that is not compatible with the rate that the Arduino and data logger are communicating at.
The Data logger has an 115200 baud rate. I have set the Xbees and the Arduino to operate at this rate. As long as the communication rates are the same that shouldn’t be the problem… I hope.
The last way that I thought to try the communication was to completely remove the Arduino and use just the xbees. One Xbee hooked up to the serial com of the data logger and the other connected to my computer with an explorer breakout board. I can monitor the terminal traffic through the X-CTU software. When I open the terminal within the X-CTU software and try to see if there is any data being transmitted, I only receive a ‘0’ randomly. This is what I called Garbage. I know that ASCII data is being sent to the com terminals of the data logger because I can sniff the pot and see it in the terminal. Could this be a problem between the reference logical 1 of the Xbee and the datalogger? For example, the logical 1 in the datalogger is 3.3 volts while the Xbee is 5v?
Is what an appropriate programming mode?
The AT function set of the Xbees.
Pardon my ignorance, but I have not had much interface with serial communication. Thanks for the help!