The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

[Senior Design] - Need help understanding what pachube and ioBridge are

CantidoCantido Registered User regular
After five long years of AFROTC and Computer Engineering, I have reached Senior Design. We are going to make software for a preexisting air conditioner (I will refer to it as HVAC for short) that will allow it to connect to the internet, upload its stats to a database, and later make a smart phone application so that users can control the air conditioner from their phone, as well as check temperature and such.

Luckily, I have web programming experience in HTML, CSS and PHP, so when the client completely outsourced all hardware and asked us to make all this, I am now the tech lead because I have the most experience, even though that was five years ago.

The problem is this. The client's subcontractor recommended such services as pachube.com and iobridge.com. After setting up accounts for both sites and checking their overviews, I have no idea what the fuck I am looking at.

My experience with web programming is making basic web pages with HTML and CSS, making databases with MySQL, and adding PHP to HTML pages to allow interaction with those databases. What is the point of these services and how do I apply them to such a project?

I'll answer any questions if it helps. Also, because the hardware was outsourced from us, our project is now 100% software. We no longer have to worry about connecting a device to all this stuff, but still we need to make something we can hand over to the client. For example, we will be making a plain HTML website to access any database and control the imaginary device for initial testing, we will have to make our own simulated HVAC program that can post to the database and take commands from the web based control system, and then we would move on to making the smart phone app doing the same thing.

Does anyone have suggestions about learning how to use these services? Should we be using them at all?

3DS Friendcode 5413-1311-3767
Cantido on

Posts

  • ecco the dolphinecco the dolphin Registered User regular
    Hmmm

    pachube.com looks like a "twitter" for appliances. Their quick start API page shows how to update your appliance's feed (I guess it's related to your "feed id"?), and how to fetch it back again, presumably through HTTP?

    A quick dig through iobridge.com doesn't seem to reveal anything similar, but maybe I didn't dig deep enough... or greedily enough. I'm guessing that iobridge is just like pachube, in that your appliance will update its own feed, and your app will fetch it and do something with that information.

    I haven't got any experience in the appliance and "Internet of Things" concepts that they're throwing around, so I can't really give an informed opinion of whether it's a great/poor idea.

    It does seem sensible from the perspective of general development - i.e. instead of reinventing a protocol to get data to/from the appliance itself, the hardware guys will have it automatically talk to pachube/iobridge, and you just interface to pachube/iobridge.

    Penny Arcade Developers at PADev.net.
  • CantidoCantido Registered User regular
    Does hardware, such as an air conditioner, with the capacity for the ZigBee protocol, even need something special like this? The hardware redesigner is specifically giving the air conditioner ZigBee, and if ZigBee means it can connect the internet and post/query a MySQL database I make, then I don't even need whatever ioBridge is selling. I could make a MySQL database from scratch!

    3DS Friendcode 5413-1311-3767
  • Jimmy KingJimmy King Registered User regular
    I got the impression that IoBridge and Pachube were providing the entire back end as SaaS, so they configure and maintain all of the servers, back end code, etc. Unfortunately commercial software dev tends to involve a lot of figuring out how to use some other person's work and offload labor (and possibly responsibility for problems) onto some other company... offload long term labor and maintenance, responsibility for down time, etc.

  • ecco the dolphinecco the dolphin Registered User regular
    edited November 2011
    Cantido wrote:
    Does hardware, such as an air conditioner, with the capacity for the ZigBee protocol, even need something special like this? The hardware redesigner is specifically giving the air conditioner ZigBee, and if ZigBee means it can connect the internet and post/query a MySQL database I make, then I don't even need whatever ioBridge is selling.

    I'm not sure that ZigBee is that advanced - while it does go pretty high up the OSI layers, I'm not sure that they'd define a SQL interface to it.
    Cantido wrote:
    I could make a MySQL database from scratch!

    You ... could... but are you also going to be maintaining it for a long time, or would you prefer it to be delegated off? Rather, let me put it this way:

    Is your client capable of maintaining a database with the desired up-time and reliability, or is it a better idea to pay someone else to do that?

    Like Jimmy King says, part of development is figuring out how to best spend your time - would it be best if you spent your time developing the app, or do you have enough time to also maintain a database?

    Probably spare a thought for what happens after the project ends, if you do get the client to maintain their own server: How do the database maintenance duties transfer once you've gone? Is it going to end up being one of those servers that everyone is afraid of rebooting, because it's become mission critical, and no one knows how to properly restart it?

    Obviously, you know the client better than us, so if they've already got a dedicated database administrator, maybe this is not a problem.

    ecco the dolphin on
    Penny Arcade Developers at PADev.net.
  • GnomeTankGnomeTank What the what? Portland, OregonRegistered User regular
    Just to second (third?) what Ecco and Jimmy are saying: You use a service like ioBridge or pachube because they have things like uptime guarantees and maintenance staff. It also makes your life crazy simple, as you send to the stream from the HVAC unit, and you pull from the stream in your mobile device, all using some sort of web service interface (most likely SOAP or RESTful). Going the other way (for control commands) is just as easy.

    Given how reliable a client is going to want something like this to be, using SaaS from a solid provider is probably a really good idea, unless said client wants to invest in the infrastructure to support it themselves.

    Sagroth wrote: »
    Oh c'mon FyreWulff, no one's gonna pay to visit Uranus.
    Steam: Brainling, XBL / PSN: GnomeTank, NintendoID: Brainling, FF14: Zillius Rosh SFV: Brainling
  • CantidoCantido Registered User regular
    edited November 2011
    Well I'll give it another try. Of all the services, Thingspeak.com appears to be the most noob friendly.

    Also, yesterday, there was a dramatic revelation that ****ed up the way my project was going to go. The client has not paid the subcontractor for his work, so we'll probably never see him again D:

    He was nice enough to provide the details to his redesign of hardware. Our original mission of making the previous device cheaper and more mass-producable was outsource to him. But I'm now $360 in the hole because I had to buy all that shit on my own. It includes a PIC32 microprocessor to replace the previous team's Panda Board, a cheaper touch screen to replace the 600 dollar screen used before, ethernet and wireless extensions to connect it to the intertubes, and so on.

    It will be the Electricals on the team's job to put this stuff together, and then I will have to get it posting and querying to a database. I have to learn how to link this thing to whatever database I make.

    Item 1
    Ethernet Daughter
    Wi Fi Thingy
    I/O component
    Super Cheap Touchscreen

    My issue is hardware, which I never work with. My knowledge is something like this:

    [HTML/PHP Browser Client] <->[Server]<-> [MySQL Database]

    And now I have this:
    [PIC32 language? ]<->[ Thingspeak??? ]<->[Database of some kinda language] <->[Smart Phone Web App]

    Cantido on
    3DS Friendcode 5413-1311-3767
  • ecco the dolphinecco the dolphin Registered User regular
    From a technical perspective:

    So from a quick glance, it looks like the "Ethernet daughter" board connects into your "I/O component", which then connects to your "Item 1". And from the product description for the ethernet board, it looks like Microchip offers a free TCP/IP stack which works with that board.

    This is good news, because you don't want to roll your own TCP/IP stack, if you can avoid it.

    You will probably be using C. Again, the product description for "Item 1" (the PIC32 board) says it includes a free C compiler with no restrictions, so you're good to go there. And since it includes the Microchip IDE, I assume that you'll probably be able to programme the PIC32 via that IDE, so again, you're good to go.

    With the gear that you've bought, you're in a good spot to start, right now.

    You might want to proceed down in this order:

    1.) Install the PIC32 dev environment, and get the PIC32 board to just blink its LEDs. This is the "Hello world" equivalent for a lot of embedded boards.
    2.) Get the ethernet board working with the provided TCP/IP stack.
    3.) Create a simple echo server on the PIC32, which you can telnet into, and just have the PIC echo back what you type.

    Once you've created that server, you should hopefully get an idea of where to go from there.

    Penny Arcade Developers at PADev.net.
  • CantidoCantido Registered User regular
    Wow C, good thing my C is fresh.

    3DS Friendcode 5413-1311-3767
Sign In or Register to comment.