Showing posts with label ESP8266. Show all posts
Showing posts with label ESP8266. Show all posts
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
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
Subscribe to:
Comments (Atom)