An Internet of things

Musings on iOS and PHP development, IoT and other bits and pieces

ESPHome VINDRIKTNING Particle Sensor

The IKEA VINDRIKTNING is a simple and cheap ($15 AUD) air quality sensor that measures PM 2.5 particulate matter. It’s easy to attach an ESP8266 to three test points on the device’s PCB to read the communication between the sensor and the onboard IC.

I have published a small project based on the excellent work of Soren Beye in the Hypfer/esp8266-vindriktning-particle-sensor project that wraps the functionality into a custom ESPHome external component that can be pulled into any ESPHome configuration. The full source is available on GitHub.

VINDRIKTNING device in Home Assistant
Device in Home Assistant
PM 2.5 values over time in Home Assistant
PM 2.5 over time

Programming the ATTiny with AVR Dragon and the Arduino IDE on macOS in 2018

Recently I’ve been working on a project utilising ATTiny85 microcontrollers and Arduino. At first glance it wasn’t obvious if it was possible to use the AVR Dragon with Arduino or macOS High Sierra, but after some trial and error it turns out the Arduino toolchain supports programming via ISP on the Dragon quite well!

In addition to ISP programming on macOS, there was an extra step required to to power the ATTiny from the Dragon, I have covered that below.

ATTiny85 connected to AVR Dragon on macOS via ISP
ATTiny85 connected to AVR Dragon on macOS via ISP

The $33 IKEA Standing Desk

I was recently inspired by the sheer simplicity of $22 IKEA Standing desk by Colin Nederkoorn. The “Standdesk 2200” uses basic IKEA components to easily create a standing desk conversion for your existing space.

I set out this weekend to replicate and localise Colin’s instructions for the Australian IKEA shopper. Colin’s original $22 USD price point holds up perfectly in 2015. Converted to Australian dollars, we have the $33 IKEA Standing Desk.

Profiling PHP Apps on OSX 10.9 with Xdebug and Kcachegrind

It’s straight forward to generate Xdebug profiler output and visualise the bottlenecks associated with running any request that’s run through the PHP stack.

Here’s how you’d install PHP, Xdebug and Kcachegrind (qcachegrind) on OSX 10.9 Mavericks and get some in depth info on your php app.

qcachegrind on OSX 10.9 Mavericks

Localising Cocoa Apps - Melbourne Cocoaheads August 2012

/* No comment provided by engineer. */
"Next" = "Next";

If your Localizable.strings file looks like this then you’re probably doing it wrong…

Back in August I presented some best practices for localising your cocoa apps. The presentation centred around my experiences localising my own apps and the realestate.com.au app. I highlighted how using NSLocalizedString properly (or it’s more useful cousin NSLocalizedStringFromTable) can make localisation a lot easier and logical.

Localising Cocoa Apps - Melbourne Cocoaheads August 2012

Introducing JCTiledScrollView

JCTiledScrollView

To coincide with my February 2012 Cocoaheads presentation I have open sourced a component named JCTiledScrollView.

JCTiledScrollView is a set of classes that wrap UIScrollView and CATiledLayer. The project to simplify displaying large images and PDFs at multiple zoom scales. As the project evolves it’s moving towards becoming a fully featured custom map view replacement with gestures and annotations.