Tuesday, September 24, 2019

Alexa Local FM Radio


Alexa Echo Dot playing local FM radio radio stations using ESP8266 WiFi module, RDA5807 FM receiver module and audio Bluetooth transmitter.


source code (Arduino):
https://github.com/julznc/alexa_esp_fmradio


suggestion for improvement:
use ESP32, instead of ESP8266, since it already has built-in bluetooth functionality.

references:
https://bitbucket.org/xoseperez/fauxmoesp
https://github.com/me-no-dev/ESPAsyncWebServer
https://github.com/mathertel/Radio

Saturday, March 17, 2018

Set-Top-Box Remote Configurations

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




Wednesday, September 13, 2017

DTLS Reverse Proxy

Lightweight DTLS reverse proxy server based on tinydtls and libev.

https://github.com/julznc/dtlsproxy

Saturday, May 6, 2017

ATtiny IR Remote

ATtiny2313 Infrared Sender

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





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

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 :
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)