Giter Site home page Giter Site logo

Usage notes for ESP8266 about jc_button HOT 7 CLOSED

jchristensen avatar jchristensen commented on September 9, 2024
Usage notes for ESP8266

from jc_button.

Comments (7)

JChristensen avatar JChristensen commented on September 9, 2024

It's hard to know what to say. I haven't gotten into the ESP8266 boards at all. This is not a matter of expense, but rather a matter of time. Certainly they sound like they are capable and a lot of fun. I set the architecture in my libraries to AVR because that's all I am working with. I do not and cannot test on other architectures. There is a proliferation of boards and architectures and while I think that's a fine thing, it forces me to make choices. I can work to continually update my libraries for every new kid on the block (new boards and architectures that I do not, and may never use) or I can work on my own projects.

Sorry for the rant, I hope it explains where I'm coming from. I do appreciate the effort and enthusiasm. I do wonder if I'm in the wrong game if the general expectation is to support any and all comers.

from jc_button.

bperrybap avatar bperrybap commented on September 9, 2024

I had assumed you were at least looking at the esp8266 parts from seeing issue #4.
I get that time is limited and I'm not suggesting that any/all architectures and boards should be supported; however, do consider that there are other (non AVR) more cost effective Arduino solutions for hobbyists out there especially for IoT type projects.
I think the esp modules are by far the most interesting non AVR Arduino supported devices.
For just a few dollars, you get megabytes of flash that can even be used as a file system for file storage, and tons of ram, not mention they are 32 bit and much faster than AVR AND include wifi support including the ability do OTA sketch updates from the Arduino IDE.
There is no other solution out there that offers all this at this price point.

esp8266 modules are easy to use and the espressif documentation including s/w documentation is better than most of what I have seen on many products/projects over the past several decades. It is pretty amazing - they claim to have shipped 100M devices. That is massive.
From what I've seen , so far they have responded to reported issues quite quickly.
I would encourage you to at least have a look at them.
The esp8266 isn't like some of the other architectures that have all kinds Arduino board specific things.
The esp architecture is well defined and since it comes in a module from espressif, esp8266 based boards use the the pre-made modules which dramatically reduces the type of differences you can see in other Arduino type boards/devices.
They are incredible little modules with outstanding bang for the buck with an ever growing amount of Arduino support and readily available projects.

from jc_button.

JChristensen avatar JChristensen commented on September 9, 2024

Thank you very much and again I hope I didn't go off too much there. I am aware of the ESP8266's impressive specifications etc. They certainly have become a huge force in the market and community. I wish I had more time to work with them. Certainly my interest is piqued. The other day I traded a couple emails with a guy that was buying ESP-01 modules from AliExpress for $1.62, and with free shipping to boot. Pretty amazing. When simple things like issue #4 come up, I try to be accommodating and not take a hard line.

from jc_button.

bperrybap avatar bperrybap commented on September 9, 2024

No worries. There is never enough time.
At this point the library works great on the esp8266 modules so no actual library code changes are need for other processors.
The issues I ran into were esp8266 limitations that are well known but I wasn't aware of and were not related to this library at all.

My preference at this point is WeMos D1 mini and the Wemos D1 R1 / Linknode D1.

I've played with them for quite some time testing them with my own Arduino libraries but now that I'm actually using it in a real project (a WordClock) - replacing a Teensy2 with a WeMos D1 mini to be able to auto detect timezones and get network time, I've bumped into some teething issues in various libraries and even a few issues the esp8266 core code itself.
So far, things have been pretty easy to fix and get resolved.

from jc_button.

JChristensen avatar JChristensen commented on September 9, 2024

See, a project like that might get me interested, LOL! How do you auto-detect the timezone?

from jc_button.

bperrybap avatar bperrybap commented on September 9, 2024

You can use Timezone API at http://timezoneapi.io/
The timezone API is really cool. It can locate information based on IP address or city, or actual street address.
It returns a bunch of JSON encoded information about the location including wheather or not DST is in effect that can easily be extracted using the ArduinoJson library.
It is free for low volume use.
You can even try it using a web browser to see the results.
Here is a sample project that shows how to use it.
https://github.com/atatistcheff/ESP8266-Auto-TZ-NTP/blob/master/ESP8266-Auto-TZ-NTP.ino
My word clock project will be using Timezone API to set and keep the RTC module in sync and will also check for DST changes at least once per day so that the displayed time is adjusted automatically for DST changes.

I currently have a little demo project I'm using for testing that fetches the timezone information and displays the date/time city and state on a hd44780 i2c based LCD without having to enter anything - other than the wifi router information to connect to the router.
No RTC, no battery, just a esp8266 and an LCD with an i2c backpack, and it keeps very accurate time and does automatic DST changes.

For another project (The Evil Mad Scientist bulb dial clock), I'll be using a WeMos D1 mini to interface to the AVR on the bulb dial clock to send a modified/local time_t to the AVR over the serial port.
(It will be stuck to back of the main PCB using double stick tape)
Using the serial port to set the time is already supported by the bulb dial clock code. All I have to do for this project is get the network time and adjust the time_t to be a local time and send it to the AVR.
It is a very simple self contained project that adds network time and automatic DST changes to the bulb dial clock.
I originally wanted to use the esp8266 in i2c slave mode to emulate a DS3231 so that the AVR would just get the time over i2c from the esp8266 and not know the difference. Lots of applications for something like this (a networked synced DS3231); However, the esp8266 does not support i2c slave mode due to the way their internal OS works. The Arduino code runs as a task and the interrupt attach stuff doesn't work very well since it doesn't use real interrupts, as such it can't support the real time needs of a s/w based i2c slave.

from jc_button.

JChristensen avatar JChristensen commented on September 9, 2024

I was looking for something like Timezone API a while back. Figured there should be such a thing, but never found it somehow. Thanks!

from jc_button.

Related Issues (20)

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.