yes the concept outline as it stands is fairly crude and will need improvements such as conformation messages and priority handling not to mention the potential for multiple simultaneous incoming requests, message integrity checking and exception handling. But I think that it might be an idea to make this a fairly rigid one way system to start with to try and show that the individual parts for this project can perform in the capacity required and if not I will have to engineer a part that can.
I think that you’re defiantly right about upgrading to the mega or possibly the due though I’ll need to look more into that. though even with that I am considering using the micro-SD card on the Ethernet board to act as a buffer to handle incoming packets so that when a packet comes in the first thing the arduino does is it writes it straight to the SD card and only loads them when it’s ready to handle them.
with regards to the number of texts being sent I’m toying with a few ways to reduce the number required though the idea of this was to use a vast number of them anyway with an unlimited contract that gives you a silly amount to play with.
Edit:
ok so here are a few ideas I’m looking at mainly to reduce the load on the arduino and the SMS system I’m looking for some feedback on them such as have you seen them implemented before, is there a better way that you know etc.
Using a predefined reference list stored on the SD card to abbreviate commands and list references.
This idea was born from the idea of writing my own library for this project (which I might still do) except instead of defining new functions the reference list would be used to either clump or abbreviate existing functions under a single heading. The same concept could be used to convert device name references into ip addresses and mac codes. This idea won’t lower the data being sent massively but will reduce the amount of miscellaneous data being sent.
Using an SD card as a buffer
I mentioned this before but I’m considering using an SD/micro-SD card to store data until the arduino can handle it.
Prioritization
This is something that I think is going to be essential to this project succeeding without a priority based management system data will inevitably build up on whatever side of the arduino is referenced second in the code because it will be servicing the first instance in addition to this I think that it may be an idea to attach a device priority to the system so that if a device has allot of data waiting to be sent or is waiting for allot of data it is reflected in the actions of the other as well.
Implementing a dedicated real time clock system
The reason for this is that I plan on implementing a time out on messages based on when they are sent this is because the SMS system isn’t the most reliable and sometimes messages are delayed or are lost completely.
Anyway if a resend message were delayed it could result I packets being resent that aren’t needed or a reference to data that doesn’t exist that could conflict with exception handlers and integrity checking. So to help ensure the reliability and accuracy of the timeout features I will need accurate clocks on each unit.
I’ve also been doing some reading on connecting using the Ethernet shield, well network protocol in general and I reckon that I can make this work it might take some more work than I had anticipated but when has a project ever run smoothly. I’ll give an update on this later however I’m quite busy this week so discussion I can do in my free time but I’m unlikely to get much actual testing done.
Edit: 19/6/13
While I am fairly sure that this topic is dead at this point for anyone who still has an interest in following my progress I have produced most of the documentation relating to the bridging protocol, I am contemplating writing this into a library so that I can call upon functions that I can later refine and rework as necessary and not need to update all the related code in my sketches.
The next step is to work out how to get the Ethernet shield to handle the incoming data, this is going to require a greater examination of the relevant data sheets and libraries to determine what needs to be done. If anyone is familiar with this I would appreciate any assistance. at this point I am confident that this is possible.
If anyone is interested in seeing my work thus far feel free to ask.