Set-top-box infrared remote configuration files for LIRC (*.conf) and irplus Android app (*.irplus)
ABS-CBN TV Plus (Atlanta-DTH STB)
Geniric ISDB-T STB
Saturday, March 17, 2018
Wednesday, September 13, 2017
DTLS Reverse Proxy
Saturday, May 6, 2017
ATtiny IR Remote
ATtiny2313 Infrared Sender
parts:




avr-gcc (main.c) code:
References:
ESP8266 IR Remote
z3t0/Arduino-IRremote
ATtiny Low Power
parts:
- ATtiny2313 @4MHz (internal oscillator)
- IR LED (series with 220-ohm resistor)
- Tact switches
- 3.7V lithium ion battery & Capacitor




avr-gcc (main.c) code:
References:
ESP8266 IR Remote
z3t0/Arduino-IRremote
ATtiny Low Power
Friday, May 5, 2017
ESP8266 IR Remote
Control your appliances (e.g. TV and AV systems) via WiFi+IR.

Arduino code:
References:
markszabo/IRremoteESP8266
Sony IR codes
Sony SIRC protocol

Arduino code:
References:
markszabo/IRremoteESP8266
Sony IR codes
Sony SIRC protocol
Sunday, January 29, 2017
WiFi RGB Matrix
Here's a DIY flexible 36x8 RGB-LED-matrix controlled via WiFi connection using an ESP8266 module.
Arduino Code: julznc/wifi_rgb_matrix
Assembly:
References:
NeoPixelBus - for interfacing WS2812 LEDs to ESP8266 controller
Adafruit-GFX-Library - with font library for displaying texts
LED Matrix Studio - for creating bitmap images
Arduino Code: julznc/wifi_rgb_matrix
Assembly:
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
References:
NeoPixelBus - for interfacing WS2812 LEDs to ESP8266 controller
Adafruit-GFX-Library - with font library for displaying texts
LED Matrix Studio - for creating bitmap images
Saturday, June 11, 2016
ESP8266 PWM Android Controller
Control ESP8266 PWM outputs* with Android.
Android app: play.google/wifipwm
Android src: github/esp_wifi_pwm
demo:
ESP8266 init.lua :
*PWM outputs nodemcu pwm
Android app: play.google/wifipwm
Android src: github/esp_wifi_pwm
demo:
ESP8266 init.lua :
wifi.setmode(wifi.STATION) wifi.sta.config("WIFI_SSID","WIFI_PASSWORD") local GP0 = 3 local GP2 = 4 local port = 3456 print(wifi.sta.getip()) srv=net.createServer(net.UDP) srv:on("receive", function(cli, rcv) --print(rcv) rx={} for i, s in string.gmatch(rcv, "(%w+)=(%w+)") do rx[i]=s --print(i, rx[i]) end if rx.d0 then pwm.setduty(GP0,rx.d0) --print("GP0 duty",rx.d0) elseif rx.d2 then pwm.setduty(GP2,rx.d2) --print("GP2 duty",rx.d2) elseif rx.f0 and rx.c0 then pwm.setup(GP0,rx.f0,rx.c0) pwm.start(GP0) print("GP0 freq",rx.f0,"cycles", rx.c0) elseif rx.f2 and rx.c2 then pwm.setup(GP2,rx.f2,rx.c2) pwm.start(GP2) print("GP2 freq",rx.f2,"cycles", rx.c2) end cli:send(rcv) end) srv:listen(port)
*PWM outputs nodemcu pwm
- pins GP0 and GP2
- up to 1kHz only
- 0-100%duty (note: 1023 cycles = 100% duty)
Saturday, May 14, 2016
ESP8266 and SHT1x Web Interface
Here's a *duino-less (*pi-less) simple project using ESP11 (ESP8266) Wifi Module and SHT10 humidity-temperature sensor.
init.lua:
wifi.setmode(wifi.STATION) wifi.sta.config("WIFI_SSID","WIFI_PASSWORD") local DAT = 4 local CLK = 3 function DL() gpio.write(DAT, gpio.LOW) gpio.mode(DAT, gpio.OUTPUT) end function DH() gpio.mode(DAT, gpio.INPUT) gpio.write(DAT, gpio.HIGH) end function CL() gpio.write(CLK, gpio.LOW) end function CH() gpio.write(CLK, gpio.HIGH) end function DR() gpio.mode(DAT, gpio.INPUT) return gpio.read(DAT) end function W8() for i = 1, 100 do tmr.delay(10000) if DR() == gpio.LOW then return true end end return false end function RB() local val = 0 for i = 0, 7 do CH() val = val*2 + DR() CL() end return val end function shtread(cmd) DH() CH() DL() CL() CH() DH() CL() for i = 0, 7 do if bit.band(cmd, 2^(7-i))==0 then DL() else DH() end CH() CL() end CH() CL() if not W8() then return nil end DH() local val = RB() DH() DL() CH() CL() DH() val = val*256 + RB() DH() CH() CL() return val end page=[[<head><meta charset="utf-8"/> <link href="http://projectproto.blogspot.com/favicon.ico" rel="icon"/> <title>ESP+SHT</title></head> <body><h1>ESP8266 and SHT1x</h1><h2 id="T">T??</h2><h2 id="H">H??</h2> <script> function update(){ var xrq = new XMLHttpRequest(); xrq.onreadystatechange=function(){ if (xrq.readyState==4 && xrq.status==200){ var th=JSON.parse(xrq.responseText); var t0=th["t"], h0=th["h"]; var t=(t0*0.01)-39.7; var hl=(0.0367*h0)+(-0.0000015955*h0*h0)-2.0468; var h=(t-25.0)*(0.01+(0.00008*h0))+hl; document.getElementById("T").innerHTML="Temperature: "+t.toFixed(2)+"°C"; document.getElementById("H").innerHTML="Humidity: "+h.toFixed(2)+"%";} } xrq.open("GET","/get/sht",true); xrq.overrideMimeType("application/json"); xrq.send(null); }setInterval(update, 1000); </script></body>]] srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, mtd, path, _ = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(mtd == nil)then _, _, mtd, path = string.find(request, "([A-Z]+) (.+) HTTP"); end if path == "/" then buf = buf..page elseif path == "/get/sht" then t = shtread(3) h = shtread(5) if (t ~= nil and h ~= nil) then buf = buf.."{\"t\":"..t..", \"h\":"..h.."}" end end client:send(buf) client:close() collectgarbage() end) end)
References:
ESP8266 Web Server Tutorial
Github esp8266 sht10
e-Gizmo ESP11 kit
ESP8266 wiki
NodeMCU firmware
NodeMCU http server
Labels:
ESP8266,
instrumentation,
microcontroller
Subscribe to:
Posts (Atom)