Rullgardinsstyrning baserad på ESP8266

Som du kanske vet säljer vi sen några år tillbaka tubmotorer ämnade för rullgardiner.

I de flesta fall använder man dessa med Z-wave (Qubino Flush Shutter DC) eller över 433MHz med EY-motorerna som har inbyggda mottagare, men i det här blogginlägget går jag igenom hur man kan bygga en styrenhet som går över WiFi med hjälp av en ESP8266 med tillhörande motorkontroller!

vår Github har vi koden som används, samt en genomgång av vad man behöver för att kunna flasha mjukvaran.

Observera också att jag använt Adafruits Feather HUZZAH. Koden går att anpassa för andra ESP:er (t.ex. WeMos D1 Mini + Motor Shield) men det är inget vi har planer på att utföra. Det som behövs är att ersätta Adafruits motorbibliotek med kod för WeMos motor shield, samt ändra PIN-layouten. Då behöver man även ta hänsyn till specifikationen på Motor Shielden.

Beståndsdelar

  • Feather HUZZAH ESP8266 WiFi Development board – Den enhet som programmeras, och som kommunicerar med WiFi-nätverket. Jag har använt en stacking header på min, varför kommer jag gå in på mer senare.
  • DC Motor or Stepper FeatherWing – denna sköter logiken för motorn och är den komponent till vilken både motorn och 12V-matning ansluts. Kan driva 1.2A per kanal och har fyra kanaler, så i teorin kan man koppla in fyra motorer till den som styrs separat. Vår kod är dock endast förberedd för en motor.
  • Tubmotor ES1612 – Har inbyggd logik för att ställa ändlägen, så stannar automatiskt när den kommer högst upp eller längst ner. Observera dock att mjukvaran inte har logik för att känna av när motorn rullat färdigt, så man bör hårdkoda hur länge den ska rulla för att inte spänningen ska behöva ligga på hela tiden. Det går också att använda en sensor e.d. för att känna av när den ska slå av. Eller, om man sköter kontrollen från ett externt system, kan man ställa in det där istället. Mer om det längre ner.
  • UBEC DC/DC Step-Down Converter – Motorn behöver ha 12V spänning, men för att omvandla denna till 5V (som Feathern vill ha) använder jag en UBEC.
  • Lösa kablar, monteringsdosa och CCTV-1024 – Jag gömmer Feathern och kablarna i en monteringsdosa. CCTV-1024 sticker jag ut genom ett av hålen för att kunna ansluta spänningsmatning, och motorns kabel går ut genom ett annat hål.

Supersnyggt inkopplingsdiagram

OBS motor shield ska sitta ovanpå Feathern
OBS motor shield ska sitta ovanpå Feathern

Verkligheten

Jag gjorde mitt bästa, OK?
Jag gjorde mitt bästa, OK?

Kom igång med mjukvaran

Mjukvaran hittar du här, ladda ner de bibliotek som refereras i beskrivningen och flasha in den med Ardunio IDE 1.6.2 eller nyare med ESP8266 Core.

När allt är ihopkopplat och flashat via Arduino IDE kommer enheten dyka upp som en WiFi-accesspunkt med namnet ”BlindMaster” och lösenord ”password”. Dessa uppgifter går att ändra på rad 32 i ino-filen innan man flashar, om man så önskar.

Anslut till accesspunkten och surfa in på 192.168.4.1 så kan du ställa in vilket WiFi-nätverk den ska ansluta till. När det är gjort startar enheten om och agerar istället klient.

Nu behöver du hitta vilken IP-adress enheten fått på ditt nätverk. Det kan du se i routern, eller med något passande verktyg som scannar nätverket (arp -a kan fungera i Windows från kommandotolken).

Sen surfar du helt enkelt in på IP-adressen i din webbläsare, och får upp några knappar för att styra rullgardinen upp, ner eller för att stoppa den. Observera att via webbinterfacet stoppas inte spänningen till motorn automatiskt när den slutat rulla, det skulle kanske kunna lösas med en hårdkodad delay eller en DC-sensor.

Att styra den från hemautomation, då? Det skulle kunna fungera att köra REST GET-kommandon på URL:erna för upp, ner och stopp. Att lägga in logik för rullgardinsposition med hjälp av en DC-sensor är inte heller otänkbart, och man skulle då kunna få feedback på var rullgardinen befinner sig.

Mycket nöje! 🙂

Kommentera