Giter Site home page Giter Site logo

esp_wake's Introduction

esp_wake

Esp wake is an esp32S2 based alarm clock i made for myself using an esp32S2-mini2 module, various sensors and a modular frontend for displaying the time.

The hardware is now open source and can be found in /hardware/ !

a few pictures:

front view with optionnal side OLED:

front cover off:

removed frontend (delided esp and the audio circuit is a bit toasty, that's only because of multiple reworks damaging it overtime):

(note that this circuit is the old one, this is the new working audio circuit that uses an I2S chip instead of the esp's terrible DAC):

don't forget that you'll need a small speaker that is not listed in the BOM! Also the pin header male/female have been reversed since V1.3 so watch out for that (visible in the latest backend render)

Also note that the schematics/pcb projects are provided as easyeda pro projects (.epro), and the 3d models are provided as a single .STEP file.

compiling

You'll need to compile this by importing the entire root folder as a PlatformIO project. Note that even if you're supposed to be able to flash the esp32 S2 over usb, in practice you may need a usb<->uart adapter for the first bootloader flash as i've received some ESP32S2s that lacked said bootloader and wouldn't flash over usb.

lastly you need to create a source file: C:/cred/cred.h structured like :

#define WIFI_CREDENTIALS "SSID;password"

This is not needed anymore, the credentials are now on the micro sd card.

Micro Sd card setup

You'll need a micro sd for this alarm clock to work, it'll contain wifi credentials, you music, as well as your programmed alarms. It can also be used to get a history of the sensors data if you choose to uncomment that feature in the main source file.

You need to setup the micro sd like this:

config/
    alarms.kcv <- this file must be created empty, it contains your alarms, see the chapter on this file for more info
    config.kcv <- reserved for later
    wifiCredentials.kcv <- contains your wifi credentials
logging/
    <- can be empty but must be created, the alarm clock shoudl create the files by itself for data logging
music/
    phoenix.wav <- for now the clock only supports a single alarm sound and it has to be .wav with this name in this folder!

wifiCredentials.kcv

This is arguably the most important config file, it contains one wifi credential per line in this format:

SSID1;PASS1
SSID2 with spaces supported;Pass2
... other cred combos for your various networks

it doesn't mind spaces since it splits based on line returns ('\n') and commas (';'), note that neither your SSID nor your password must contain extra ; that would break it.

alarms.kcv

here is an example of the alarm format:

15;7;0;0;1
16;7;0;0;1
17;7;0;0;1
18;7;15;0;1
19;6;45;0;1

here is the data it contains:
day_of_month(0->31);hour(0->60);minute(0->60);second(0->60);active(0/1)

the web interface

there is a simple web interface on this alarm clock that allows you to remotely edit alarms.kcv. It can be accessed by simply opening a web browser to the ip address of the alarm clock (which you can find in your router's web interface usually):

The interface is pretty self-explanatory, you edit this as if you were editing alarms.kcv directly and click ok. Note that if you need to go back to the interface once you clicked ok you may need to open a new tab for that (small server side bug due to client caching).

esp_wake's People

Contributors

kanken6174 avatar

Stargazers

Arbel Arad avatar

Watchers

 avatar

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.