Coder Social home page Coder Social logo

mrdiy-audio-notifier's People

Contributors

0neday avatar hmjvaline avatar markvader avatar schmurtzm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mrdiy-audio-notifier's Issues

cannot get settings to take

I loaded the firmware successfully on an esp32, and the ssid popped up.
I can conect to the ssid using the mrdiy.ca password, but when I change the settings, none of the password fields seem to 'take'. When I reboot the esp32, the setup ssid remains and when I connect to it, all the settings are ok and have the earlier changes, EXCEPT for all the password fields which are empty, including the web password field, the wifi field and the mqtt password field.
I am using an esp32 nodemcu. is that an issue?
i tried previous versions of the software and had the same issue.
any ideas?

Wifi AP not connecting

Can see wifi network "MrDIYNotifier-145574", but can't connect (wifi wrong password)
What do i do wrong?

using ESP8266EX
v 3.0.0

Domain for MQTT

You cannot enter a domain instead of an ip address, there are not enough characters in the input field.

[BUG] - Stop command doesn't work

When playing a long mp3 (like a web radio) MQTT commands are not received anymore.
So it is impossible to stop, play something else, set volume...
Also LWT MQTT status goes offline.

Not sure that it is possible to continue listen MQTT during playing with ESP8266audio library....

Google tts hangs esp8266

Hi, first of all thank You for mrdiy code improvements. Google TTS support makes a big difference!. Unfortunately I have problems with TTS playback. After voice command is being played everything hangs for about a minute. Then mqtt reconnects and everything works fine until another TTS command. Do You know what can be the reason of such behaviour?

Version 0.6 doesn't support multiple notifiers

After some further testing, here is what I’m seeing. I am running two of these speaker notifiers.
Speaker 1 was running firmware 0.4
Speaker 2 was running firmware 0.5

I upgraded speaker 2 to version 0.6 and it works, just samvoice is broken.

I just now upgraded speaker 1 to version 0.6 and there’s a problem running both at version 0.6 This was an issue I saw when running Mr DIY original firmware one more than one speaker. It’s basically created a MQTT storm, where both units keep firing off messages saying they’re idle and connected. When this happens, I can’t send commands to either speaker.

To further test, I downgraded speaker 1 to version 0.5. speaker 2 running version 0.6 and it has the same problem. Both are firing messages non stop via MQTT, causing neither of them to work.

So I stepped speaker 1 back down to version 0.4 . Speaker 2 is running latest 0.6 version, and now both work as expected. I presume version 0.5 introduced an issue that causes multiple notifiers to break.

One further test to confirm:

If both speaker/notifiers are running firmware version 0.4, they both work correctly. No issues with contention and no MQTT storm of broadcasts from the notifiers.

samvoice in version 0.6 not working

Hi!

googlevoice seems to work much better in version 0.6! Thank you

However, when I send /samvoice/ commands, it just plays that guitar strum sound. It's the sound it plays when connected to wifi/MQTT. Sam no longer speaks.

Did the command change for sam? or is it still /samvoice/
Pretty sure I'll just use googlevoice from now on, instead of sam, but I wanted to bring this to your attention

[Feature Request] - increase volume by 0.1 with switch buttons

Physical buttons could be useful to be able to tune the volume without the use of MQTT or the web UI.
(Also useful for those who use MrDiy-Audio-Notifier like an audio player)

The idea :

adding this in the UI :
Vol - button GPIO : ____ <-- here we set the GPIO number , "-1" means not used.
Vol + button GPIO : ____

Not compile

Hi Schmurtzm,
I have a problem compiling your code with library IotWebConf. I have installed versión 3.2.0 of these library but the error persist.

You can view the LOG attached.

Can you help me?
Thanks you in advance

Processing nodemcuv2 (platform: espressif8266; framework: arduino; board: esp12e)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 (3.2.0) > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:

  • framework-arduinoespressif8266 @ 3.30002.0 (3.0.2)
  • tool-esptool @ 1.413.0 (4.13)
  • tool-esptoolpy @ 1.30000.201119 (3.0.0)
  • toolchain-xtensa @ 2.100300.210717 (10.3.0)
    Converting esp8266_mrdiy_mqtt_local_notifier.ino
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 40 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- ESP8266Audio @ 1.9.7
    | |-- I2S @ 1.0
    | |-- ESP8266HTTPClient @ 1.2
    | | |-- ESP8266WiFi @ 1.0
    | |-- SD @ 2.0.0
    | | |-- SDFS @ 0.1.0
    | | | |-- ESP8266SdFat @ 2.0.2
    | | | | |-- SPI @ 1.0
    | | | |-- SPI @ 1.0
    | |-- SPI @ 1.0
    |-- ESP8266SAM @ 1.0.1
    | |-- ESP8266Audio @ 1.9.7
    | | |-- I2S @ 1.0
    | | |-- ESP8266HTTPClient @ 1.2
    | | | |-- ESP8266WiFi @ 1.0
    | | |-- SD @ 2.0.0
    | | | |-- SDFS @ 0.1.0
    | | | | |-- ESP8266SdFat @ 2.0.2
    | | | | | |-- SPI @ 1.0
    | | | | |-- SPI @ 1.0
    | | |-- SPI @ 1.0
    |-- PubSubClient @ 2.8.0
    |-- IotWebConf @ 3.2.0
    | |-- DNSServer @ 1.1.1
    | | |-- ESP8266WiFi @ 1.0
    | |-- ESP8266WebServer @ 1.0
    | | |-- ESP8266WiFi @ 1.0
    | |-- ESP8266WiFi @ 1.0
    | |-- EEPROM @ 1.0
    | |-- ESP8266mDNS @ 1.2
    | | |-- ESP8266WiFi @ 1.0
    |-- ESP8266WiFi @ 1.0
    Building in release mode
    Compiling .pio\build\nodemcuv2\src\esp8266_mrdiy_mqtt_local_notifier.ino.cpp.o
    Generating LD script .pio\build\nodemcuv2\ld\local.eagle.app.v6.common.ld
    Compiling .pio\build\nodemcuv2\libd5d\I2S\I2S.cpp.o
    Archiving .pio\build\nodemcuv2\libd5d\libI2S.a
    Compiling .pio\build\nodemcuv2\lib879\ESP8266WiFi\BearSSLHelpers.cpp.o
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:139:1: error: 'IotWebConfParameter' does not name a type; did you mean 'IotWebConfParameter_h'?
    139 | IotWebConfParameter mqttServerParam = IotWebConfParameter("MQTT server", "mqttServer", mqttServer, sizeof(mqttServer) );

    | ^~~~~~~~~~~~~~~~~~~
    | IotWebConfParameter_h
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:140:1: error: 'IotWebConfParameter' does not name a type; did you mean 'IotWebConfParameter_h'?
    140 | IotWebConfParameter mqttUserNameParam = IotWebConfParameter("MQTT username", "mqttUser", mqttUserName, sizeof(mqttUserName));
    | ^~~~~~~~~~~~~~~~~~~
    | IotWebConfParameter_h
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:141:1: error: 'IotWebConfParameter' does not name a type; did you mean 'IotWebConfParameter_h'?
    141 | IotWebConfParameter mqttUserPasswordParam = IotWebConfParameter("MQTT password", "mqttPass", mqttUserPassword, sizeof(mqttUserPassword), "password");
    | ^~~~~~~~~~~~~~~~~~~
    | IotWebConfParameter_h
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:142:1: error: 'IotWebConfParameter' does not name a type; did you mean 'IotWebConfParameter_h'?
    142 | IotWebConfParameter mqttTopicParam = IotWebConfParameter("MQTT Topic", "mqttTopic", mqttTopicPrefix, sizeof(mqttTopicPrefix));
    | ^~~~~~~~~~~~~~~~~~~
    | IotWebConfParameter_h
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino: In function 'void setup()':
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:159:14: error: 'class iotwebconf::IotWebConf' has no member named 'addParameter'; did you mean 'iotwebconf::ParameterGroup iotwebconf::IotWebConf::_allParameters'? (not accessible from this context)
    159 | iotWebConf.addParameter(&mqttServerParam);
    | ^~~~~~~~~~~~
    In file included from C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:91:
    .pio\libdeps\nodemcuv2\IotWebConf\src/IotWebConf.h:579:18: note: declared private here
    579 | ParameterGroup _allParameters = ParameterGroup("iwcAll");
    | ^~~~~~~~~~~~~~
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:159:28: error: 'mqttServerParam' was not declared in this scope; did you mean 'mqttServer'?
    159 | iotWebConf.addParameter(&mqttServerParam);
    | ^~~~~~~~~~~~~~~
    | mqttServer
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:160:14: error: 'class iotwebconf::IotWebConf' has no member named 'addParameter'; did you mean 'iotwebconf::ParameterGroup iotwebconf::IotWebConf::_allParameters'? (not accessible from this context)
    160 | iotWebConf.addParameter(&mqttUserNameParam);
    | ^~~~~~~~~~~~
    In file included from C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:91:
    .pio\libdeps\nodemcuv2\IotWebConf\src/IotWebConf.h:579:18: note: declared private here
    579 | ParameterGroup _allParameters = ParameterGroup("iwcAll");
    | ^~~~~~~~~~~~~~
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:160:28: error: 'mqttUserNameParam' was not declared in this scope; did you mean 'mqttUserName'?
    160 | iotWebConf.addParameter(&mqttUserNameParam);
    | ^~~~~~~~~~~~~~~~~
    | mqttUserName
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:161:14: error: 'class iotwebconf::IotWebConf' has no member named 'addParameter'; did you mean 'iotwebconf::ParameterGroup iotwebconf::IotWebConf::_allParameters'? (not accessible from this context)
    161 | iotWebConf.addParameter(&mqttUserPasswordParam);
    | ^~~~~~~~~~~~
    In file included from C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:91:
    .pio\libdeps\nodemcuv2\IotWebConf\src/IotWebConf.h:579:18: note: declared private here
    579 | ParameterGroup _allParameters = ParameterGroup("iwcAll");
    | ^~~~~~~~~~~~~~
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:161:28: error: 'mqttUserPasswordParam' was not declared in this scope; did you mean 'mqttUserPassword'?
    161 | iotWebConf.addParameter(&mqttUserPasswordParam);
    | ^~~~~~~~~~~~~~~~~~~~~
    | mqttUserPassword
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:162:14: error: 'class iotwebconf::IotWebConf' has no member named 'addParameter'; did you mean 'iotwebconf::ParameterGroup iotwebconf::IotWebConf::_allParameters'? (not accessible from this context)
    162 | iotWebConf.addParameter(&mqttTopicParam);
    | ^~~~~~~~~~~~
    In file included from C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:91:
    .pio\libdeps\nodemcuv2\IotWebConf\src/IotWebConf.h:579:18: note: declared private here
    579 | ParameterGroup _allParameters = ParameterGroup("iwcAll");
    | ^~~~~~~~~~~~~~
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:162:28: error: 'mqttTopicParam' was not declared in this scope; did you mean 'mqttTopic'?
    162 | iotWebConf.addParameter(&mqttTopicParam);
    | ^~~~~~~~~~~~~~
    | mqttTopic
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:164:31: error: cannot convert 'boolean ()()' {aka 'bool ()()'} to 'std::function<bool(iotwebconf::WebRequestWrapper*)>'
    164 | iotWebConf.setFormValidator(&formValidator);
    | ^~~~~~~~~~~~~~
    | |
    | boolean ()() {aka bool ()()}
    In file included from C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:91:
    .pio\libdeps\nodemcuv2\IotWebConf\src/IotWebConf.h:301:83: note: initializing argument 1 of 'void iotwebconf::IotWebConf::setFormValidator(std::function<bool(iotwebconf::WebRequestWrapper*)>)'
    301 | void setFormValidator(std::function<bool(WebRequestWrapper* webRequestWrapper)> func);
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino: In function 'boolean formValidator()':
    C:/Users/nocturno/Documents/PlatformIO/Projects/220721-131454-nodemcuv2/src/esp8266_mrdiy_mqtt_local_notifier.ino:438:22: error: 'mqttServerParam' was not declared in this scope; did you mean 'mqttServer'?
    438 | int l = server.arg(mqttServerParam.getId()).length();
    | ^~~~~~~~~~~~~~~
    | mqttServer
    *** [.pio\build\nodemcuv2\src\esp8266_mrdiy_mqtt_local_notifier.ino.cpp.o] Error 1
    ============================================================================================================================= [FAILED] Took 19.93 seconds =============================================================================================================================
  • El proceso del terminal "C:\Users\nocturno.platformio\penv\Scripts\platformio.exe 'run'" finalizó con el código de salida 1.
  • Las tareas reutilizarán el terminal, presione cualquier tecla para cerrarlo.

ESP32 Can't find wifi

ESP32 Can't find wifi
serial port pint:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1108
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
Config version: init
Config size: 357
Wrong config version. Applying defaults.
[iwcAll]
|-- [iwcSys]
| |-- 'iwcThingName' with value: 'MrDIYNotifier-c4286f24'
| |-- 'iwcApPassword' with value:
| |-- [iwcWifi0]
| | |-- 'iwcWifiSsid' with value: ''
| | -- 'iwcWifiPassword' with value:
| -- 'iwcApTimeout' with value: '30'
|-- [iwcCustom]
| |-- [mqttgroup]
| | |-- 'mqttServer' with value: ''
| | |-- 'mqttUser' with value: ''
| | |-- 'mqttPass' with value:
| | -- 'mqttTopic (without / at the end)' with value: ''
| -- [soundgroup]
| |-- 'Sound_output' with value: ''
| |-- 'Sound_Volume' with value: '0.5'
| |-- 'samVoice :' with value: ''
| -- 'GoogleTTSvoice' with value: ''
-- [hidden]

Using No DAC output on ESP32, audio output on pins
speaker L & R -> GPIO22
Don't try and drive the speaker pins can't give enough current to drive even a headphone well and you may end up damaging your device
SkipApStartup is requested, but either no WiFi was set up, or configButton was pressed.
AP password was not set in configuration
State changing from: 0 to 1

Brownout detector was triggered

Help required

Unable to play any sound
I uploaded the precompiled "FW_v0.61_ESP8266_d1_mini.bin" to the board
I am using a Wemos D1 mini, configured for NODAC.
I have done initial setup, D1 connects successfully. System plays the boot_sound.h file okay
However I cannot get anything to play I have tried "play", "samvoice" and "googlevoice" no sound is output

Initially I was using "MrDIY_notifier_custom_MQTT.bin" without any problem.

I can toggle between the firmware's using the same MQTT topic's one works the other doesn't .

Ultimately I will not be using the "NODAC" option I am waiting for delivery of Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A. For now I would like to get the "NODAC" option working.

Is there any debug output I can check?


SORRY....

Found the problem.
The firmware "MrDIY_notifier_custom_MQTT.bin" uses a slightly different MQTT topic format.
It uses "/<topicID/play"
where as "FW_v0.61_ESP8266_d1_mini.bin" uses "<topicID/play"
No leading slash


Compared to prebuilt "MrDIY_notifier_custom_MQTT.bin", I get a loud clicking when playing mp3 files when using your file locally compiled.

Can you please post your Arduino->Tools ESP8266 board settings. Thank you

mqqt Does not publish connect or disconnected status (LWT), on the broadcastStatus

i do not see the messages being published to the topic
broadcastStatus("LWT", "online");
broadcastStatus("SSID", thingName.c_str());
broadcastStatus("IPAddress", WiFi.localIP().toString());
broadcastStatus("status", "idle");

i have need to configure some sensors which will be required for the mqtt player , but then i realize that the messages were not published .

esp stuck after select external DAC

i flash nodemcu v3 (esp8266)
No DAC mode works good.
I want use max98357A, I choose external DAC on config web page and saving. After that my esp at stuck, no sound, no web, no wifi. Only blue led permanently light.

in serial port repeating

wdt reset
load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v000a5ed0
~ld
Config version: init
Config size: 357
Loading configurations
[iwcAll]
|-- [iwcSys]
|   |-- 'iwcThingName' with value: 'MrDIYNotifier-25942c'
|   |-- 'iwcApPassword' with value: <hidden>
|   |-- [iwcWifi0]
|   |   |-- 'iwcWifiSsid' with value: 'MG'
|   |   \-- 'iwcWifiPassword' with value: <hidden>
|   \-- 'iwcApTimeout' with value: '30'
|-- [iwcCustom]
|   |-- [mqttgroup]
|   |   |-- 'mqttServer' with value: '192.168.88.50'
|   |   |-- 'mqttUser' with value: 'mqtt'
|   |   |-- 'mqttPass' with value: <hidden>
|   |   \-- 'mqttTopic (without / at the end)' with value: '/esp_not'
|   \-- [soundgroup]
|       |-- 'Sound_output' with value: 'EXTERNAL_DAC'
|       |-- 'Sound_Volume' with value: '0.5'
|       |-- 'samVoice :' with value: 'STUFFY'
|       \-- 'GoogleTTSvoice' with value: ''
\-- [hidden]
EXTERNAL_DAC
Using I2S output on ESP8266 : please connect your DAC to pins :
LCK(LRC) -> GPIO2 (D4)
 BCK(BCLK) -> GPIO15 (D8)
 I2So(DIN) -> GPIO3 (RX)
SkipApStartup mode was applied
State changing from: 0 to 3
Connecting to [MG] (password is hidden)
WiFi timeout (ms): 30000
State changed from: 0 to 3
[MQTT] /esp_not/status  idle
Giving up.
State changing from: 3 to 2
Setting up AP: MrDIYNotifier-25942c
Use password: <hidden>
AP IP address: 192.168.4.1
AP timeout (ms): 30000
State changed from: 3 to 2
State changing from: 2 to 3
Connecting to [MG] (password is hidden)
WiFi timeout (ms): 30000
State changed from: 2 to 3

Google Voice crashes

Hello,

I had this issue in 0.4 and wanted to test out 0.5 before I posted this. When I send a /googlevoice/ broadcast, it works once. After speaking the text, the unit essentially crashes. MQTT status does show offline after a short while. The only work around I have found is to power cycle the unit.

I saw your other bug post, and they may be related. I don't do much with MP3 streaming yet, so I haven't tested that against the new 0.5 code.

The /samvoice/ command doesn't exhibit the same issue as the /googlevoice/ command. Sam voice works normal. Once it's done speaking the text, MQTT reports back that the speaker is idle. I'm only seeing issues with /googlevoice/ command.

analogWrite not work for esp32, using ledc

on esp32, analogWrite function is not avaliable.

// setting PWM properties
const int freq = 5000;
const int ledChannel = 0;
const int resolution = 8;

....

//setup()
  // configure LED PWM functionalitites
  ledcSetup(ledChannel, freq, resolution);
  // attach the channel to the GPIO to be controlled
  ledcAttachPin(LED_Pin, ledChannel);
  pinMode(LED_Pin, OUTPUT);

...
// 
void updateLEDBrightness(int brightness_percentage)
{
#ifdef LED_Pin
#ifdef ESP32
  ledcWrite(ledChannel, (int)brightness_percentage * 255 / 100);
#else
  analogWrite(LED_Pin, (int)brightness_percentage * 255 / 100);
#endif

#endif
}

this will be work fine

MQTT Port

Could you pleased add the Option to configure the MQTT Port?

Tumping sound just before and after playing - ESP8266 no DAC

Works well! But when I play a sound or tone, it starts with a tumping sound, then plays and ends with two tumping sounds. Seems like this occurs when power is put on the pins.

This is with an ESP8266 with L/R wired to RX and GND to GND, plugged to a powered speaker.

mrdiy

what is the username and password to login to 192.168.4.1 ????
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.