Tag esp8266

19 dec

Kommentarer lukket til Home automation – input knapper

Home automation – input knapper

Af

Jeg har igennem længere tid arbejdet med at lave home automation af lyset. Det hele startede med en arduino uno med ethernet shield, som så styrede nogle trådløse stikkontakter fra Harald Nyborg (link). Som udelukkende kunne styres via hjemmeside på arduinoen. Da jeg så ville have nogle flere funktioner skiftede jeg over til Openhab, som er lavet til home automation, hvor der er en app til smartphone.
Men så smart det er med en app osv. så er der steder i dagligdagen hvor det er besværligt at man skal finde telefonen frem for at kunne tænde lyset.
Så derfor købte jeg en Xiaomi gateway med tilhørende zigbee trykknapper.

Xiaomi zigbee knap

Deres enkelt tryk med 3 funktioner (kort tryk, dobbelt tryk, langt tryk) og deres dobbelt tryk med 3 funktioner (venstre tryk, højre tryk, venstre+højre tryk) men jeg var ikke helt tilfreds med dem, da de fylder en del i forhold til antal af trykfunktioner. Så det skulle jeg havde fundet/lavet en smartere løsning på.

Fuga svagstrømstryk – 4 tryk 2 led

Jeg kiggede derfor efter noget der gerne skulle kunne erstatte afbryderen. Derfor kiggede jeg på hvordan LK’s svagstrømstryk til Fuga var lavet, og om det var muligt at bruge den, hvor elektronikken så blev stoppet ind i dåsen.
Men det viste sig så at det ville være svært at få plads til + der var kun diode til de 2 af knapperne hvor jeg gerne ville have til alle 4. Så derfor begyndte jeg at kigge på at lave min egen version af svagstrømstrykket, hvor jeg fik målt op hvor stort det måtte være, hvor knapperne skulle sidde, hvor dioderne skulle sidde, samt et par styrehuller, så tangenten til LK’s svagstrømstryk også passer til min.
Den oprindelige plan var at bruge nogle 3 mm dioder, men kort før jeg skulle til at bestille PCB opdagede jeg at der netop var kommet en ny udgave af den digitale RGB lysdiode WS2812B, nemlig i en meget mindre pakke (2020 i stedet for 5050, dvs at den er 2×2 mm mod standard-dioden på 5×5 mm). Så de blev skiftet ud til den lille RGB diode.

knapper og 2020 ws2812 led

Da jeg ikke ville til at ændre helt vildt i el-installationen, valgte jeg at sætte en esp8266 microcontroller med indbygget wifi på bagsiden af printet som læser knapperne samt opdaterer dioderne.

ESP8266

Da jeg ikke er interesseret i at skulle skifte batterier hele tiden, skulle jeg have fundet en strømforsyning som skulle være PCB monterbar og passe ind i en Fuga dåse, der kiggede jeg straks på nogle fra Hi-link som jeg har brugt tidligere i andre projekter (i databladet står der at de er både UL og CE godkendte). De kunne lige nøjagtigt være der.

Efter som at der var ved at være styr på elektronikken, så skulle der også laves noget så det kunne gøres fast og passe i en Fuga ramme. Så var det i gang med at måle op (jeg tog udgangspunkt i hullet i Fuga rammen og en Fuga PIR sensor). Jeg havde exporteret PCB layoutet fra kicad som 3D model, så det kunne laves omkring den.
Det blev hurtigt til flere versioner, som alle blev test printet på 3D-printeren for at se hvordan det passede i virkeligheden.

I 3D print

Da jeg endelig havde et PCB og 3D-print jeg var tilpas med så blev der bestilt stumper hjem. Da det hele var kommet hjem fik jeg samlet den første.
Efter de første test var jeg meget tilfreds med den, så blev resten af de første samlet, og de begynder så småt at blive sat op derhjemme, som jeg får den programmeret til.

Mit fuga tryk

Hvert tryk står mig i ca 200 kr.

Jeg havde en demo med til Mini Maker Faire i århus, hvor der var flere der viste interesse i dem, så derfor valgte jeg at lave dette lille skriv omkring projektet.

Hvis du er interesseret i at få fat i nogle af dem så send mig en mail på andersv209 (a) hotmail.com med titlen “Fuga tryk esp model”. Når der er til mindst en 50 stykker vil jeg sætte bestilling i gang.

PS. der gøres opmærksomt på at de ikke er godkendt til brug i fast installation og derfor anvendes på eget ansvar. Da der rodes i fast installation skal de monteres af en elektriker.

Af Anders Vestergaard
AndersV209

02 nov

0 Comments

Solder fume lamp

Af

DSC_0011

I needed something to remove the smoke when soldering and build this USB powered solder fume fan lamp with an ESP8266 arduino, WS2812b/Neopixels, a fan with an active coal filter and a PIR sensor.

See a short demo of the lamp on Youtube.

Scad/svg files are available on Thingiverse.

The case is lasercutted in 4 mm plywood.

When there is no movement beneath the lamp the fan turns off after e.g. 60 seconds (can be extended to e.g. 1800 when holding down the fan button) and the LED turns off after 1800 seconds of inactivity. The LED intensity can be dimmed by holding down the LED button.

Parts list:
* 4 mm plywood for the laser cutted case
* Ikea Forså lamp ( http://www.ikea.com/us/en/catalog/products/80146777/ )
* WS2812b / Neopixel strip (30 LED/m, 12 LED’s are used for the lamp. I bought it on Ali Express)
* Level shifter from 3.3 V to 5 V for the 3.3 V output from the PIR sensor (https://www.adafruit.com/product/757 I bougt it on AliExpress)
* 1.5 mF capacitor betwen +5 V and ground near the Neopixels, for evening out voltage drops and ripple from the USB power.
* PIR sensor (https://www.adafruit.com/product/189 I bought it on AliExpress)DSC_0057
* Fan (80 mm, 12 V. It was just laying around)
* Wemos D1 mini (https://www.wemos.cc/product/d1-mini.html)
* Wemos ProtoBoard (https://www.wemos.cc/product/protoboard.html)
* Wemos RelayShield for turning the fan on and off (https://www.wemos.cc/product/relay-shield.html)
* MT3608 DC-DC Step Up Power Module from AliE for the power for the 12 V fan
* Activated coal filter (adjusted the size with a scissor) (https://www.conrad.de/de/aktivkohlefilter-3teilig-toolcraft-79-7201-588546.html i bought it on AliE)
* two push buttons, connecting the pins from the ESP8266 to ground.
* USB cable
* A few strips, pig tail wires, bolt and nuts etc.

DSC_0056

The case is glued together with normal wood glue and the PIR sensor and the WS2812b Neopixel strips are glued against the case with cyanoacrylate. The DC-DC converter is fixed with a cable tie. The Wemos D1 mini is fixed with a small bolt through a drilled hole in the ProtoBoard. The capacitor and the level shifter is glued with a hot glue gun. Be aware that there is very little room for the boards and the wires. If I were to build it again I would make some more room. Also the “stack” of the Wemos ProtoBoard, D1 mini and RelayShield is higher than the fan + activated coal filter, so it sticks out of the top, which I think is fine. All the parts do not need to be hidden away for the eye to see :-)

The software is available at:

https://github.com/sman-dk/arduino/tree/master/solder_fume_lamp

Since the ESP8266/Wemos D1 mini has wifi it can be made controllable via your smartphone etc. At the time of this writing I have no use of this, so for now I have not implemented anything fancy yet :)

DSC_0065

IMG_3547DSC_0055

Power usage when the lamp and fan is active
Power usage when the lamp and fan is active
Power usage when idle
Power usage when idle

03 okt

0 Comments

Postkasse overvågning

Af

I dagens danmark hvor stort set alt hvad vi modtager af post foregår via digital post (E-boks) er det ikke så tit der kommer post i postkassen (med mindre man får mange små Kina pakker 😉 ) så for at undgå at hele tiden når jeg tjekker postkassen om der er noget eller ikke og så finder den tom. Bestemte jeg mig for at lave så jeg får en E-mail når der er nogen der åbner lågen til postkassen.

Så var spørgsmålet hvordan det skulle laves, det skulle være trådløst(WiFi), være fri for transformer/dc adapter da jeg ikke ville til at trække en ledning ud til postkassen!! Så derfor blev valget af microprocesser en ESP8266 ESP-12, da den allerede var klar til WiFi og skal bruge en spænding på ca 3.3 volt kan dog fint fungere på 4 volt, hvilket så også løste problemet med strøm der til, da jeg havde et par stykker af 18650 batterier til at ligge fra en gammel bærbar’s batteri.

Efter lidt oplæsning på ESP8266 funktioner på Github (Arduino core for ESP8266 WiFi chip), fandt jeg frem til funktionen ESP.deepSleep(microseconds, mode) hvor man kan putte EPS8266 i sleep mode indtil at GPIO16 er forbundet til RESET, denne funktion er smart da der så bruges så lidt strøm som over hoved muligt når den ikke sender data. I samme omgang fandt jeg ud af at man kan bruge den ADC(analog in) ben til at måle spændingen den får. Men for at det ville fungere skal ESP8266 omkonfigurere dens ADC hvilket gøres ved at putte “ADC_MODE(ADC_VCC);” øverst i koden. Så kan funktionen ESP.getVcc() bruges til at få spændingen i milivolt.

ESP8266’en blev placeret på et fumlebræt og forbundet til en FTDI så den kunne programmeres, og med en knap til at putte den i flashmode. Så skulle softwaren laves så den kunne sende en mail, så derfor tog jeg udgangs i en Arduino Ethernet sketch der sender en mail via smtp(non-SSL). Grundet at det kun virker med non-SSL smtp server kunne jeg ikke bruge min Hotmail til at sende mailen med da den kræver SSL eller TLS, men så faldt jeg over man med en Gmail kan sende en mail til sig selv eller anden Gmail ved at bruge “aspmx.l.google.com” som server med port 25 (link til kilde). De 2 før nævnte funktioner blev ind opereret i sketchen som var blevet ombygget til ESP8266, Så hver gang ESP8266 starter op sender den en mail til min gmail, og går der efter i sleep mode til at GPIO16 bliver sat til RESET.

Mailen der kommer ser sådant ud.

Mailen der modtages.

Mailen der modtages.

Efter at jeg havde testet at alt fungerede som det skulle, ville jeg til at lave et print som kunne holde alle komponenter så det blev pænt og overskueligt, men for at kunne lave det måtte jeg først lave et nyt eaglecad library da jeg ikke kunne finde en library for 3 af de komponenter jeg ønskede at bruge, ESP8266 ESP-12 monteret på breakout board, Dual 18650 batteri holder og en 18650 batteri charge modul.

Nu kunne der så laves et diagram over hvordan det hele skulle forbindes

esp-postkasse_schematic

Ud fra dette diagram blev der lavet en board fil på 90×80 mm hvor alt blev presset ind på

esp-postkasse_board

Da board filen var blevet færdig skulle der jo fremstilles et PCB, hvor jeg lavede en gcode fil med “pcb-gcode” et ulp script for at kunne fræse printet på vores Bundgaard cnc fræser. Det blev til 3 gcode filer, en med til fræsning med v-bit til alle banerne, en med alle huller og en til at skære PCB’en fri af en større plade.

For at få en pænere PCB valgte jeg at fjerne alt overskydende kobber med en hobbykniv ved at trække det af.

PCB efter overskyende kobber fjernelse og lodning.

PCB efter overskyende kobber fjernelse og lodning.

Nu kunne alle komponenterne så blive loddet på PCB’en. Samt microswitch (NC) sat på en 2 ledet ledning med dupon stik.

esp-postkasse-printtop

Komplet komponent liste:

  • ESP8266 ESP-12 på breakout board
  • Dual 186500 batteri holder
  • 2 18650 genbrugsbatterier
  • 18650 charge controller modul
  • en on/off kontakt
  • 2 trykknapper (til reset og flash mode)
  • 14 (6+2+6) male pin header
  • 16 (8+8) female pin header
  • PCB power jack

Klar til montering i postkassen. Det eneste der mangler nu er en 3D-printet boks der skal beskytte PCB’en og dens komponenter mod fugt og noget der kan falde ned og kortslutte noget!

Så nu er det slut med at kigge forgæves i postkassen!

Hvis du vil have eagle filer og koden til esp8266 kan de hentes her.