Ikea Fridans Hack with Arduino (Apple Homekit)
The reason why I created this project is to be able to control my Ikea Fridans Blinds using my iPhone and Siri. Please excuse my wiring diagrams and mechanical designs because I'm not an Electrical nor a Mechanical Engineer. I spent about a month researching on how to connect these things through Google and Youtube videos. Please help correct my mistakes if you find any by submitting pull requests. Thank you.
This guide is specifically meant for ARDUINO UNO R3 ATMEGA328P ESP8266. It is a dual core Arduino with build in Wifi. The ATMEGA328P core will be used to control the stepper motors, while the ESP8266 core will be used to handle Wifi communication and Apple Homekit. Both of these cores communicates with each other using the onboard Serial.
- Arduino IDE (https://www.arduino.cc/en/software)
- Arduino-HomeKit-ESP8266 (https://github.com/Mixiaoxiao/Arduino-HomeKit-ESP8266)
- AccelStepper (https://www.arduino.cc/reference/en/libraries/accelstepper/)
If you wish to purchase the same hardware as I am, just copy paste the item name and find it at your nearest online store.
- ARDUINO UNO R3 ATMEGA328P+ESP8266
- CNC Shield V3
- A4988 Stepper Motor Driver Module (x2)
- NEMA 17HS4401 Bipolar Stepper Motor (x2)
- Custom V-Pulley
- 3mm Polyurethane Round Belt
- AC-DC Adapter 12V 2A
- Nema 17 stepper motor bracket 42 L Mounting Bracket Mount
- Ikea Fridans Block-out roller blind
Explain about Arduino dip switches. (todo)
- Load FRIDANS_UNO.ino using Arduino IDE.
- Select model Arduino UNO.
- Set dip switch pin to ON 3,4.
- Load AccelStepper library.
- The stepper motor needs 200 pulses to complete make a complete rotation. My windows blinds needs 11 rotation to open and close, therefore, I need 2200 pulses to open or close my window blinds.
- Load FRIDANS_ESP8266.ino using Arduino IDE.
- Select model Generic ESP8266 module.
- Set dip switch pin to ON 5,6,7.
- Load Arduino-HomeKit-ESP8266 library.
- Set home wifi password in wifi.h
Once uploaded set 1,2 ON to enable serial communication between the 2 cores.
Special thanks to my wife who have helped me with this project. My daughter, Ayesha for helping me out with the Math calculations and code debugging. My friends, Van Chiang & Ezni, for helping me print the 3D pulley and contributing to this project. Lastly, to the technical support staffs of http://my.cytron.io