Posts | Comments

Planet Arduino

Archive for the ‘websockets’ Category

Love it or hate it, for many people embedded systems means Arduino. Now Arduino is leveraging its more powerful MKR boards and introducing a cloud service, the Arduino IoT Cloud. The goal is to make it simple for Arduino programs to record data and control actions from the cloud.

The program is in beta and features a variety of both human and machine interaction styles. At the simple end, you can assemble a dashboard of controls and have the IoT Cloud generate your code and download it to your Arduino itself with no user programming required. More advanced users can use HTTP REST, MQTT, Javascript, Websockets, or a suite of command line tools.

The system relies on “things” like temperature sensors, LEDs, and servos. With all the focus on security now, it isn’t surprising that the system supports X.509 authentication and TLS security for traffic in both directions.

Honestly, we tried it and the web-based IDE couldn’t find our MKR1000 board under Linux. That could be a misconfiguration on our part, but it is frustrating how little information you get from many web-based tools. It decided we had multiple Arduinos connected (we didn’t). Then removing a multiport serial adapter made it see no Arduinos even though there was an MKR1000 Vidor attached.

Naturally, there are plenty of options when it comes to putting devices on the cloud. However, if you are only using Arduino boards, this one is going to be pretty seamless — assuming it works for you.

Love it or hate it, for many people embedded systems means Arduino. Now Arduino is leveraging its more powerful MKR boards and introducing a cloud service, the Arduino IoT Cloud. The goal is to make it simple for Arduino programs to record data and control actions from the cloud.

The program is in beta and features a variety of both human and machine interaction styles. At the simple end, you can assemble a dashboard of controls and have the IoT Cloud generate your code and download it to your Arduino itself with no user programming required. More advanced users can use HTTP REST, MQTT, Javascript, Websockets, or a suite of command line tools.

The system relies on “things” like temperature sensors, LEDs, and servos. With all the focus on security now, it isn’t surprising that the system supports X.509 authentication and TLS security for traffic in both directions.

Honestly, we tried it and the web-based IDE couldn’t find our MKR1000 board under Linux. That could be a misconfiguration on our part, but it is frustrating how little information you get from many web-based tools. It decided we had multiple Arduinos connected (we didn’t). Then removing a multiport serial adapter made it see no Arduinos even though there was an MKR1000 Vidor attached.

Naturally, there are plenty of options when it comes to putting devices on the cloud. However, if you are only using Arduino boards, this one is going to be pretty seamless — assuming it works for you.

It used to be that Web browsing was simple. You asked a server for some text, which was duly sent, and then formatted by your browser. Now a web page is as likely to be a full-blown application that is reading mail, editing text, or lots of other things and may use WebSockets to create a back channel to the server. Thanks to affordable hardware like the ESP8266 one of those things a modern web browser can do is sense and control the real world. [Acrobotic] has an interesting video about using WebSockets to allow a browser to talk to an ESP8266 web server in real time. You can see his simple demo in the video below.

Of course, you’ll use the usual language you use on the ESP8266 — [Acrobotic] uses C++ in the Arduino IDE. On the browser side you’ll use JavaScript, although that will be embedded in your C++ program which acts as a web server.

It’s as well to remember that there are several other ways you could do this. You could, for example ask for a different URL, or pass data in a query string. The problem here is that the performance would suffer as you have to establish a new connection every time. you want to transact with the server. You could also use AJAX methods but they are not as efficient either since they are primarily aimed at updating a portion of a web page dynamically. The web socket is simple enough and as you can see in the video, the performance is quite good. It also facilitates non-browser based clients that use the same service.

We’ve seen this technique used to fly a quadcopter. WebSockets have been around for a while, so your browser should support them. If it doesn’t, though, you can always use this hack — at least in one direction.



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook