apr 092017
 

I still wasn’t out of “what if…” scenario’s for the devices I had been playing with in relation to The Things Network / LoRaWAN. Because, although I had used the WiFi (and of course LoRA) capabilities of the LoPy a lot, I had not yet played with its BLE (Bluetooth Low Energy) capabilities. For that I needed something else that could use BLE to connect to it. My iPad Mini, the micro:bit, my desktop machine (thanks to the BLE USB adapter), they all could do that. But I wanted to use the Puck-js buttons that I had for that.

The use-case:  If I press the button on the Puck.js (I have two of them, I can press either of them), then the Puck.js connects over bluetooth to the LoPy. After the connection has been made, the Puck.js sends 1) its device-id 2) the measurement of the light sensor of the Puck.js 3) the measurement of the temperature sensor of the Puck.js and 4) the battery voltage of the Puck-js. Once the LoPy has received those 4 values (encoded as a single HEX-string), it sends it to The Things Network (TTN) via LoRaWAN.

Like with the Adafruit Circuit Playground, one of the challenges was that both devices (the LoPy and the Puck.js) use different programming languages and there were no existing examples that handles the cross platform connection.

I uploaded all code to github.com

Programming the Puck.js

To program the Puck.js, you need the Espruino IDE. I have had my fair share of problems connecting to the Puck.js from within that IDE. It is probably one of the challenges of using BLE as a connection to program. But in the end it got the job done. I wasted most time trying to understand how I can send data from the Puck.js to the LoPy after connecting to it. There was an example using 2 Puck.js to send data, but I could not figure out what the UUID of the PrimaryService and the UUID of the Characteristic for the LoPy that allowed me to write data to it where.

I tried to figure that out using code on the Puck.js, but that didn’t work. In the LoPy code that I found, the service and characteristic were defined like this:

srv1 = bluetooth.service(uuid=b'1234567890123456', isprimary=True)

chr1 = srv1.characteristic(uuid=b'ab34567890123456', value=5)

I finally discovered how these needed to be added in the Puck.js code by using nRF Connect, a free tool for iOS. After setting up the LoPy so that it broadcasts using BLE (see the code below), I connected to the LoPy using the nRF Connect app. It then shows you the correct UUID’s that are in the Send_BT_to_LoPy.js script:

return d.getPrimaryService("36353433-3231-3039-3837-363534333231");

return s.getCharacteristic("36353433-3231-3039-3837-363534336261");

Easy, once you know it.

Note #1:  The Puck.js connects to a device named “LoPy01” so if you change the name of the device in main.py for the LoPy, you also have to change it in the code for the Puck.js
Note #2:  I added the id for the Puck.js in the code, first line. You need to change that to the code for your Puck.js if you have more than 1 Puck.js and want to be able to keep the transmitted values apart afterwards.

Let’s continue with the LoPy.

Lees verder….

Deel dit bericht:
mrt 262017
 

De Puck.js is een nogal eigenaardig apparaat. Het is een soort knop (je kunt hem ook echt indrukken) met ingebouwd een programmeerbare chip met ondersteuning voor Bluetooth Low Energy (BLE), GPIO poorten, een infraroodzender, een thermometer, ingebouwde lichtsensor, een sensor voor magnetisme, een rode/groene/blauwe LED.

Je programmeert hem met behulp van Javascript via BLE. En in dat laatste zit hem eigenlijk wel de uitdaging. De maker gaat er namelijk vanuit dat je daarvoor Web Bluetooth gebruikt. Handig, gewoon ingebakken in de browser. Alleen….op iOS / de iPad is dat nog niet standaard aanwezig en op Windows 7 of 10 ook nog niet. Op een Chromebook overigens wel weer. Idem voor Android, maar het 5,5 inch scherm van mijn telefoon is daar toch net wat klein voor.

Er is nu een soort van alternatieve manier beschikbaar op iOS en dat is via de applicatie WebBLE. Die is niet gratis, je betaald er €1,99 voor, maar dan kun je vanaf je iPad ook programmeren. Gaat net wat beter vanwege de optie om daar een toetsenbord bij te gebruiken.
De schermindeling is echter nog niet helemaal optimaal voor gebruik op een iPad Mini in liggende weergave.

Er zou een optie moeten zijn via https://www.espruino.com/ide/relay om de verbinding van de iPad te delen met mijn Windows laptop zónder Web Bluetooth ondersteuning. Maar ondanks de stap voor stap instructie in deze video is me dat nog niet gelukt.

Zoals gezegd, het is een intrigerend apparaatje. Ik heb 2 van de pucks aangeschaft maar voorlopig leveren ze vooral nog veel frustratie ehm leermomenten op en heb ik ze nog niet echt voor iets nuttigs in kunnen zetten.
De vraag over de relay functie heb ik op het forum uitgezet, dus wie weet wordt dat nog opgelost.

p.s. Gordon heeft in het verleden heel snel op andere vragen gereageerd en heeft dus wel wat credit opgebouwd, sowieso omdat ik de puck.js niet écht voor productiedoeleinden nodig heb. Ik kan wachten terwijl het product zich verder ontwikkeld.

 

Deel dit bericht:

Codecademy – Week #1

 Gepubliceerd door om 07:56  Onderwijs, Programmeren
jan 102012
 

CodeAcademy Het was drie minuten voor middernacht gisteren toen de mail van Codecademy binnen kwam met de opdrachten voor de eerste week van wat de bedoeling is een jaar lang leren programmeren. Ik ben niet de enige die die opdrachten binnen kreeg, er hebben zich meer dan 250.000 mensen aangemeld voor deze gratis training. Het is jammer dat het weblog van Codecademy niet echt de ontwikkelingen lijkt te volgen, de vorige post is van 18 dagen geleden, ik zou het interessant vinden als ze ergens zichtbaar maakten wat de actieve participatie is en met name wat het verloop er van is. Het Twitter-account is actiever maar loopt op het moment vol met bedankjes aan mensen die blijkbaar gezegd hebben dat het een fantastisch initiatief is. Dus dat volgen lijkt me ook niet zo zinvol.

Maar goed, de training zelf dan.
Lees verder….

Deel dit bericht:

Feed2JS heeft *NU* hulp nodig!

 Gepubliceerd door om 08:44  Internet, Tools
sep 282011
 

Vandaag wil ik je aandacht vragen voor een dienst die een privé initiatief is van één persoon, waarvan ik lang geleden zelf ook gebruik van maakte, maar die nu dreigt te verdwijnen: Feed2JS. Met Feed2JS kun je eenvoudig een RSS-feed omzetten in een stukje Javascript waarmee je de berichten kunt tonen als onderdeel van een website, leeromgeving, weblog. Alan Levine stond aan de basis van het script dat je kunt downloaden en zelf kunt hosten, maar ook kunt runnen vanaf “zijn” server. In dat laatste geval hoef je dus zelf helemaal niets te doen. Probleem is echter dat die dienst veel bandbreedte kost. Alan had tot voor kort een plek waar hij dat script kon hosten, je hebt er blijkbaar een dedicated server voor nodig gezien het aantal gebruikers, maar moest in september uitwijken naar betaalde ruimte. En dat kan hij niet blijven doen. De hostingkosten voor de maand september lijken op zo’n $200 uit te komen.

Hij heeft dus hulp nodig. Een optie is om geld te doneren via de ‘donate’ knop op deze pagina. Dat helpt even, maar eigenlijk is Alan gewoon op zoek naar iemand die de faciliteiten heeft om hem een dedicated serverlocatie aan te bieden zonder dat het geld kost. Ben jij zo iemand of ken jij zo iemand? Laat het Alan dan weten!
Zoals gezegd, ik ben zelf geen gebruiker meer, maar ik zou het jammer vinden als zo’n toch nog veel gebruikte dienst moet verdwijnen door gebrek aan geld.

Deel dit bericht:
 Reacties uitgeschakeld voor Feed2JS heeft *NU* hulp nodig!  Tags: , ,
aug 122011
 

 [Update 9-5-2015] Zoals zoveel pogingen om content eenvoudig aan Google+ toe te voegen, blijkt ook dit inmiddels niet meer te werken. Tip: als je dit bericht of een ander bericht op dit weblog via Google+ wilt delen, gebruik dan de knoppen onder het bericht. Op dit moment werkt dat.

Een van de dingen die nog ontbreken bij Google+ is een API voor het toevoegen van updates/berichten. Je wilt namelijk vaak een bericht, webpagina, nieuwsbericht delen via Google+. Op Marketingfacts stond afgelopen woensdag al een verwijzing naar een hack die door Alex Moss gemaakt is waardoor je op je WordPress weblog een knop kunt toevoegen waarmee anderen jouw content op die manier kunnen delen.

Maar dat werkt dus alleen voor anderen en alleen op je eigen blog. Wat nou als je content van anderen ook wilt delen? Dat kan ook. Daar is maar een kleine aanpassing aan de betreffende code voor nodig. Het voordeel is dat je dit gewoon aan je browser toe kunt voegen. Dus ook als je zelf geen weblog hebt.
De hack is nog steeds niet erg “mooi”. De popup die je krijgt ziet er niet heel mooi uit, het invoervakje is wat klein. In Internet Explorer kon ik die niet groter trekken zoals o.a. in Chrome en Safari wel kan. Maar het werkt.

Op dit moment kun je een stuk tekst op een pagina selecteren en dan worden de titel van de pagina, het geselecteerde stuk tekst en de URL naar de pagina in de update ingevoegd. De Titel wordt vetgedrukt, de geselecteerde tekst cursief en de URL wordt na het posten actief.
Lees verder….

Deel dit bericht:

Bouw een rondleiding voor je website

 Gepubliceerd door om 06:33  Internet
dec 232010
 

Het is er eentje waarvan ik eerst dacht “cool” en daarna “maar wanneer zou ik dat nou willen gebruiken?”, dit jQuery script waarmee je eenvoudig een rondleiding kunt bouwen voor je website.

Zou het niet zo moeten zijn dat je website zich zonder zo’n rondleiding moet laten bedienen? Is het toevoegen van zo’n rondleiding niet een signaal van je onderbewustzijn dat je het allemaal eigenlijk net iets té complex of té onoverzichtelijk hebt gemaakt voor gewone gebruikers en bezoekers?

Dat Facebook het gebruikt heeft om de functionaliteit van de nieuwe profielpagina uit te leggen vind ik dan ook niet echt een overtuigend voorbeeld.

Ik parkeer hem maar eens gewoon even hier. Wie weet kom ik er nog wel op terug. En als jullie in de tussentijd ideeën hebben voor zinvolle toepassingen, dan hoor ik het graag.

p.s. Op zich zou je het natuurlijk kunnen gebruiken als een soort aanvullende instructie bij online e-learning materiaal. Maar of dan zo’n lineair pad voldoende is?

Deel dit bericht: