3

Hey IoT stack community!

I want to ask how I can simulate an IoT device or a network of IoT devices, if i don't have a single piece of hardware? Is this possible in any way at all?

To give you some context, for the sake of a project I want to demonstrate; that a group of IoT devices are communicating or working in a network.

And most importantly - they are exchanging data between themselves.

I might be a bit broad or too general with the overall description, but that is because I don't have too much knowledge of IoT

Credit to the kind suggestion of a mod here, i will provide you with a rough sketch of the system architecture i have in mind ..

think of a network of IoT devices , belonging to a smart home or a similarly local system. It's not too big but it there are several devices .. say 10 devices

right now i have no hardware in mind as i plan to do just a simulation for the sake of obtaining some observations or results

my only requirement is; to be able to demonstrate activity happening in an IoT network virtually i.e using no hardware, for the moment

I am a Computer Engineer, but consider me an absolute beginner in IoT. The closest thing I have worked with is making/soldering a custom Arduino board from scratch several years ago and some C code to program the microcontroller on it (possibly for LEDs or something, don't remember too well)

I would really appreciate any resources or programming libraries that can help me achieve this.

9
  • Thanks for splitting the question, that's a definite improvement! We are still lacking a lot of detail; in its current state it seems like the question could be answered by millions of random suggestions: specifically what are you trying to achieve? You could be talking about anything, whether a smart-home or a security system or even a coke machine (no kidding!) What hardware are you planning on using, preferably with model names? What are your specific requirements from the software? Please edit in more detail. Thank you!
    – anonymous2
    Commented Dec 9, 2021 at 23:56
  • @anonymous2 i tried my best to address the points you mentioned Commented Dec 10, 2021 at 15:46
  • You could write a simulation where each device is a thread and they communicate asynchronously by passing message via queues.
    – CWallach
    Commented Dec 10, 2021 at 16:39
  • @CWallach thanks, interesting suggestion ! tell, me - is there a possibility to expand this simulation to the present day IoT protocols ( like MQTT or COAP ) ? if so, how can we achieve that ? if you have more details to offer, you can directly write an answer to my question :) Commented Dec 10, 2021 at 16:44
  • 1
    quora.com/How-do-I-create-an-IoT-simulator might clarify some things for you. Commented Dec 14, 2021 at 19:27

1 Answer 1

1

It's not clear exactly what you're trying to simulate or demonstrate here, but you may be able to do a certain amount with a series of VMs or Containers running on a laptop.

VMs and Containers can communicate with each other via a little "virtual" network running on the host computer. Thus, they can all be exchanging information, and you can show logs or whatever on each device. If you've got a central "hub" which has a GUI or web interface, you'd be able to show that too (either by running a browser in one of the VMs, or just using the browser on the host machine to go to the hub.

There are limitations here though:

  • You can only really communicate over IP (TCP, UDP or ICMP I guess). You'd struggle to show a reasonable approximation of (say) Zwave or InfraRed or whatever else.
  • Flicking between terminal sessions or different windows might mean something to you, but for less technical on-lookers, it's all just a mish-mash of screens and they won't understand it very well. You might think your demo is a good approximation of the future, but to them, it isn't - so the value of your demo is much diminished
  • This assumes you can even run your IoT devices in a container or VM. Something like an Arduino, ESP8266 or other microcontroller isn't going to translate well.

From some vague experience, I'd say that the laptop approach is great for development, but for testing and demonstration, some real hardware goes a long way (even if that hardware is very much "prototype" level).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.