Large logging project

Hi, I have a project underway that will log some pulses from a switch.

Requirements! * Be able to log 1-5 times per second on a switch that is at LEAST 10 ms ON. * Log the time when the pulse comes in with a clock RTC. * Be able to save it in a memory until the data is transferred to a computer. * Be able to log while it moves over the information to PC. * Going on a wireless network. If I have read right, you can relax xBee ihopp themselves and send data between each type. Switches-> ARDUINO-> xBee-> xBee-> xBee-> ARDUINO-> PC. * Option is common wireless network.

  • The system will be up to 100 log modules.

Does this resolve and, if so how do I do?

Does this resolve and, if so how do I do?

If you mean "is this project possible", then the answer is probably.

  • Be able to log 1-5 times per second on a switch that is at LEAST 10 ms ON.

That's a fairly short on time. May need to use an interrupt to catch that.

  • Log the time when the pulse comes in with a clock RTC.

No problem. You have 6 bytes of data per event (month, day, year, hour, minute, second), with no more than 5 events per second. You, therefore, have a maximum of 30 bytes per second.

  • Be able to save it in a memory until the data is transferred to a computer.

As opposed to saving it where?

If I have read right, you can relax xBee ihopp themselves

Relax? ihopp? Sounds like a pancake place.

  • The system will be up to 100 log modules.

That will be a problem for the PC to deal with. One XBee at the PC end may (probably will) not be sufficient to prevent two senders from sending at the same time.

Haha, sorry. I thought translate.google.com managed to translate it right.

"If I have read right, You Can Relax xBee ihopp Them Selves"

Would be: If I read correctly, you can connect with other Xbee Xbee to create a network.

I've been thinking a bit on this to solve the several modules problem. It is that the PC goes down and ask all the modules of information one by one.

If I can put it in 1 second, it would be better then? 5 seconds is desirable but minimum one second. I would like to have the RTC that it is capable of milliseconds.

It is that the PC goes down and ask all the modules of information one by one.

Yes, that would solve the garbled data problem. Each node would need a unique it, and would need to ignore all requests for information that were not for itself.

If I can put it in 1 second, it would be better then? 5 seconds is desirable but minimum one second.

Each Arduino/XBee needs to send no more than 30 bytes per second. It needs to receive and discard n-1 of n requests for information in that same second.

I would like to have the RTC that it is capable of milliseconds.

The RTC is. Whether the RTC will give it's millisecond value, or not, depends on the RTC and how you access it (which library).

If I read correctly, you can connect with other Xbee Xbee to create a network.

Series 2/2.5 modules can form a mesh network.

No problem. You have 6 bytes of data per event (month, day, year, hour, minute, second), with no more than 5 events per second. You, therefore, have a maximum of 30 bytes per second.

Don't forget that you really don't have to log all of this data every time the switch closes, certainly not the year and the month and probably not the day.

Don

I have to store the data on an SD card if communication fails in a few days for a module. So I must have the date with milliseconds.

At worst, it must log 86 400 records in one day of ONE module. eg.

2011-01-01 12:00:12:1234 2011-01-01 12:00:15:5400 2011-01-01 12:00:18:2456 2011-01-01 12:00:22:4215

So the module and the network must be able to handle days of information.

You have got an intelligent device between the switches and the storage media. The Arduino can remember the last date that it sent to storage and only transmit the date part of the information when it changes. The trade off is that the interpretation of the data that is stored on the SD card will be a little more complex, but you will have another intelligent device (the PC) to deal with that.

I guess a person approaches things differently when they learn how to program on a device with 256 bytes of memory. That's the total for the program code and the data and there's no prefix before 'bytes'.

Don

I was going to have two Arduino and two memory cards. One card logs and the other sends. When it receives a pulse to read the data i switch to write to the second memory card. The sender module reads what is written and sends the data to PC and then empty the memory card. And then replace the card only when the next reading will take place.

This should go pretty fast switching between two memory cards? If I have the requirement that the signal from the switch must be ON 100ms. The program should run around 10ms?