IBM BLUEMIX: CHECKING THE ULTRAVIOLET INDEX WITH RASPBERRY PI / SENSE HAT CONNECTED TO IBM WEATHER COMPANY DATA
- Layout for this exercise:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX4N2n7Ju6dkFyhEE3yUK1Q1OdxPWNSxrf43YX9IS7-XZT28cmiGl49CbuhVivH3-inpC0cMRulDmFNjHJ3TeWXtIaAlcOlAVhbBGP674ubgLR9_CjP1emtImXuvyigGmiNeAkfmGj1DcS/s1600/screenshot.67.jpg)
1 - Creating an instance of Weather Company Data IBM services
- The goal of this exercise is to build an Ultraviolet (UV) rays indicator using a Raspberry Pi device with Sense Hat and NODE-Red accessing the Weather Company Data IBM Bluemix.
- Signing into an IBM Bluemix account:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG3brJRudMpwOgNDmom3ls_-KXXRfATlBFJBf05r7B3LU0wzIab9_IFOb3wvyd8E58UK7FnKC9lmvRm60XD59KHb_cZcALJskrlxGkw-2m-H3eeq1wr3AotFT5bcQSQtbaXdr6y3cfdI0h/s1600/screenshot.4.jpg)
- Going to Catalog and searching for "Weather" the result is Weather Company Data:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJGsbwLq7HGvBhVU5skQns2AG81nFgZ_L-Tyj0hgglY4xpPSej38h0m8RKJx-vgqZVDoB2lvQ20whBLtgp9XmusOZe-Lp1FtJQkvZe2CHeSN3rK2tXSJB5pFc39bxwxyOA_SO3Hau9jjJ3/s1600/screenshot.5.jpg)
- Weather Company Data is a service that allows the integration with IBM Bluemix:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlkgnyOIXEeP0pdxs0haoKvQOr5qXaRvj8qChSQ-fvcvul1RVCo4OsJvpFi3iCeI6-D8uZlH3KHw_AamyFnIM3Q4qBEtoXGEFfyU2FRA-3VB8zE5OEAytFj89Lx4F6g0WonCeOGKLQdYpZ/s1600/screenshot.6.jpg)
- This service has a great range of features related with weather forecast, for instance Current Conditions provides data about UV Index:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCf5njy6k2TV5uf5yqClU1uIFGPFygXzy9cHCrl6zmy72HlA4vAc3_-5-7MEb_LuwX38WRUzOhtsA2LujXXys3KAqkUo3uhg0neznj7gyyNmc-CnmCZjk3BKv23MLPPAHjTqnU9ikvP-jT/s1600/screenshot.7.jpg)
- Clicking Create:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOOoMBXTVRIuzVK-AsH7ZvzIWmN0YvuWOzfjZMHGS_UeRzsHnw0UHlwvZjTGfPMNdn3Ny0uPF0ur6oxn7QyYZLozltdzoWDMC5US3_ClQzZPtkiK44-XZo_Qd3_sZgSNiZEShzvJD-DGC_/s400/screenshot.8.jpg)
- Some Service credentials are generated that must be written down for later usage:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU_KReZgYUkp9lW68LXvebVDcwOVO6oF8QMC4sDDhWItpQYx1rNdYrNaKsNQH80btrrcJSaGK1zlh4JUTTzwjir5mD4eIWF998OSgtNmNbJLKAu1owndmaxatQLaJjDp-fPe77jbkRimJb/s1600/screenshot.11.jpg)
- Copying to the Clipboard the Service Credentials:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN_vR5vZSxOXKEHqAFag8B0APcgMmcn_yoGtp9p-KnPGrV-qX62Lj2NvsAHYYtTw8sGDg8nqUpQPYrJasFEFNv6YHtIRZ3j34bqCL3PPF2MNZBtOTTDxGrUK4r8dsVLxDLN-X7Hu7tyrvW/s1600/screenshot.13.jpg)
2 - Creating a NODE-Red flow
- Installing additional NODE-Red nodes necessary for accessing IBM Weather Company Data for Bluemix:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWVNi3jDWG32t7Renegi7_0ohSzpKLQeBlZBrIAx6q0ZG_5qX7gs8HvIo1hQhQ3iBKqSuZuOtfJTfp6PatndTOlk4iGdgFh76ChNTi0bo2ghTbt2aA-tsqQUkB-lOsnCWiW-4T0eIcUZFT/s1600/screenshot.18.jpg)
- Starting NODE-Red:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkI7x_rLy9Do9Cm8bxCsdRmwYH5LgUt1A5PRbB9Smz0k1nZMPMteNY8GUColug3mGEJh-m-wc79IT4IJuowKNFv3DlXc2gESdlNZQ6b3J2X0pxcpSvBbWMZ3mC_2gQcgsj-JKbrgpDVa3f/s1600/screenshot.15.jpg)
- Now, a NODE-Red flow must be created composed of 6 nodes:
1) Inject
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEillL-QYWHvVEOgeWVzCkJWMe47xsZcuC7kW9-64fhjS2DFPB9UOZ4-smCMyo87UlPhM-Kp-9gAMQhl_e92s17HUnS3thS3PA9UH7wDZqiwl8sdH7JsDmh2FYlUHPpUXGL3ol_lb3fehiwf/s400/screenshot.19.jpg)
- The payload of the inject node is the geo position (latitude and longitude) of the location of New York City:
http://mygeoposition.com/
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuR8C9C57FoGaZd5L6zf6-8rCe4HUIuB1c8zMgnuy6P9KmhTjdJzYH-L1dwMlIQZmDjFEW_-lp31qwA_kj7E6b32E4sf7IzpqwgMd8txmTIaujL6kQEVMROsgoN1bRJv8JO0zzrOCirVGo/s1600/screenshot.48.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpZh3isdbGCrIpooY2YrrRtmQyIfbSCrDH_brRQj6_iOaWl6rEU3K1RKd9wf9k_fqJ_3ps1eZ45Y8W7mOfhyphenhyphenn529cEowYEOfX1uN9fpRAuBRhtp3fHBowIiIMXPh0wxNkWIALp9vAEjcwN/s400/screenshot.49.jpg)
- Entering as payload the Latitude and Longitude of NYC:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl_dRWJvoF28t8HkS78Q_-p50DfMT8HDctdotmM4f_SmpP80lxD6rn-uvBsKMzUOoLnV19y_m-skY8OEWxf4IqkHziNCbvfC5N9tl_feGn9lGglX_gTxqIjPe4-gMwTeBSRKXJRUOjdbr0/s1600/screenshot.57.jpg)
2) Weather Insights
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw8dweMEOgN6bRW5uuQ4NwgxxPkybdPq4cVkoB5S4D2S_CtaxkG2RkNRAQWfSdLT7v783K3kkeBwlmJpVSEyB0QUEqm66M8tS8A7dG1HyEDUUXng8-wPHxeWH9gtC3TGqq-oLWWIzcxon2/s400/screenshot.21.jpg)
- Entering Username and Password obtained at point 1 (Service credentials) and Current Observations as a Service:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbC7sqPeXmemk1KhkdHTC4B64iunMCpHskudxBqYbqILHp3NxznyfdRXMthxBxB_-8mCzjYj7rEhR-TsI9ajL-_PxMQHeNHrVon1z1Pc2qMSAZqCmVQcSIRt65J3Win92ni5OXX87zE-ve/s1600/screenshot.23.jpg)
3) Function
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDGyPiBXtZBaPYIoI8uF9UX4i0ZTAgZjVTq4tyHEgpxvUl45SugDsLQmcUCudIOOgz07y5NxFS_KzRuXsardBYrOxOChXXsWCizT1OsOMebAqgIWYG5rf_l0HUVNdB5JY9dPHtc0CAWvIm/s400/screenshot.24.jpg)
- The function node uses JavaScript code to process the payload coming from the previous node weather insights.
- Editing the node, the conditional statements (if ... else) are based on the Colour Index Scale provided by the United States Environmental Protection Agency.
- Also, when an "off" payload is injected the Sense Hat LED is turned off (we''ll see in next nodes):
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2LzJdHMmyxkavPJFqhND21HZjZmiNm3MpAcK13pWOMjDw9W3YrNA1bCxOzwmh2v6pii0QnciJQXzjGPgY5g1DI-REQLouqvvjP2AbKGFlXnKlnalJLQbOZtZ3pYGnKJAVzEh3U6lHYBxQ/s1600/screenshot.25.jpg)
https://www.epa.gov/sunsafety/uv-index-scale-1
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA83LqOMMTnPPfgcEm49QYpb8IvYEE_usyBdzjCPpd-qMY_8XweSwjAk2Jalf8no_lWM6ZVOt2Z7VNXBy6Ds1Dz4aHZPeRC3t_wOXwuffR0ZWKJcWkuBTi5RSzR7ADR79mVS37JtNMM_7B/s1600/screenshot.26.jpg)
4) Sense Hat
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLL7N2GCMQkGbdolwnd6NcIp0x-Cb6Espi48B7tpDpUv0pCc418Yn9IBwi9wMA3Vq7jz1Wyni0fvVVZiXJU6J1MuHKLDOsT4C8xX4Pd6lB9fu0MFBsj4f3Ky2vusRwhsJ35SvatYL6TeUg/s400/screenshot.27.jpg)
- This node corresponds to the Sense Hat module, and no special configuration is needed aside from giving a name (LED, because its color varies according to the UV Index):
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQMQTG-d93lIDuFXvzvI-G0rRnXlRlvBuAzqrsBg4OoOaUvytyT1Kk81GLZjkqpbkFwWQ9go4E2zISmETGMgEz1o8VZ9ExBKk16N0zJjBwwWJEqzxat91CQHYNPaCAenogoim7WJ3r4Ii/s1600/screenshot.28.jpg)
5) Debug
- The Debug module displays the output obtained from the function and the weather insights nodes:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqeuEPWCE-Sogpu-0_oSI7KX8fvkBmHKR3bb6kRZn8Ep9GpWpdqweh7LnrrI-ccRvE41fkhy0ZbFiOg2qKyNX6aUM0qr7rZX6dh34qy8-MYBSNK8Jshbypmq-cIVfeC7-WsZ8HJ7psDQRk/s400/screenshot.29.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9m8YjM0EzlWE8m4qglq_RFgujoixSayHDKKao8cp5dXUDgXlL7kPPoYwidXXvtCvBgs9_rLg0PbTvEVrWdms0LE-QzXUk8UVveApIBXAQrFq3nAw7i_H1g1CqqM8RMkPC0XK8AArYtd0o/s1600/screenshot.31.jpg)
6) Inject
- The last node injects the string "off" to turn off the Sense Hat LED node:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu9hWCI5n9SqSXTpciyZxd7hIU6uSWcHKuyZ8Sg8LGE4C44m3awjkod9V26Whr_dLNr_bMbPuWDwK89BX59Xq1eyzgxcIj3D7Go50dx6ZoYvFLPmiUM04bqwfD7ws908j9uX_Dm6o37GCl/s400/screenshot.32.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA9NEco5YOJtNNb1kUVmYk4B4TqLMKJ2L9u0TCGEEkpuXp0LvW8-SYFt2rhr8rp70T6ttS-P41kv7NHIZFiIsua0JwrQxWMWGPPOF42CqW67UtJWgVJrEs-uXVQqwj67sr_jtWJfjV22m_/s1600/screenshot.33.jpg)
3 - Testing the system
- Deploying the flow:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_9YaO78I8BWd_ulgXq9Z5EybiIZ8v8NJT0Qc8nrRaRNnIi2Fzj1bwTJw0NN3TjG9gSuwi2WnSng2FXy64hk9Je8rDaPcjTh3g-ZddaSL4COanr5rYyChqoHecrKqGE4rP411h4IC3wenn/s400/screenshot.34.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2b4FgdgoW47LdrNh5iOrULkEJZMXmxMjGzpDaZ4KYHbcNT02WBNGvxUgeaMMElOh0FzOrm4FZKT3KmZoSvy5rjysWJnIjOQ1At9H2c3HXUAdq-28BqEtZJbS8gZGo5Vk5yFDbgU4Dxbgn/s1600/screenshot.35.jpg)
- Starting the MyGeoLocation node:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8CCoLg-FCo4Jr40xpq7Fe0WmNZH9iYW40wL2rPnc2kTTi9HzDMVTOw-NmDfeCdYbKWx3I1pqaEkzFsq_96oCESdedLxScRyeCJOTyplSGX47pVVqwz-7woRDtqbEpoRx_aLfIhH3Cc_0t/s400/screenshot.55.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXVtlN4tNQNEPJGFYg3KmFZVxt79xyUqs-NyUpm9aXRmoUZJsRpc8AtiRCubYAUc2jgn2QcqWAwLxRYmpzobymLCb2nFeNkd0cfuhWULpWp2b0mR774LVZO2WJhvVcEBupCEAyGH0BE0b7/s400/screenshot.54.jpg)
- The flow starts working:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO85e_veyevMxzMLXEB3zPSQFERTTeyszRovoxNegT5PhUNO6yApsZLoMbhR_kcjay5ZAtvTmigI8fUMIUzTRpLv7ODQyFYljxmCj-ngXrRZtF2fA81PIV5NRsNUCXWbAXxiJ7qX9lCR3r/s1600/screenshot.36.jpg)
- The LED turns on RED because at the time of the test the UV Index at New York City is closed to 8:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjL03ZG8JiNNWNpN4R6dF-ZyC8vCi-ZqIQJSMdRT7pfAzS-AyOC-1TI9RED-W2bhILX7-jMMON4L16NNBr7oDdf09ynQ6W-MNPYf_KTp5WVMiENSJWcFV_ji7-Kv-rCPoJuetp1jQ486vH/s640/Photo+Aug+17%252C+1+07+02+PM.jpg)
- The Debug tab displays the RED value and the associated New York City's geolocation:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgw9EEuyIilPcgCewnTGXPECmx4FoZ_6gEax7Ud2luaBlP8PbI-yzymFpgpOq4fDeb31m7pdAjLgTv6H425bR1M-QPhQx5oLNAQ_DnFPzwdT5TWhCRqXxqg6fcSEXm4ttKxOEdn-5Nrci/s400/screenshot.50.jpg)
- To check that the test is correct let's consult another UV Index source for New York City:
http://legacy.weather.weatherbug.com
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-T0p7csI2Ml4qm7LuXouvFiBuQrjCzH-HDxQ7G5KXTyHShPdb4Wb6UmdM2MjN52jipjS0DWdxpLcWW4WszUtZOecxNHmNRXS68f1QGHBVjGB5uUHPqE7c2Ml36Ml8lh1dteZfgr0Id2Ts/s400/screenshot.59.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTp_rs1A9sOyTUNh7pV9NPK100z8BF6CdQqR4HJcU1KEbCIRRn7kS6RdVW5RVP8DQ7JyXJvlvj4CiS26D8xpFQz6r0uK85OoRTqptWZo8LCWLNPjUftFjdiuOnPyMGfcxuz-UsNVfq5Pr/s1600/screenshot.58.jpg)
- Finally the node can be turn off:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyW0ZHEyFOK0ajht9WzvXPpOWII-uSDZ3swJVKkXhmtlqVJjkBxiKqvyx985R_35Momk3tZp1kflgH0_TCo1xJ9M-CjKUXNj2nfQ9_qkzrZlAsiLy4qnTJOoQSnxH-wMSB99yZTTxQUq4t/s400/screenshot.52.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheKrW0r3QttpnwK2jZE-kjezs0D5D2dY6wT6rxKsL4jGRuESqPbILTPPylFd20kf0-QvKSdsPyS6nnqCb2V29qnombTX0TjKIgPZXaoV8Sw2Jdb_QblfVKprKFS-8yiCsZjF8qSdceF-wB/s400/screenshot.51.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6i2jpeT1Fp2ojcbQ44TMaLXdUVzBdaeXcg6Snf8nd_YsHmpQ_iWZyijlcGEbtfDKp7666qzv8ilUu9d-YaKAg9iuODIy5dm2bAzqWkFV7OmbmBshTHOYquowEs6SmlepYXmt37B1hphvx/s640/Photo+Aug+17%252C+1+08+42+PM.jpg)