Programming Wireless Sensor Networks with the TeenyLIME Middleware