jun 182017
 

Toen ik de vraag kreeg wat ik van de Sanbot en haar bruikbaarheid voor het onderwijs vond was mijn eerste reactie dat ik daar nog helemaal niets van vond. Want ik kende de robot helemaal nog niet.

Nu, na het wat verder duiken in de schaarse beschikbare informatie, weet ik het eigenlijk nog steeds niet zo.

Wat ik weet:

  • Het is een robot van het bedrijf Qihan Technology Co. Ltd uit China;
  • Ze is redelijk betaalbaar, zo’n $6.000,- al weet ik niet wat de cloud-connectivity die mogelijk is zou moeten kosten;
  • Er bestaat een integratiemogelijkheid met Watson van IBM, dat zou interessante gebruikscenario’s moeten kunnen opleveren waarbij je niet afhankelijk  bent van de verwerkingskracht van het apparaat zelf;
  • De Sanbot sprak eerste Chinees en heeft daarna Engels geleerd, dat lijkt soms nog wat moeite te kosten, ook op andere plekken, want bij de ontwikkelaarspagina’s lijken de pagina’s nog niet helemaal vertaald;
  • Het kan aan mij liggen, maar het uiterlijk van de robot doet me een beetje aan Mrs. Doubtfire denken.

Lees verder….

Deel dit bericht:
jun 062017
 

Ik kijk al tijden niet meer live naar de grootse aankondigingen die Apple met enige regelmaat doet. Dat geldt overigens ook voor Google, Microsoft, Samsung. Ik vind het veel efficiënter om een dag erna een van de vele redelijk snel beschikbare samenvattingen te bekijken. Hierboven zie je er eentje van 10 minuten. Ik moet bekennen dat ik hem wel heel erg een compilatie van “groter, sneller, goedkoper” vond. Zo eentje die ik dan dus gerust kon missen.

Lees verder….

Deel dit bericht:
jun 052017
 

Via Adafruit kwam ik bovenstaande video van KaneFernandes Design, een 19 jarige student Product Design aan de Middlesex Universiteit in London. De titel is een beetje misleidend, er staat “360º Smartphone Camera Drone Rig using Arduino Uno & XBEE“, er wordt niet echt gebruik gemaakt van een drone, maar van de motor + propellor van een drone. Maar inderdaad, de smartphone “vliegt” om het object heen. 🙂
Daarmee is het project niet minder mooi, vooral ook omdat de video laat zien hoeveel (denk-)stappen er aan het eindproduct vooraf gaan.
De eerste versie maakte heftig gebruik van duct tape, ik kan tegenwoordig niet anders meer dan meteen aan Astrid Poot denken als ik zoiets zie, maar de volgende versie werd een stuk degelijker en technischer. Maken is zeker niet hetzelfde als wat knutselen met spullen!

Hoe dan ook, het is een mooi gedocumenteerd voorbeeld. Een van de resultaten die ermee gemaakt zijn:

Deel dit bericht:

LoRaWAN with LoPy and KPN + Loggly

 Gepubliceerd door om 15:49  Hardware, LoRaWAN
mei 202017
 

In the Netherlands, KPN was the first to offer nationwide coverage of a IoT network based on LoRaWAN. You can read about my first tests using their Network in combination with the Marvin node in this post. Unlike with the IoT network that for example is currently being rolled out by T-Mobile, which uses NB-IoT and different hardware than The Things Network (TTN), switching a device from the TTN network to the KPN network is simple: just change the DEV_ADDR, NWK_SWKEY, APP_SWKEY values in the config.py of you Pycom LoPy to the values that are provided in the management environment of KPN (see image left). No changes in the microPython code needed. You could even have a device connect to both networks and switch between them (although you probably don’t want to do that when you’ve got a battery powered node).

KPN offers a free test period where you can test your nodes on their infrastructure without having to pay. It is what I used for my train trip last month where I used both the Marvin node (connected to KPN) and the LoPy (connected to TTN) as a way to get a feel for coverage while moving in the Netherlands.

Besides the fact that KPN offers a commercial solution, the free test version (don’t know about the paid version) has a number of differences: unlike TTN where they provide a number of integration options (Cayenne, Data Storage provided by TTN, HTTP integration, IFTTT Maker), KPN only offers HTTP integration. This means you have to provide a destination URL for an HTTPS endpoint where the data is stored. In the Marvin workshop they use Hookbin.com as a free and easy to setup endpoint. But endpoints created there only store data for a limited time. That is why I now use the free version of Loggly.com to collect the data. But of course, the data is only useful if I manage to get it from Loggly to my own local system.

A second difference is a bit of a mystery. If I used the Marvin to send data over the KPN network, the data gets encrypted by the Marvin, but automatically is being decrypted again on the KPN server. But if I use the LoPy to send data over the KPN network, the data shown in the debug console at KPN and the data received by Loggly is still encrypted.

I managed to get both challenges resolved and in this post I’ll do a write-up not of the (lengthy) process of getting to the working code, but of the end result. All code is available on Github.

Lees verder….

Deel dit bericht:
mei 192017
 

Ik ga hem niet in de categorie “onderzoek” labelen, want daar is de steekproef van vier zinnen en acht proefpersonen me net wat klein voor, hij krijgt daarom eerder het label “grappig” en het is wel een heel relevante vergelijking: hoe doen Google Home, Siri van Apple en Alexa van Amazon het op het gebied van het herkennen van vragen die in het Engels gesteld worden als je een accent hebt. Bijvoorbeeld omdat je Brit, Schot, Ier, Amerikaan, Aussie, Duitser, Italiaan of Japanner bent.

Je kunt het resultaat in het filmpje zien of hier nalezen.

Spoiler: Benedict Cumberbatch wint! 🙂

 

Deel dit bericht:
mei 142017
 

At AliExpress they sell a number of cheap GPS modules that you can use for Arduino. I ordered one (this one) GY-NEO6MV2 for €6,82 incl. free shipping (the seller doesn’t offer free shipping anymore so you might want to shop around a bit) and wanted to try it out on the LoPy. Now, I wanted to say that using it is really easy, it is, but then again there were more than enough bumps in the road to get it to work the way I wanted it. But hey, what is life without some challenges?

First things first: the GPS module is easy to use. It use UART to connect to it. As soon as you have got something that is willing to listen to it, power it (it worked using 3.3V), it start sending you GPS data that you only need to interpret. I soldered 4 header pins to the module, connected the VCC to the 3.3V, GND to GND on the Pyboard, the TX line to “P11” and the RX line to “P12”.

As soon as you connect power to the LoPy, the GPS unit is powered. The red light blinking means that the unit is working and sending data. You just need to listen to it.  The code to do that is available here on GitHub.

To start listening:  com = UART(1,pins=(config.TX, config.RX), baudrate=9600)

To interpret the data coming from the module, I use the MicropyGPS module. It is initialized using my_gps = MicropyGPS().

After that it is a matter of checking if there is any data available, and then feed it character by character to the module:

if com.any():
    my_sentence = com.readline()
    for x in my_sentence:
        my_gps.update(chr(x))

 

Lees verder….

Deel dit bericht:
apr 202017
 

De Amazon Dash knoppen zijn heerlijk controversieel. Het idee: je hebt een knop (gewoon, een knop met niet verwisselbare batterij en wifi ingebouwd). Als je daar op drukt, dan wordt er automatisch dat ene product waarvan je ook het logo/merk op de knop ziet (ok, dat kun je dan wel zelf instellen vooraf) in je mandje bij Amazon gelegd. Gemakkelijk: plak er eentje in het kastje op de badkamer en als iemand de laatste wc-rol pakt, drukt die gewoon even op de Dash knop om hem bij te bestellen.

Ja ja, super ernstig, fout, verspillend, gemakzuchtig. Geloof me, ik zou er nooit eentje gebruiken. Tenminste niet voor het doel waar ze voor verkocht worden. Want zo’n Dash knop kost maar 5 euro. Helaas, wel in Duitsland te koop, nog niet in Nederland.

Want zo’n knop is natuurlijk een heel hackbaar ding. Nou ja, wil je het allemaal veilig maken en zo, dan kost het wat meer werk, maar voor 5 euro kan ik niet zo’n compacte knop maken die een signaal via mijn wifi netwerk verstuurd. Een ESP8266 kost zo’n 2-3 euro, hier zit een mooie compacte behuizing omheen, een kleine drukknop, het enige nadeel vind ik wel (ook een beetje principieel) dat de batterij niet te vervangen is. Dus als die leeg is (na zo’n 1.000 keer gebruik), dan moet je de knop weg gooien (en niet gewoon in de grijze kliko vanwege die ingelaste batterij).

Dat is één van de redenen waarom deze hack van de knoppen eigenlijk niet zo “goed” is, al is het idee natuurlijk super: een ouder heeft een viertal Dash knoppen aangepast zodat dochterlief van 4 zelf de muziek via het Sonos systeem aan en uit kon zetten. Een Raspberry Pi met daarop o.a. de scapy library vangt de signalen op die de Dash knop verstuurt als deze verbinding wil maken met Amazon. De truc is om de setup van de knop niet helemaal af te ronden zodat deze wél verbinding met je wifi netwerk kan maken, maar niet met Amazon.

Dat principe is natuurlijk ook op andere dingen toe te passen, bijvoorbeeld om apparaten op afstand aan en uit te schakelen. In dit bericht kun je lezen dat dat niet zo heel veilig is aangezien anderen dan zo’n zelfde script zouden kunnen gebruiken om je lampen, apparaten etc. aan te sturen.
Nou klopt dat inderdaad, maar dat is net zo waar voor de meeste “KlikAanKlikUit”-achtige systemen die veel in gebruik zijn.

Hoe dan ook, leuk voorbeeld, en scapy is de moeite waard om wat dieper in te duiken. YouTube heeft er zo te zien voldoende filmpjes over.

Deel dit bericht:
apr 152017
 

Now that Alex explained everyone how to use MQTT in combination with the LoPy, I thought it was time to show some more advanced uses of MQTT in case you still had no idea why you would bother learning to understand it.
The nice thing about MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport) as a protocol, is that it is not tied to the LoPy or WiPy that Alex used in his example. You can use it in combination with many different devices, tools and applications. For example, in our house, I use a Mosquitto MQTT broker as the central backbone for the home automation. For those that can understand Dutch, see this blogpost I did in 2014, or the one about the lights in my Christmas tree.

MQTT is also supported by The Things Network (TTN) meaning that you can retrieve all the data that your nodes send to TTN using MQTT. This also means you can use MQTT as a way to create a local backup of the data that your nodes send this way.
You can also use it in combination with the KPN LoRaWAN network, but the setup is slightly different. So in this post I am going to focus on TTN, although like before I will be using both the Marvin board and the LoPy board (in combination with Puck.js although that is completely optional of course).

I will be using Node-RED installed on one of my Raspberry Pi devices and I will be using MySQL as the database backend. I will be posting about MySQL versus MongoDB versus InfluxDB one of these days, but on a Raspberry Pi for now this was the quickest and easiest solution.

Let’s dive in:

Lees verder….

Deel dit bericht:
apr 112017
 

Er is weer een nieuwe afkorting bij om te kennen als het gaat om de apparaten die je thuis (en op andere plekken) aan het netwerk kunt /hebt hangen, denk aan de WiFi-router thuis, een camera die je via internet kunt bedienen, je mediabox die aan de TV hangt etc.

De media noemt ze overigens vaak “IoT devices” (Internet of Things apparaten) en dat is wellicht niet zo handig omdat veel mensen zullen denken “die heb ik niet”.

Ik schreef in januari al dat je zelfs je eigen thuisnetwerk niet zomaar als “veilig” zou moeten beschouwen. Dat was toen naar aanleiding van berichten dat hackers grote aantallen IoT devices gebruikt hadden om een DDoS (Distributed Denial of Service) aanval uit te voeren.

Nou zou je nog kunnen stellen “als het apparaat maar blijft werken, dan maak ik me er niet zo’n zorgen over”. Los van de vraag of je het prettig zou moeten vinden als een ander toegang tot je WiFi-router heeft, zijn er nu ook een tweetal bedreigingen die wél schade kunnen opleveren voor de werking van jouw eigen (onveilige) apparaat.

Het heet een PDoS, een “Permanent Denial-of-Service” en het woordje “Permanent” zegt het al: na zo’n aanval op jouw apparaat is het “stuk”. Weliswaar niet fysiek stuk, er komt geen rook uit je apparaat, maar softwarematig zo stuk dat jij er geen toegang meer toe hebt en de werking ervan ook stopt.

Zoals zo vaak maakt de tool die de aanval uitvoert (er zijn twee varianten: BrickerBot.1 en BrickerBot.2 die niet helemaal hetzelfde werken maar vergelijkbaar effect hebben)  gebruik van bekende kwetsbaarheden in software die in (blijkbaar) redelijk wat systemen aanwezig is. Het gaat om systemen die BusyBox en Dropbear gebruiken. Met name bij BusyBox is het lijstje van “andere software en hardware die gebruik maakt van BusyBox” lang. Hoeveel systemen daarmee gevaar lopen? Dat is wat moeilijker vast te stellen. Het is logisch dat een bedrijf dat ook consultancy verkoopt aan bedrijven om hun netwerk te beveiligen stevig aan de bel trekt. Dropbear heeft inmiddels al een patch uitgebracht, die worden echter maar zelden op dit soort apparaten geïnstalleerd (als het al kan). En voor alsnog geldt natuurlijk ook dat het systeem via internet bereikbaar moet zijn, dus die buitenste verdediging van je netwerk waar ik over schreef kan heel wat aanvallen tegen houden. Maar wees dus absoluut voorzichtig met het “zomaar” in je router openzetten van een poort zodat je je apparaten ook kunt bereiken als je op je werk of onderweg bent.   Het volledige bericht en de bijbehorende PDF is hier te vinden.

De vraag is in ieder geval hoe lang de situatie blijft bestaan waarbij hardware (ook je slimme TV) niet of nauwelijks van een update is te voorzien. Voorlopig lijken leveranciers zich er nog gemakkelijk vanaf te kunnen maken.

Wordt ongetwijfeld vervolgd.

Deel dit bericht:
apr 102017
 

Als het in het onderwijs in Nederland over “programmeren” gaat worden eenvoudige vragen al heel snel ingewikkeld. Dus een vraag als “Welke programmeertalen zouden onze leerlingen/studenten moeten kennen?” (bron) is niet helemaal zonder risico. Immers, je moet dan gaan nadenken over het doel dat je daarmee hebt. Wil je ze leren programmeren? Of juist coderen? Of software ontwikkelen? Ik ga niet eens proberen naar bronnen te linken die ze op één hoop of op juist heel verschillende hopen (en dan per bron ook verschillend) gooien.

Dus laat ik het maar even veilig houden in deze blogpost. Zo’n 9 jaar geleden vroeg ik me af welke programmeertalen ik allemaal zou moeten leren. Zoals ik toen beschreef:   Basic was mijn eerste kennismaking met programmeren, maar daar kon je (toen) zo weinig mee dat ik er niet veel interesse voor had. Op de universiteit leerde ik Turbo Pascal om daar vervolgens nooit meer wat mee te doen. Daarna kwam ik in de Windows omgeving en Visual Basic (binnen Office!) en Active Server Pages (ASP) terecht. Mijn eerste kennismaking met JavaScript was in de browser, ASP werd vervangen door PHP toen ik weblogtools ging gebruiken op basis van die taal. En daarna werd het een opeenvolging van “wat heb ik nodig”. Zo kwam er een beetje Python bij, een heel klein beetje .NET en eveneens een klein beetje Java. Dat was toen. Sindsdien zijn er dingen gewijzigd en gelijk gebleven.

Lees verder….

Deel dit bericht: