Electronics > Beginners
How to design hardware to connect with a Web Server ( With Ethernet)
ToniGodoy:
@pcmad:
All that servers you are talking about cost only a penny when compared with all the security stuff that surround them.
forrestc:
--- Quote from: Rigolon on December 05, 2019, 04:31:59 pm ---But here is the catch, this company sells the machine that has this motor across the nation and they want to control this from the internet. And that's what I don't have any idea on how to do. So from the web I would choose the device I want to connect to and increase/decrease velocity for example.
--- End quote ---
The protocol you're going to want to use is likely MQTT. MQTT pretty much is available on any modern ethernet-connected microcontroller. For example, Microchip Technologies has MQTT support in both their MCC (8/16 bit) and Harmony (32 bit) library stacks. In general what you do is configure some certificates on your device to uniquely identify it (often using an encryption coprocessor to store the keys), and then provision a MQTT server somewhere on the internet with those MQTT keys. After that is done, you can send messages between the server and the end device. Often MQTT is implemented in a way which both the server and the end device have a set of shared variables and messages are sent between the devices to keep both ends synchronized.
Tools from microchip in the lower-end processor space:
https://www.microchip.com/developmenttools/ProductDetails/AC164164
https://www.microchip.com/DevelopmentTools/ProductDetails/AC164160
(and others are available).
You're going to need to come up with someone on your team which understands how to do the web server piece. If I was doing this part I'd set up a serverless infrastructure using AWS-IoT or Google IoT which all of the devices connect to. Then you'd need to write the web server piece that interoperates with this. A good web developer should be able to knock this out fairly quickly, possibly something one could contract out.
pcmad:
--- Quote from: ToniG odoy on December 06, 2019, 12:14:43 am ---@pcmad:
All that servers you are talking about cost only a penny when compared with all the security stuff that surround them.
--- End quote ---
when looking at security on the linux box its self needs to be configured with security regardless of the other securty stuff surround them
my linux server has that security stuff that surround them how ever i still secure my server on the box as ever day i get 1000s of bots trying to find away in
this is why IoT suff has bad security becouse no one considors this and thats why its a bigg issue with IoT
rstofer:
It might be worth taking a look at OpenBSD - secure by design. It might be thought that there are too many hands messing with Linux.
ToniGodoy:
In my opinion, forrestc's advise is the best you can follow.
I would resume it as follow:
1.- You build the hardware for the motors (call it device or publisher) to connect to the server (broker). You do this by means of the tools forrestc pointed above. Yo can do it using the protocols pathway: YourDevice->MQTT->TCP->IP->Ethernet-> toward a router. At the TCP layer you use a pair of certificates from a good known authority.
2.- You don't build the server infrastructure but use a well known one like Google or AWT IoT cloud.
3.- You or someone else deal with the software for sending/receiving/consulting the control/data toward/from your device and the broker (server) plus the GUI interface, both in the servers of the chosen IoT cloud.
4.- Your client connects to the IoT cloud to control or analyze the data by means of the GUI you built (for example a web app in the IoT cloud's server) and the lots of analysis tools the IoT cloud brings to you. Of course, this connection from the client must be secured by another pair of certificates.
We didn't have all these tools and infrastructures before and we had to build them for private use using VPNs or private links but it seems to be the correct way nowadays.
Cheers to forrestc. He made the good point.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version