Snelstartgids Atom Lite en dingdata.nl (zelfstudie)

De HTTP aanroep inregelen

We hebben vier dingen nodig om gegevens in dingdata.nl te bewaren: de URL (http://www.dingdata.nl), het nummer van de knipselbak waarin we gegevens willen schrijven (bijvoorbeeld 123), de sleutel die nodig is om in de knipselbak te mogen schrijven (bijvoorbeeld a12b234) en de waarde die we willen schrijven. Het schrijven van gegevens ‘naar’ het internet gaat met wat men noemt een ‘HTTP POST request’. UIFlow heeft hiervoor een onderdeel dat Http Request heet en zich in Http bevindt. Het is een imposant ogend onderdeel dat veel instelmogelijkheden heeft. In Http bevinden zich verder een onderdeel dat Get Status Code heet en een onderdeel met de naam Get Data.

Om het onderdeel Http Request uit te proberen volstaat het om de URL die bij de knipselbak onder het knopje in de kolom Schrijfsleutel wordt getoond in het geheel als vaste waarde achter URL te plakken.

Ga naar dingdata.nl en raadpleeg de Account pagina met Knipselbakken. Eerder in deze cursus hebben we hier een knipselbak aangemaakt. In de kolom Schrijfsleutel wordt een code van 7 tekens weergegeven. Klik hierop om een gebruiksvoorbeeld van de knipselbak te krijgen. In het voorbeeld is dit http://dingdata.nl/knipsel?sleutel=492675d&knipselbak=169&bericht=waarde. Als we waarde vervangen door een gesimuleerde temperatuurwaarde, zoals 19.55, dan kunnen we de gehele URL naar de Http Request overbrengen. Voordat we dit kunnen doen, moet de plaatshouder voor de vaste tekstwaarde achter URL vervangen worden door een vaste waarde uit Text getiteld unescaped. Plaats deze in plaats van de bestaande (nog lege) vaste waarde en plak het voorbeeld URL (met de gesimuleerde temperatuurwaarde) vervolgens in het unescaped vak. Wijzig Method in (POST).

Start het programma en stel op de Account pagina van dingdata.nl vast dat er een knipsel aan de knipselbak is toegevoegd (het aantal knipsels in de bak is met eentje verhoogd).

Hierboven hebben we alle informatie die nodig is om de meting in dingdata.nl te bewaren in de URL gezet. Het nadeel hiervan is dat de URL een onoverzichtelijke brei is geworden. Door alle parameters in losse variabelen te zetten en deze in de Http Request Data op te nemen kunnen we het geheel veel overzichtelijker maken. Om de geheime sleutel van de knipselbak wat minder zichtbaar te maken, kunnen we deze in een functie wegstoppen. Deze vinden we in Functions. Noem de functie secrets om aan te geven dat hier variabelen worden gezet die geheime waarden bevatten.

In het voorbeeld hiernaast wordt de functie secrets aangeroepen gelijk nadat de RGB-led van de Atom Lite is aangezet. Na de aanroep van de functie wordt een Loop gestart, waarin de resterende delen van het programma worden opgenomen. De variabelen die in secrets zijn gezet, plus de gemeten waarde van de BPS sensor, kunnen in het Data deel van de Http Request worden opgenomen. Klik hiervoor op de + van de Data create map in de Http Request. Gebruik een vaste tekstwaarde uit Text om de key voor sleutel, knipselbak en bericht vast te leggen. Geef aan de rechterkant bij value de bijbehorende variabele waarden op. Naast de variabelen in secrets is er een meetwaarde nodig. Hiervoor gebruiken we de manier voor het toekennen van een meetwaarde aan een variabele zoals dit in de vorige les is besproken, met set (waarde) to Get (bps_0) temperature. De uitkomst van de Http Request kan Success of Fail zijn. Geef met een Set RGB Bar color (rood) aan dat er een fout is opgetreden bij het verzenden van de meetwaarde.

Het voorbeeld hierboven levert een werkend programma op, maar is nog niet helemaal compleet. In het geval van een succesvolle Http Request wordt dit nog niet met een kleurcode aangegeven. De aanroep van dingdata.nl levert in het geval van een succesvolle schrijfactie de Status Code 200 op. Als de aanroep niet succesvol was, wordt dit afhankelijk van de aard van de fout aangegeven met een code >= 400. Voor ons programma is het voldoende om te controleren of de Status Code 200 was en dit met een groene led aan te geven. Alle andere niet-helemaal-succesvolle situaties kunnen we dan met bijvoorbeeld een gele led aangeven. Klap de functie in door met de rechtermuisknop de optie Collapse Block te kiezen.

Start het programma en stel vast dat iedere 30 seconden een nieuwe meetwaarde aan dingdata.nl wordt toegevoegd.

Geef een reactie