<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title type="text" xml:lang="en">Diogo Gomes Blog</title>
 <generator uri="http://jekyllrb.com/">Jekyll</generator>
 <icon>https://diogogomes.com/images/dgomes.ico</icon>
 <link type="application/atom+xml" href="https://diogogomes.com/atom.xml" rel="self"/>
 <link type="text" href="https://diogogomes.com" rel="alternate"/>
 <updated>2025-02-09T14:04:24+00:00</updated>
 <id>diogogomes.com</id>
 <author>
   <name>Diogo Gomes</name>
   <uri>diogogomes.com</uri>
 </author>

 
 <entry>
   <title>How I Automate my house</title>
   <link href="https://diogogomes.com/2017/12/04/home-automation/index.html"/>
   <published>2017-12-04T12:00:00+00:00</published>
   <id>https://diogogomes.com/2017/12/04/home-automation/home-automation</id>
   <content type="html">&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I’ve always been interested in making all things smart through the use of cheap electronics and computers, moving all the “brains” from expensive hardware to hopefully Open Source Software. Today you can buy really cheap sensors on the internet and modify them to fit your purposes thanks to the numerous tutorials you can find online in great websites such as &lt;a href=&quot;http://www.instructables.com&quot;&gt;Instructables&lt;/a&gt; (&lt;a href=&quot;http://www.instructables.com/id/4-WiFi-Door-Alarm-Using-a-ESP8266-IoT/?ALLSTEPS&quot;&gt;here&lt;/a&gt; is one of my favorites).
Since 2012 I’ve been building up stuff for my home, first very basic, today much more complex. Since people keep asking me why and how I do this stuff, I figured I should just write about it in this extended blog post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;: I have a huge number of contraptions in my house to make it “smart”.&lt;/p&gt;

&lt;h2 id=&quot;version-10&quot;&gt;Version 1.0&lt;/h2&gt;

&lt;p&gt;Making my house smart was obviously one of the first objectives. I first started with a &lt;a href=&quot;https://www.aliexpress.com/popular/rf-socket.html&quot;&gt;simple RF plug socket&lt;/a&gt; to turn on the kitchen lights at dusk and off when everyone would have gone to bed. You can get one of these online or at any local DIY store. To control it, I built a RF gateway using an Arduino and very few electronic components (RF gateway alone, deserves a post of it’s own). Connected to an &lt;a href=&quot;http://diogogomes.com/2010/11/10/low-power-home-server/index.html&quot;&gt;SBC&lt;/a&gt; that consumes less than 7W I could control any plug in the house either through a webpage or a command-line, furthermore I could use the internet to add knowledge to my system, such as knowing at which time the sunset takes place each day.&lt;/p&gt;

&lt;h3 id=&quot;cheap-rf-devices&quot;&gt;Cheap RF devices&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/images/2017/12/RF_GW.jpg&quot;&gt;&lt;img src=&quot;https://diogogomes.com/images/2017/12/RF_GW.jpg&quot; alt=&quot;RF_GW&quot; width=&quot;480px&quot; class=&quot;alignright&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next move, was getting notifications of when someone entered the house. Again, cheap sensor bought online, and added a receiver to my existing RF gateway. These sensors are lousy for security purposes, but to know at which time everyone leaves/enters it is perfect. Having an RF receiver, it was easy to read information from yet another inexpensive devices: a weather station. The weather station could now help me decide when to sprinkle my balcony garden. About here I decided to complicate a bit more and decided I wanted a fully automated garden (better read about it in &lt;a href=&quot;http://diogogomes.com/2014/10/04/greenhouse/&quot;&gt;another post&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;mqttwarn&quot;&gt;MQTTwarn&lt;/h3&gt;

&lt;p&gt;I did not built everything over the weekend, this was about the long run and having an hobby. I was making all things by my self and writing all the code, when suddenly I realized my wife was also enjoying the smarter house and friends were asking me about how to do the same. At this time I figured my system should become more professional and started evaluating existing projects. My first approach was to use &lt;a href=&quot;https://github.com/jpmens/mqttwarn&quot;&gt;MQTTwarn&lt;/a&gt;. All my sensors were already publishing to MQTT so it made a lot of sense to port my automation rules to MQTTwarn. The project is great with lots of plugins for various services, and in small use case scenarios it completely fits the purpose.&lt;/p&gt;

&lt;p&gt;Nonetheless I was at that time limited to wireless devices, and to the lack of control points in the house (for lights, window covers, heating).&lt;/p&gt;

&lt;h2 id=&quot;version-20&quot;&gt;Version 2.0&lt;/h2&gt;

&lt;p&gt;When I bought my current house, bricks were still being laid. That gave me the opportunity to do some changes to the house project and have the house domotics done “my way”.&lt;/p&gt;

&lt;p&gt;From the previous house and from the previous DIY system I learned what I really wanted to have and more importantly what I found most relevant. This was important to keep costs down, as I planned for an incremental upgrade of house controls.&lt;/p&gt;

&lt;h3 id=&quot;wireless-vs-wired&quot;&gt;Wireless vs Wired&lt;/h3&gt;
&lt;p&gt;First decision was to whether have a wired or wireless solution. Z-wave has become quite popular but wireless sensors require power, batteries are a bothersome, so cables became inevitable. The other very popular solution is KNX, which pretty much has become the standard in domotics. KNX is great is many aspects except the price and hack-ability (remember this is still my hobby). I really like the ability to control everything and to be able to change everything to my needs, so I opted to have a centralized control using an Arduino based PLC from &lt;a href=&quot;https://www.industrialshields.com/shop/m-duino-plc-arduino-38r-ios-rele-analog-digital-plus/&quot;&gt;Industrial Shields&lt;/a&gt;. I contracted an extra switch board in the space next to the energy and communications switch boards which would have pipes to everywhere in the house, enabling me in the future to either run extra cables or exchange the existing ones by new ones (future proofing). Also for future proof reasons I ran Cat6E cable everywhere (even if the sensor on the other side uses just 2 wires), having the cable in place saves you lots of work in the future.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/2017/12/CATI.jpg&quot;&gt;&lt;img src=&quot;https://diogogomes.com/images/2017/12/CATI.jpg&quot; alt=&quot;CATI&quot; width=&quot;480px&quot; class=&quot;alignleft&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the extra board I also placed a Raspberry Pi 3 to control everything, this was an upgrade from my previous system and got a perfect enclosure to place it in the board hanging from a DIN rail. The Raspberry has a nRF24 HAT for connecting to wireless sensors in the future. Since I was not putting to waste all my previous setup, I connected my existing RF gateway to the Raspberry.&lt;/p&gt;

&lt;h3 id=&quot;lights-on&quot;&gt;Lights On&lt;/h3&gt;
&lt;p&gt;All light switches in the house are push buttons that toggle Impulse Relays, this means that pressing the button on the wall or through the PLC will have the same effect. This choice comes with a major disadvantage, I’m not aware if a light is ON or OFF, as I don’t keep track of the wall switch pushes. On the other hand the major advantage is that my PLC can be offline and all the light switches still work (I’m not dependent of the domotics system to work the lights).&lt;/p&gt;

&lt;p&gt;For the living room I wanted to have a bit more control, such as the possibility of dimming individual head lights. Here I decided with the industry standard: DALI. I bought a &lt;a href=&quot;http://hasseb.fi/shop2/index.php?route=product/product&amp;amp;product_id=50&quot;&gt;USB based controller&lt;/a&gt; that I’ve connected to the Raspberry Pi 3. And the lights are controlled through a &lt;a href=&quot;https://www.osram.com/ds/ecat/HALOTRONIC%20HTi-Electronic%20transformers%20for%20halogen%20lamps-Electronic%20Control%20Gears%20for%20traditional%20lighting-Electronics/com/en/GPS01_1139190/PP_EUROPE_Europe_eCat/&quot;&gt;OSRAM DALI controller&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;window-covers&quot;&gt;Window Covers&lt;/h3&gt;

&lt;p&gt;The window covers are motorized, again each window has two push buttons (up/down) and the PLC controls two relays (up/down) per window. The same as the lights applies here, I don’t know the position of the covers, but in this case I can send them all up or down (by pressing up/down for a long period of time) to reset their state to a known one.&lt;/p&gt;

&lt;h3 id=&quot;irrigation-system&quot;&gt;Irrigation System&lt;/h3&gt;

&lt;p&gt;My new &lt;a href=&quot;https://www.hunterindustries.com/pt/product/controladores/eco-logic&quot;&gt;irrigation system&lt;/a&gt; comes with 2 poles to connect a trivial rain sensor (NO/NC), so I hooked those poles to the PLC and can control when the irrigation systems should work. The irrigation system runs a normal schedule and from the PLC, by simulating the rain sensor, I can disable the sprinkles whenever I find the need (already rained, raining, will rain shortly).&lt;/p&gt;

&lt;h3 id=&quot;scaling&quot;&gt;Scaling&lt;/h3&gt;

&lt;p&gt;If you do the math, I’m using too many ports for a single PLC. I splited my system between two PLCs by placing a &lt;a href=&quot;https://www.industrialshields.com/shop/plc-arduino-ardbox-18ios-rele/&quot;&gt;second smaller and more basic PLC&lt;/a&gt; in the second floor switchboard and connected the two using a RS232 interface over Cat6E cable.&lt;/p&gt;

&lt;h3 id=&quot;cctv&quot;&gt;CCTV&lt;/h3&gt;

&lt;p&gt;Having run Cat6E all over the place, I installed an IP based CCTV system with a PoE switch. This system is more expensive that an analog one, but image quality is much better and PoE avoids the need to have several power adapters around. I’m using relative cheap cameras from HIKVISION model DS-2CD2020F-I. Since I distrust these equipments, they have a VLAN of their own and cannot communicate to the internet.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/2017/12/POWER%20CABINET.JPG&quot;&gt;&lt;img src=&quot;https://diogogomes.com/images/2017/12/POWER%20CABINET.JPG&quot; alt=&quot;POWER CABINET&quot; width=&quot;480px&quot; class=&quot;alignright&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;energy-monitoring&quot;&gt;Energy Monitoring&lt;/h3&gt;

&lt;p&gt;Another important sensor is Energy monitoring. Since I’m all for Open Source and Hardware, I went with the &lt;a href=&quot;https://wiki.openenergymonitor.org/index.php/EmonTx_V3.4&quot;&gt;emonTx V3&lt;/a&gt; with a catch: Since I run cables everywhere I do not need the wireless transmitter and have replaced it with a serial interface that connects to my PLC. I have two clips: One measuring the total of my energy consumption (measured in the cable that comes from the power utility meter) and a second one measuring my heat-pump consumption (this equipment accounts for most of the house energy consumption, so I like to keep a close eye on it), in the future I plan to monitor a Photovoltaic installation (production) and the EV charger. You can find my fork of the firmware on &lt;a href=&quot;https://github.com/dgomes/emonTxV3_4_SoftwareSerial&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;heating-monitoring&quot;&gt;Heating Monitoring&lt;/h3&gt;

&lt;p&gt;In the basement I have two large water tanks, one for the Underfloor heating (Piso Radiante Hidraulico - PRH) and another for sanitary hot waters (Águas Quentes Sanitárias - AQS). PRH tank is heated directly by a Heat-Pump and the AQS by Solar thermal collectors (with the heat-pump supporting when there is no sun). There were empty probe slots in the both deposits so I decided to datalog the temperatures and get a better idea of my energy expenses and savings. I’ve used inexpensive ds18b20 probes connected to an Arduino Yun. I could have gone for a cheaper solution, but since I already owned the Yun it was a no brainer. The Yun also monitors the underfloor heating circulation pump so I can know when the system has been used, using an LDR strapped tight to one the power leds of the pump.&lt;/p&gt;

&lt;h3 id=&quot;eventsmotion-detection&quot;&gt;Events/Motion detection&lt;/h3&gt;

&lt;p&gt;For security purposes I currently have a regular alarm system connected to a dispatch central. This system is closed sourced, so no tinkering for the duration of the contract. In order to detect when people enter/leave the house or the occupation of the rooms, I’ve installed several wireless sensors capable of transmitting on 433Mhz band.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.gearbest.com/alarm-systems/pp_659761.html&quot;&gt;Door sensors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ebay.co.uk/itm/Home-Wireless-Rolling-Door-Window-Magnetic-Contact-Sensor-Detector-Alarm-System-/142180001738?hash=item211a96a7ca&quot;&gt;Garage door sensor&lt;/a&gt; connected to an Arduino with an RF433 transmitter and used as a switch.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pt.aliexpress.com/item/pir-detector-wireless-433MHz-pir-motion-sensor-for-security-alarm-system/32450698029.html?spm=a2g03.search0104.3.112.QWoalG&amp;amp;ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10344_10068_10345_10342_10343_10340_10341_10541_10562_10084_10083_10304_10307_10301_10539_5080015_10312_10059_10313_10314_10534_10533_100031_10604_10603_10103_10594_10557_10596_10595_10142_10107,searchweb201603_14,ppcSwitch_2&amp;amp;algo_expid=85d00eed-6829-4517-bb91-7b2c75735510-13&amp;amp;algo_pvid=85d00eed-6829-4517-bb91-7b2c75735510&amp;amp;rmStoreLevelAB=4&quot;&gt;Motion detectors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these sensors can be easily integrated thanks to the RF gateway.&lt;/p&gt;

&lt;h3 id=&quot;home-assistant&quot;&gt;Home Assistant&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://diogogomes.com/images/2017/12/hass.png&quot; alt=&quot;Home Assistant&quot; width=&quot;192px&quot; class=&quot;alignright&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Enough talking about hardware, how do I control everything? MQTTwarn was great, but as the new system became more complex a new control software was in need. I decided to stick with Python, so between &lt;a href=&quot;https://www.openhab.org&quot;&gt;OpenHAB&lt;/a&gt;, &lt;a href=&quot;https://domoticz.com&quot;&gt;Domoticz&lt;/a&gt; and &lt;a href=&quot;https://home-assistant.io&quot;&gt;Home Assistant&lt;/a&gt; (the 3 main contendants) the choice was obvious. Home Assistant is also the newest kid on the block, which translates into a more modern software stack and user interface.
I installed Home Assistant (HA) in the raspberry pi 3 that lies in the extra switch board, enabling direct access to the RF gateway (through serial interface) and to the DALI controller (also USB/Serial). 
Connecting HA to my house is done mostly through MQTT. I kept the mosquitto server from version 1.0 and connected most of the new hardware through MQTT: PLC relays’s, Heating Monitoring and a &lt;a href=&quot;https://www.itead.cc/wiki/Sonoff_RF_Bridge_433&quot;&gt;Sonoff RF Bridge 433&lt;/a&gt;. The Sonoff RF bridge is used in addition to the DIY RF Gateway, in order to increase range.&lt;/p&gt;

&lt;h3 id=&quot;owntracks&quot;&gt;Owntracks&lt;/h3&gt;

&lt;p&gt;Many of the most interesting automations are related to localization of the home inhabitants (eg: light the porch when someone arrives home). HA fully integrates with &lt;a href=&quot;http://owntracks.org&quot;&gt;Owntracks&lt;/a&gt;, a platform much similar to &lt;a href=&quot;https://itunes.apple.com/us/app/find-my-friends/id466122094&quot;&gt;iOS Find my Friends&lt;/a&gt; that can track mobile devices and share location information. Owntracks has both an iOS and an Android version and requires a MQTT Broker which in my case is hosted on my VPS for security and reliability reasons.&lt;/p&gt;

&lt;h3 id=&quot;databasegraphing&quot;&gt;Database/Graphing&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/images/2017/12/HA_Grafana.png&quot;&gt;&lt;img src=&quot;https://diogogomes.com/images/2017/12/HA_Grafana.png&quot; alt=&quot;HA_Grafana&quot; width=&quot;480px&quot; class=&quot;alignright&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This system generates loads of information which I, as a data-scientist, like to keep around for future analysis. HA by default uses an SQLite database which is quite inappropriate to be run on the Raspberry Pi 3. To store everything I’m using a virtual machine inside my QNAP NAS. In this device I’ve setup MySQL as an alternative backend to HA, which keeps 7 days of history at most. &lt;a href=&quot;https://github.com/influxdata/influxdb&quot;&gt;InfluxDB&lt;/a&gt;, a time-series database that tracks all my history of only a specific set of sensors (energy, climate) and &lt;a href=&quot;http://grafana.com&quot;&gt;Grafana&lt;/a&gt; a time series analytics platform that can read all the history from influxdb.&lt;/p&gt;

&lt;h3 id=&quot;exposing&quot;&gt;Exposing&lt;/h3&gt;

&lt;p&gt;Exposing HA to the outside is dangerous, if you really need to do it, take has many security measurements as possible. In my current setup I expose only the Web interfaces of &lt;a href=&quot;http://grafana.com&quot;&gt;Grafana&lt;/a&gt; and HA through a NGINX reverse proxy. NGINX serves both websites through an SSL connection (thank you &lt;a href=&quot;https://letsencrypt.org&quot;&gt;letsencrypt&lt;/a&gt;), protected with HTTP Auth and IP filter rules (limiting outside access to my work network). At home HA can be easily accessed through the home network.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Open your garage door using Bluetooth LE (BLE)</title>
   <link href="https://diogogomes.com/2015/10/03/garagem-ble/index.html"/>
   <published>2015-10-03T19:00:00+01:00</published>
   <id>https://diogogomes.com/2015/10/03/garagem-ble/garagem-ble</id>
   <content type="html">&lt;p&gt;This was one of those projects I had kept in the backlog for too long, but finally got the time and drive to finish it up.&lt;/p&gt;

&lt;p&gt;The problem was very simple and common. In the building I share, we have a common garage door which can be open/closed through a (very expensive) radio remote control. Each apartment has a single remote control and any now or then one of them gets lost.&lt;/p&gt;

&lt;p&gt;Since everyone nowadays owns a smartphone and Bluetooth LE (BLE) has become standard, I decided to create an appliance with a relay that can trigger the garage opening. The relay can trigger either the motor directly or (in my case) “press” the button on a radio remote control.&lt;/p&gt;

&lt;h2 id=&quot;how-to-build&quot;&gt;How to build&lt;/h2&gt;

&lt;p&gt;The system consist of 2 parts: hardware that is placed near the garage door, and an Android application installed on the smartphone. Let’s follow the next steps.&lt;/p&gt;

&lt;h3 id=&quot;bom-bill-of-materials&quot;&gt;BOM (Bill Of Materials)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://redbearlab.com/blenano/&quot;&gt;BLE Nano&lt;/a&gt; with respective MK20 board (for programming purposes only)&lt;/li&gt;
  &lt;li&gt;3V Relay (bought on eBay)&lt;/li&gt;
  &lt;li&gt;Power adapter (something on the range of 3v to 12v with 1A) or 3.7V battery (e.g. 18650)&lt;/li&gt;
  &lt;li&gt;perforated board&lt;/li&gt;
  &lt;li&gt;female header socket&lt;/li&gt;
  &lt;li&gt;wires&lt;/li&gt;
  &lt;li&gt;box&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I choose the BLE Nano since it is has a very small package size and punch lots of processing power thanks to the Nordic nRF51822 (an ARM Cortex-M0 SoC which includes the BLE radio).&lt;/p&gt;

&lt;h3 id=&quot;build-the-hardware&quot;&gt;Build the hardware&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2015/10/DSC_0311.JPG&quot; alt=&quot;Appliance&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Building is very straight forward. Start by soldering the header socket to the perforated board (comes very handy if you need to re-flash the BLE Nano later). Then wire power and the relay.&lt;/p&gt;

&lt;p&gt;Power:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;BLE Nano&lt;/th&gt;
      &lt;th&gt;Power Source&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;VIN&lt;/td&gt;
      &lt;td&gt;3v - 12v&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;GND&lt;/td&gt;
      &lt;td&gt;GND&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Relay:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;BLE Nano&lt;/th&gt;
      &lt;th&gt;Relay&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;VDD&lt;/td&gt;
      &lt;td&gt;VCC&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;GND&lt;/td&gt;
      &lt;td&gt;GND&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;RTS / P0_8&lt;/td&gt;
      &lt;td&gt;IN&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;On your radio remote control, identify on the push button which two points need to be short circuited to trigger the radio. Solder wires to those points and connect the wires to the relay.&lt;/p&gt;

&lt;p&gt;Fit everything inside a nice box 😊&lt;/p&gt;

&lt;h3 id=&quot;programming&quot;&gt;Programming&lt;/h3&gt;

&lt;p&gt;Get the source code from &lt;a href=&quot;https://developer.mbed.org/users/dgomes/code/Garagem/&quot;&gt;https://developer.mbed.org/users/dgomes/code/Garagem/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compile and upload it to your BLE nano using the MK20 board.&lt;/p&gt;

&lt;p&gt;(don’t forget to fit the BLE nano back in the box 😉)&lt;/p&gt;

&lt;h3 id=&quot;the-mobile-app&quot;&gt;The mobile app&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2015/10/Screenshot_garagemBLE.png&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The source code to the mobile application is available on &lt;a href=&quot;https://github.com/dgomes/garagemBLE&quot;&gt;https://github.com/dgomes/garagemBLE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will also be able to find the latest version on Google Play.&lt;/p&gt;

&lt;h3 id=&quot;administration&quot;&gt;Administration&lt;/h3&gt;

&lt;p&gt;All communications between your smartphone and relay hardware are kept safe through an AES128 encrypted message with a shared password. This shared password is configured to the hardware on it’s first use, and will remain so until it loses power (will be reprogrammed next time someone accesses the garage). You can share the password with anyone you wish to grant access to the garage.&lt;/p&gt;

&lt;p&gt;That’s it!&lt;/p&gt;

&lt;p&gt;Enjoy your safe Bluetooth LE remote control!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Greenhouse</title>
   <link href="https://diogogomes.com/2014/10/04/greenhouse/index.html"/>
   <published>2014-10-04T03:20:51+01:00</published>
   <id>https://diogogomes.com/2014/10/04/greenhouse/greenhouse</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/greenhouse.jpg&quot; alt=&quot;Greenhouse&quot; class=&quot;alignleft&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is my Greenhouse, here I grow basil, thyme, coriander, parsley and other aromatic herbs which I enjoy using in my dishes. Having a greenhouse in my balcony is great, I have fresh herbs all year around. Problem being that I need to keep a constant look over it, checking humidity levels and watering.&lt;/p&gt;

&lt;p&gt;There are several projects online by fellow makers in how to automate a greenhouse, monitoring humidity levels and triggering watering (either through a water pump or valve attached to a tap). These are all great, but lack an important feature: you can’t monitor the levels remotely, nor can you trigger watering on-demand.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/apollo_mote.jpg&quot; alt=&quot;Apollo Mote&quot; class=&quot;alignright&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In my research work at Instituto de Telecomunicações, I recently got to do a &lt;a href=&quot;http://atnog.av.it.pt/projects/apollo&quot;&gt;project with Escola Superior Agronomia de Coimbra (ESAC)&lt;/a&gt; in which we setup several sensors in one of their greenhouses and provided monitoring and actuation capabilities to the agronomic engineers there. Project was quite successfully, and immediately decided to build a similar setup at home.&lt;/p&gt;

&lt;p&gt;So lets go through the &lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_of_materials&quot;&gt;BOM&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Greenhouse (&lt;a href=&quot;http://www.aki.pt/jardim/equipamento-de-jardim/proteger-e-cuidar-das-plantas/protecao-da-cultura/estufa-pequena-de-jardim/EstufadeJardim-P11058.aspx#.VDCHF76b2p0&quot;&gt;AKI&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Plants (&lt;a href=&quot;http://www.ikea.com/gb/en/catalog/products/80270168/&quot;&gt;IKEA FRÖER&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Cables and connectors (&lt;a href=&quot;http://www.ikea.com/gb/en/catalog/products/00119419/&quot;&gt;scavenged IKEA DIODE&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Arduino (&lt;a href=&quot;http://www.dx.com/p/elecfreaks-freaduino-uno-rev1-8-for-arduino-340126&quot;&gt;Freaduino&lt;/a&gt; - operates at 3.3v and its easy to plug sensors)&lt;/li&gt;
  &lt;li&gt;Valve (&lt;a href=&quot;http://www.dx.com/p/electric-solenoid-valve-for-water-air-n-c-12v-dc-1-2-normally-closed-golden-white-246864#.VDCIY76b2p0&quot;&gt;Electric Solenoid Valve for Water Air&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Drip Watering Irrigation Kit (&lt;a href=&quot;http://www.amazon.co.uk/gp/product/B003IV033C/ref=oh_aui_detailpage_o01_s00?ie=UTF8&amp;amp;psc=1&quot;&gt;Am-tech&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Relay Module (&lt;a href=&quot;http://www.dx.com/p/arduino-5v-relay-module-blue-black-121354&quot;&gt;5V Relay Module for Arduino&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Humidity Sensor (&lt;a href=&quot;http://www.dx.com/p/soil-hygrometer-humidity-detection-moisture-water-sensor-module-light-blue-339636#.VDCJl76b2p0&quot;&gt;Soil Hygrometer&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Temperature Sensor (&lt;a href=&quot;http://www.dx.com/p/ds18b20-digital-temperature-sensor-module-for-arduino-55-125-c-135047#.VDCJUL6b2p0&quot;&gt;Keyes DS18B20 Digital Temperature Sensor&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Light Sensor(&lt;a href=&quot;http://www.dx.com/p/lgx-gl5516-diy-electronic-component-photoresistors-silver-10-pcs-262242#.VDCeEL6b2p0&quot;&gt;Photo Resistor&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Radio (&lt;a href=&quot;http://www.dx.com/p/nrf24l01-2-4ghz-wireless-transceiver-module-126467#.VDCKJL6b2p0&quot;&gt;NRF24L01+&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Plastic Storage Box (&lt;a href=&quot;http://encomendas.continente.pt/p/7692/caixa-arrumação-plástica&quot;&gt;Any will do&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Transistor (&lt;a href=&quot;http://www.dx.com/p/30v-npn-triode-power-transistor-package-transistor-black-10-pcs-302592#.VDCK_76b2p0&quot;&gt;BC548&lt;/a&gt; other will do)&lt;/li&gt;
  &lt;li&gt;1k Ω resistors (&lt;a href=&quot;http://www.ebay.com/itm/50-x-Resistors-1K-Ohms-OHM-1-4W-5-Carbon-Film-/260807469052?pt=LH_DefaultDomain_0&amp;amp;hash=item3cb95627fc&quot;&gt;Resistors&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;assorted cables (&lt;a href=&quot;http://www.dx.com/p/arduino-compatible-breadboard-jumper-wires-8-20cm-68-cable-pack-142221#.VDCLmr6b2p0&quot;&gt;Breadboard Jumper Wires&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;prototyping PCB (&lt;a href=&quot;http://www.dx.com/p/glass-fiber-prototyping-pcb-universal-board-yellow-10-pack-143805#.VDCLa76b2p0&quot;&gt;Glass Fiber Prototyping PCB Universal Board - Yellow &lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Electric cable (scavenged)&lt;/li&gt;
  &lt;li&gt;CD-ROM cable (scavenged) - These are just wonderful to connect sensors! :)&lt;/li&gt;
  &lt;li&gt;Sockets - used to simplify the connection of cables to the transistor (scavenged)&lt;/li&gt;
  &lt;li&gt;Leftovers from a 3D printed Arduino case :) (you actually don’t need this part!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next step, bring everything together. I’ve create a diagram using &lt;a href=&quot;http://fritzing.org&quot;&gt;fritzing&lt;/a&gt;, some parts do not match my BOM but you can clearly get a picture of what I have:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.diogogomes.com/images/2014/10/fritzing_breadboard.png&quot;&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/fritzing_breadboard_small.png&quot; alt=&quot;GreenHouse connections&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;End result should look something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/system.jpg&quot; alt=&quot;Fully assembled&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Some detail on the humidity sensors power control using a transistor:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/humidity_switch.jpg&quot; alt=&quot;Humidity Sensors Power Switch&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since the solenoid valve works with 12 volts, I used an external 12v power converter and put the relay in between:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/relay.jpg&quot; alt=&quot;Relay Switch for the solenoid valve&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Here is my solenoid valve attached to the tap and to the dripping pipe:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/solenoid.jpg&quot; alt=&quot;Solenoid valve attached to the tap&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Fitting everything inside the plastic box:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/inside_box.jpg&quot; alt=&quot;Inside box&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ready to go:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.diogogomes.com/images/2014/10/fully_assembled.jpg&quot; alt=&quot;Completed&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m currently powering the Arduino through a 10000mAh battery bank seen on top of the box which lasts for almost a full week. In the future I’ll probably buy a solar panel.&lt;/p&gt;

&lt;p&gt;Next step, we need to program the Arduino. I’ve got some dependencies:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://code.google.com/p/narcoleptic/&quot;&gt;Narcoleptic&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/markruys/arduino-DHT/&quot;&gt;DHT&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.pjrc.com/teensy/td_libs_OneWire.html&quot;&gt;OneWire&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/TMRh20/RF24/&quot;&gt;RF24&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Since we need to define a protocol over the radio link, I’ve create a separate file (GreenhouseProtocol.h) which we will use on the other side to monitor/control the greenhouse.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/dgomes/7fedf94026761bfa973b.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;Next step? Remote controlling the Greenhouse from afar. You already have everything you need to do this (GreenhouseProtocol.h), but I’ll be doing another post in the future about my RF Gateway that enables me not only to control the Greenhouse but also several other appliances in my house.&lt;/p&gt;

&lt;h1 id=&quot;this-is-a-work-in-progress-post&quot;&gt;This is a &lt;em&gt;work in progress&lt;/em&gt; post!&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Drop your questions and comments below and I’ll work towards enhancing this post&lt;/strong&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Lisbon (Mini) Maker Faire</title>
   <link href="https://diogogomes.com/2014/09/21/lisbon-makerfaire/index.html"/>
   <published>2014-09-21T21:25:51+01:00</published>
   <id>https://diogogomes.com/2014/09/21/lisbon-makerfaire/lisbon-makerfaire</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://makerfairelisbon.com/&quot;&gt;&lt;img src=&quot;http://makerfairelisbon.com/assets/kit/Lisbon_MMF_logos_square_medium.png&quot; alt=&quot;&quot; /&gt;
&lt;/a&gt;
So this just happened :-)&lt;/p&gt;

&lt;p&gt;I just spent 2 wonderful days at the &lt;a href=&quot;http://www.pavconhecimento.pt/home/&quot;&gt;“Pavilhão do Conhecimento - Ciência Viva”&lt;/a&gt; with my best friend and colleague &lt;a href=&quot;http://www.joaobarraca.com/&quot;&gt;João Paulo Barraca&lt;/a&gt; showcasing a maker’s version of our work in M2M communications, and with my pals from &lt;a href=&quot;http://hackaveiro.org&quot;&gt;Hack’Aveiro&lt;/a&gt; who quickly put together a &lt;a href=&quot;https://github.com/hackaveiro&quot;&gt;web-badged&lt;/a&gt; created specially for this event.&lt;/p&gt;

&lt;p&gt;In order to show case what M2M communications are all about, we brought to the faire our very own motes and sensors that power our greenhouses and hydroponics systems, as well as a plant or two to gather everyones attention ;-)&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2014/09/makerfaire.jpg&quot; alt=&quot;M2M Communications @ 2014 Lisbon Maker Faire&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’ll create a post in the future with all the instructions on how to assemble a similar setup.&lt;/p&gt;

&lt;p&gt;The environment was extraordinary, makers from all over Portugal gathered to show and tell about their projects/ideas/visions. What started as &lt;em&gt;Mini&lt;/em&gt; event sure looked like a &lt;em&gt;Mega&lt;/em&gt; event!&lt;/p&gt;

&lt;p&gt;My compliments and thank you to all the organization at &lt;a href=&quot;http://www.sapo.pt&quot;&gt;SAPO&lt;/a&gt; and &lt;a href=&quot;http://www.pavconhecimento.pt/home/&quot;&gt;“Pavilhão do Conhecimento - Ciência Viva”&lt;/a&gt; who where the big responsibles for the success of the event.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>MeoCloud Music</title>
   <link href="https://diogogomes.com/2014/07/01/meocloud-music/index.html"/>
   <published>2014-07-01T19:25:51+01:00</published>
   <id>https://diogogomes.com/2014/07/01/meocloud-music/meocloud-music</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;http://jonasnuts.no.sapo.pt/O_que_é_o_Upload2Me%3F_–_Feedback_da_MEO_Cloud-20131120-091253.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Desde o lançamento do &lt;a href=&quot;http://meocloud.pt&quot;&gt;MeoCloud&lt;/a&gt; no &lt;a href=&quot;http://codebits.eu&quot;&gt;Codebits&lt;/a&gt; de 2012, que tenho acompanhado as diversas evoluções desde serviço de armazenamento online da PT.&lt;/p&gt;

&lt;p&gt;Como “pioneiro” tive o previlégio de uma quota muito generosa, que infelizmente não tenho usado muito devido aos efeitos de rede (poucos utilizadores MeoCloud quando comparados com o Dropbox por exemplo). No entanto, a rapidez do serviço é notória assim como a abertura do serviço a &lt;em&gt;3rd party developers&lt;/em&gt;, através de uma API muito semelhante à da Dropbox mas com mais uns &lt;em&gt;pózinhos&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Quando alguns meses atrás foi anunciado que o trafego para o MeoCloud não contava para os limites mensais de trafego móvel na rede M4O, surgiu-me logo a ideia de criar uma aplicação que me permitisse fazer “streaming” de música da cloud para o meu android.&lt;/p&gt;

&lt;p&gt;Tal aplicação resolve vários problemas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;espaço no telemóvel é limitado para ter toda a minha colecção de música.&lt;/li&gt;
  &lt;li&gt;tenho todos as músicas sempre disponíveis em qualquer dispositivo/lugar.&lt;/li&gt;
  &lt;li&gt;custo 0 (já que uma alternativa capaz de responder aos pontos anteriores seria o Spotify por exemplo)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É verdade que também existe o serviço Meo Music, mas não são os meus álbuns e há um custo pelo serviço.&lt;/p&gt;

&lt;p&gt;Assim comecei a desenvolver pelas noites dentro uma aplicação que capitaliza-se o serviço MeoCloud para poder ouvir música no meu Android.&lt;/p&gt;

&lt;p&gt;Acontece que a ideia não é assim tão disparatada e hoje na newsletter do MeoCloud é anunciada a futura disponibilização desta funcionalidade na próxima versão da aplicação MeoCloud para Android.&lt;/p&gt;

&lt;p&gt;Assim sendo, resolvi interromper o desenvolvimento (para o qual não tenho dedicado tempo algum nos últimos meses) e publicar o &lt;a href=&quot;https://github.com/dgomes/MyCloudMusic/&quot;&gt;código existente no github&lt;/a&gt; por forma a servir de exemplo a quem esteja interessado a utilizar as API’s do MeoCloud em ambiente Android.&lt;/p&gt;

&lt;p&gt;Já agora… se ainda não tem uma conta no MeoCloud click &lt;a href=&quot;https://meocloud.pt/?referral_code=XeOz0JAzpBhW7DpKmtcNZyTMl&quot;&gt;aqui&lt;/a&gt; ;)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Open Vidonn</title>
   <link href="https://diogogomes.com/2014/06/07/open-vidonn/index.html"/>
   <published>2014-06-07T21:30:00+01:00</published>
   <id>https://diogogomes.com/2014/06/07/open-vidonn/open-vidonn</id>
   <content type="html">&lt;p&gt;For some month’s now I’ve been using &lt;a href=&quot;http://www.moves-app.com&quot;&gt;Moves.app&lt;/a&gt; which was recently acquired by &lt;a href=&quot;http://facebook.com&quot;&gt;Facebook&lt;/a&gt;. &lt;em&gt;Moves&lt;/em&gt; allows me to track my daily activity through the use of my smartphone accelerometer and GPS. In the end of the day/week, I’m able to analyze how much exercise I did, as well as where I’ve been to… The last feature being the one which I would rather not disclose to Facebook. &lt;em&gt;Moves&lt;/em&gt; works great except for a tiny detail, that has become a big one: It eats up all the battery. I was &lt;a href=&quot;http://www.diogogomes.com/2014/04/02/ios-2-android&quot;&gt;still using my iPhone 4S&lt;/a&gt; when I started using moves, battery would drain before the end of the day. My &lt;a href=&quot;http://www.diogogomes.com/2014/04/02/ios-2-android&quot;&gt;Nexus 5&lt;/a&gt; is holding better, but still it’s taking a big hit.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Moves&lt;/em&gt; also got me interested in &lt;a href=&quot;http://quantifiedself.com&quot;&gt;Quantified Self&lt;/a&gt; and lead me to look into alternatives such as the &lt;a href=&quot;http://www.fitbit.com&quot;&gt;fitbit&lt;/a&gt; or &lt;a href=&quot;https://jawbone.com/up&quot;&gt;jawbone up&lt;/a&gt;.
These are basically pedometers that you can wear in your wrist next to your watch. They look very nice but are quite expensive for a pedometer.&lt;/p&gt;

&lt;p&gt;Then a few weeks ago I found the &lt;a href=&quot;http://www.vidonn.com/en/product.html&quot;&gt;Vidonn X5&lt;/a&gt; which I &lt;a href=&quot;http://www.dx.com/p/vidonn-x5-0-49-oled-ip67-bluetooth-v4-0-smart-wristband-bracelet-w-sports-sleep-tracking-black-280219?Utm_rid=53168884&amp;amp;Utm_source=affiliate&quot;&gt;purchased from dx.com&lt;/a&gt;. With a very attractive price, it features a pedometer and an OLED display which doubles as a watch. The Vidonn X5 has a single button which you can use to check your steps, calories and distance walked, as well as to enter in a special training mode which can track a subset of your day such as a run. 
The device is very small and light with a battery that can last for almost 4 days, the display is detachable from the bracelet in order to charge and synchronize with your PC (Haven’t found any version for the Mac).
There are nonetheless some issues with the Vidonn X5: under direct sun light it is impossible to read the OLED display making it useless, and steps taken? well lets just call it a rough estimate… Even soo it is a great device that can be used to put your week into perspective (when were you more active, are you being last today, etc).&lt;/p&gt;

&lt;p&gt;There are companion apps to the Vidonn X5 for both Android and iOS, but unfortunately I consider them being of poor quality.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.dx.com/p/vidonn-x5-0-49-oled-ip67-bluetooth-v4-0-smart-wristband-bracelet-w-sports-sleep-tracking-black-280219?Utm_rid=53168884&amp;amp;Utm_source=affiliate&quot; class=&quot;alignleft&quot;&gt;&lt;img src=&quot;/images/2014/06/vidonnX5.jpg&quot; alt=&quot;Vidonn X5&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This pretty much settled the motivation to develop an alternative Android application to read the data from my new device. Since the Vidonn X5 communicates over Bluetooth LE, it was very easy to retrieve information using a Bluetooth developer tool such as &lt;a href=&quot;http://punchthrough.com/products/&quot;&gt;LightBlue&lt;/a&gt;. Equipped with patience and differential analysis, I was able to decode the Bluetooth Characteristics of the Vidonn X5.&lt;/p&gt;

&lt;p&gt;Android 4.3 (API Level 18) introduced support for Bluetooth Low Energy, therefore being my minimum requirement for the application development besides the obvious requirement for a smartphone supporting Bluetooth LE (e.g. Nexus 4, Nexus 5, Samsung S4).&lt;/p&gt;

&lt;p&gt;I believe my app can be of use to many people, so I decided to &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.diogogomes.openvidonn.app&quot;&gt;publish it on Google Play&lt;/a&gt; for others to use. The app doesn’t feature (yet) any sharing option (export to a spreadsheet, Twitter, Facebook, etc), nor does it track more then a week worth of workouts (amount of data kept in the device). There are certainly bugs around, but if you installed the app I would appreciate to ear from you, be it praises of critics.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.diogogomes.openvidonn.app&quot;&gt;&lt;img src=&quot;https://developer.android.com/images/brand/en_generic_rgb_wo_45.png&quot; alt=&quot;Get it on Google Play&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ll keep a &lt;a href=&quot;/projects/openvidonn/&quot;&gt;page dedicated to OpenVidonn&lt;/a&gt;, so please leave any comments related to the app there.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>iOS to Android</title>
   <link href="https://diogogomes.com/2014/04/02/ios-2-android/index.html"/>
   <published>2014-04-02T21:30:00+01:00</published>
   <id>https://diogogomes.com/2014/04/02/ios-2-android/ios-2-android</id>
   <content type="html">&lt;p&gt;I’ve been an iOS user (in various incarnations: iphone 3G, iphone 3Gs, iphone 4s, ipad, ipad 3) for more then 4years, I’m what many of you would call an Apple fanboy.&lt;/p&gt;

&lt;p&gt;Two years ago, I bought a Nexus 7 to get more involved with Android. At first it all seemed very strange, various applications weren’t available and I just kept getting back to my iOS devices.&lt;/p&gt;

&lt;p&gt;But this year, instead of the next logical upgrade to an iphone 5s, I decided to go with a Google Nexus 5.&lt;/p&gt;

&lt;p&gt;Truth be told, I was getting a little bit tired of iOS as I could not see any new feature on the iphone 5S besides an improved battery…&lt;/p&gt;

&lt;p&gt;So I took the plunge!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.google.com/nexus/images/nexus-5-new/learn_buy_1200.jpg&quot; alt=&quot;Google - Nexus 5&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Software wise, I can now do everything I used to do with my iphone, all my favorite applications are available at both stores, even though some applications do seem a lit bit sub-par with their iOS counterparts. On the other hand, the android platform does seem more accessible to developers who are not required to pay an upfront fee of 100€. I don’t sell on the respective App Store’s any of my applications, but I do like the fact that I can easily develop and distribute Android applications without any upfront fees (I’m not even considering less legal options&lt;/p&gt;

&lt;p&gt;Hardware wise, the Nexus 5 is a great phone. It’s lighter than my iphone 4s and has a bigger screen, which was by the way my biggest concern as I privilege a small form factor. The Nexus 5 is equipped will all sorts of new technologies such as Qi charging, NFC, BLE which is create for a geek that likes to play around with this stuff. Everything is blazing fast thanks to the quad-core CPU and LTE.&lt;/p&gt;

&lt;iframe src=&quot;http://rcm-eu.amazon-adsystem.com/e/cm?t=diogomblo-21&amp;amp;o=2&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B00GDD9N60&amp;amp;ref=qf_sp_asin_til&amp;amp;fc1=3C3C3C&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=7E7E7E&amp;amp;bc1=FFFFFF&amp;amp;bg1=FFFFFF&amp;amp;npa=1&amp;amp;f=ifr&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;In the last iterations of both operating systems there has been a lot of catching up (for both platforms) and Android KitKat in its Nexus 5 incarnation is a really good platform.&lt;/p&gt;

&lt;p&gt;Migration was also very smooth. It was just a mather of synchronizing all my stuff with Google servers and I was ready to go. Only complain so far is the battery, it doesn’t last more than a day, but neither did the iphone 4s :)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Jekyll Reboot</title>
   <link href="https://diogogomes.com/2014/02/04/jekyll-reboot/index.html"/>
   <published>2014-02-04T00:14:00+00:00</published>
   <id>https://diogogomes.com/2014/02/04/jekyll-reboot/jekyll-reboot</id>
   <content type="html">&lt;p&gt;This blog is now 7 years old and time hasn’t been gentle on it.&lt;/p&gt;

&lt;p&gt;When I started this blog it was a Wordpress blog and during the first months I mostly used to post random stuff. Twitter and Facebook where not what you see today, and therefore it made complete sense to post that random stuff here. Looking back into those posts I see lots of stuff I would not say/post today has they are not “blog material”.&lt;/p&gt;

&lt;p&gt;Half way I started to hand pick what I posted, posts became more sporadic but also more interesting with most of my referrals pointing to those posts. This is actually the content I’m proud of, but being a personal blog it means that I also post opinions and thoughts such as this post which will definitely will not bring any referrals in.&lt;/p&gt;

&lt;p&gt;All said, today I rebooted this blog.&lt;/p&gt;

&lt;p&gt;I created a new jekyll theme (I will later post on that), moved to a new VPS (previous one was about to expire) and started blogging again after more than a year time. This year I intend to publish more often, show case a bit of what I’m doing as a researcher, and who knows share some thoughts on random stuff.&lt;/p&gt;

&lt;p&gt;So if you haven’t done it yet, I invite you to &lt;a href=&quot;http://diogogomes.com/feed/&quot;&gt;subscribe my blog&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/dgomes&quot;&gt;follow me&lt;/a&gt; on twitter.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Cocoa Programming</title>
   <link href="https://diogogomes.com/2013/01/10/cocoa-programming/index.html"/>
   <published>2013-01-10T17:38:00+00:00</published>
   <id>https://diogogomes.com/2013/01/10/cocoa-programming/cocoa-programming</id>
   <content type="html">&lt;p&gt;At a time everyone is learning Objective-C and Cocoa in order to program for the iPhone, I’ve spent most of my time programming for OSX. After doing some contributions to &lt;a href=&quot;http://chetansurpur.com/projects/sidestep/&quot;&gt;Sidestep&lt;/a&gt; during my &lt;a href=&quot;/2012/09/11/two-month-at-cmu/&quot;&gt;stay at CMU&lt;/a&gt;, I decided to endeavor deeper and develop some apps of my own, just to scratch my back.&lt;/p&gt;

&lt;p&gt;So during the holiday season I came up with two very simple applications:&lt;/p&gt;

&lt;p&gt;The first app (&lt;a href=&quot;https://github.com/dgomes/MeuComando&quot;&gt;MeuComando.app&lt;/a&gt;) a simple MS MediaRoom remote control app, that enables me to control my STB without reaching for the command. It follows a trivial protocol which can be easily found online (examples in java, python, etc). Thing is, I really didn’t want a crappy Java app, so I reinvented the wheel and made myself a new app.&lt;/p&gt;

&lt;p&gt;My last app (&lt;a href=&quot;https://github.com/dgomes/statusping&quot;&gt;StatusPing.app&lt;/a&gt;) was a request by my father. His internet connection through a router supplied by his ISP keeps dropping and unless he periodically “debugs” by opening/trying to open a webpage or firing up Terminal.app and running ping, he never knows for sure if the connection is up or not. Therefore I developed an app that stays in the menu bar of OSX right there in the top, which provides the user with a visual alert if something is wrong.&lt;/p&gt;

&lt;p&gt;You can find my apps at &lt;a href=&quot;https://github.com/dgomes&quot;&gt;github&lt;/a&gt;.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Two months at CMU</title>
   <link href="https://diogogomes.com/2012/09/11/two-month-at-cmu/index.html"/>
   <published>2012-09-11T11:31:00+01:00</published>
   <id>https://diogogomes.com/2012/09/11/two-month-at-cmu/two-month-at-cmu</id>
   <content type="html">&lt;p&gt;In a time when Portugal is facing a severe recession, with several country men moving abroad to greener pastures &lt;a href=&quot;http://the.taoofmac.com/space/blog/2012/08/24/2240&quot;&gt;link&lt;/a&gt;, I decided to endeavor myself on the pros and cons of living abroad even thought for a very brief period of time.
Under the scope of the CMU-Portugal program, I spent July and August in Pittsburgh, Pennsylvania, USA. During this time I was a visiting professor at the ECE department at &lt;a href=&quot;http://www.cmu.edu&quot;&gt;Carnegie Melon University&lt;/a&gt; and got the chance to be part of the research activities taking place at the &lt;a href=&quot;http://www.pdl.cmu.edu&quot;&gt;Parallel Data Lab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Although short, it was a very enriching &lt;a href=&quot;http://dgomes.tumblr.com&quot;&gt;experience&lt;/a&gt;. Living abroad you miss important things such as family but you also get to realize your self professionally in a away you cannot in your home country (at least not at this time).&lt;/p&gt;

&lt;p&gt;The economic crisis is driving all the skilled people abroad, family, friends, everyone is leaving for greener pastures in the hope of a future. I didn’t want to make this post too negative, but the truth is that Portugal at this time and date, cannot offer much of the things you want for yourself and your family.&lt;/p&gt;

&lt;p&gt;I deeply hope to be part of a solution for the problems we face, by doing my best at teaching to undergraduate and graduate level, shaping good engineers able to do anything in their life’s. But several times I wonder, if I shouldn’t be the one buying the ticket out…&lt;/p&gt;
</content>
 </entry>
 

</feed>
