Click here to Skip to main content
14,983,411 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
Good evening!

Together with a couple of class mates, I've come up with an idea that we'll work on from August this year to around March 2018 as a school project. We're learning electronics, and as a disclaimer: We're pretty much brand new to the world of programming, and all we've done is some work with an arduino. However, the idea is to transfer data, like a number coming from a sensor, from a microcontroller board like an Arduino Uno, to a computer program where it can be displayed either as a number, or a prosentage of another number. The data would be displayed live, so that we can keep an eye on the sensor values in real time, and it would be transfered via the internet. The arduino with the sensor would have a wifi and/or 2g/3g/4g connection in order to access the internet, and the computer would just be a windows laptop or desktop with either wifi or ethernet connection.

We know theres solutions like this out there, but this is a learning experience more than anything. We have seen some arduino solutions on the internet, but those use websites to collect and display the numbers. Although that works, its not ideal for us, but we do understand the windows program would be the most challenging part, since we dont have any experience with databases or languages used for these kinds of tasks.

We also understand this might and probably is a too big bite than we can chew, but we want to try anyways and see how far we can come, both in software and hardware. We're not the kinds of people who think this is gonna ve easy, even without any knowledge, but we want to try. We've worked with some basic sensors before by the way, that part is ok. But from your point of view, what do to think? Where would you start, what us your opinion on what we would need? We dont want you to give us a complete code ready to roll, but we want some input now before we start on what we would have to do, and how you would have done it. We might not understand all you're talking about, but thats why we research and are going to continue to work on our programming knowledge.

Thank you for your answers!


What I have tried:

We've been doing some research, and as mentioned, the solutions people have explained doesn't fully meet our needs. Again, we know this is a big project for somebody like us, maybe too big, but we'll try.

We're starting to look into different ways of using databases and different programming languages, but that's to get a basic understanding of this major topic.

(We're sorry if this does not meet the intentions of this website, but we thought we would try either way! If it does not fit, please remove it and tell us, thank you!)
Updated 6-Jun-17 23:17pm

1 solution

For such a project you need a system that is acting as server for your data. That server must have a public address to be reached from the client (the Arduino system) and should be always online. For those reasons, other solutions often use a hosted web site.

If you want to use a dedicated system instead (a Windows desktop or notebook), you have to fulfill the requirements:

  • The server must have a known public address. This might require DDNS (Dynamic DNS - Wikipedia[^]) and port forwarding (Port forwarding - Wikipedia[^]) to be configured on the server's gateway (router).
  • The system must be always on, or you have to implement code on the Arduino which collects data and sends them when the server is online. However, the ability to react on non-responsive servers is always a good idea.

Because most examples use hosted HTTP services (web sites) you can run a web server on your system using similar data processing. Alternatively write a socket based application that accepts data send from the Arduino (Network socket - Wikipedia[^]).

How to store and display data on the server depends on your requirements. Common implementations use databases or data files for fixed time periods (e.g. plain text or XML files for each day/week/month).

The programming language does not really care. All VisualStudio languages provide support for sockets, databases, file IO, and XML.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900