Hey, I’m making LED lamps that I want to sell and I’m looking into making them controllable via smartphone. What I’d really like is for the user to simply download an app, connect to the lamp (preferably via BLE) and then be able to change colour, preset patterns, brightness etc.
WLED looks interesting but it’s a Wifi connection, so what would be the end-user experience in terms of set up? Would they need to plug the ESP32 board into a computer and download software to configure it to their own Wifi network? I’d like the setup process to be as user-friendly as possible and bluetooth would probably be an easier setup than Wifi, but I’ve yet to find a nice app that supports Bluetooth connection
Could you provide a link to one of the example projects you have tried, and what you believe was unsatisfactory about it. Most likely the problem could be addressed.
Bluetooth Controlled LED : 5 Steps (with Pictures) - Instructables
Arduino with Bluetooth to Control an LED! - Hackster.io
Hi Jeff, I haven’t tried any options yet. I’m just at the early research phase and trying to figure out what my best option will be.
MIT app inventor might be an option, but the interfaces it creates look clunky and I’m not sure how customisable it would be. Looks best suited to DIY projects, not commercial grade. The connection process for the end-user doesn’t sound as streamlined as I’d like and I’m also not sure if it allows for all the functionality I’m looking for, eg changing pattern presets for the digital LEDs.
WLED looks like it would be a good option, as long as the process is simple for the user to get set up. Maybe I need to get in touch with users of WLED specifically and find out. Another option might be Blynk, although it no longer supports Bluetooth.
The other option I’m looking at is using a no-code app builder to create my own app, but I’m not sure any of these platforms are capable of building an app that can communicate with a device via Bluetooth. So it might turn out that my only really viable option would be to pay a developer to build an app, which could get very expensive, although 5iverr might make it affordable.
If you want a full-featured commercial-grade application then you need a professional developer, or spend the time to get to that level with your own coding. One way to develop the required skills is to use an accessible development tool and look at the code it creates. You can’t do that with MIT App Inventor, but you can convert it to a language that allows you to adjust and extend the application. See:
Java Bridge (appinventor.org)
There may be similar facilities available for other block-based app development platforms.
I think that learning coding myself to the point that I could develop and maintain a professional grade app would be a huge undertaking and isn’t really something I want to do. So it might end up that my only real option is to hire pros, which might not be an option at all depending on price.
Thanks Jeff for helping to narrow it down a bit
Another option is to use a MCU that provides a WiFi connection (a hotspot) such as ESP8266 or ESP32. The user connects to the local WiFi, opens their browser and sees the web page provided by code in the MCU.
The WiFi connection to the local hotspot can be automatic, so the setup on the user’s phone is the same as currently happens when they visit the local mall for the first time and want to log in. They can also connect from any PC or laptop that has WiFi.
The web page is rendered by code in the MCU, so you can use any of the many examples available as a starting point, and gradually enhance it to the standard you want. Adding and expanding some existing HTML is much easier than creating an app from scratch. The result can look thoroughly professional because it is rendered by the user’s browser like any other web page.
WiFi has a much greater range than BlueTooth, even with the smallest ESP devices. The only configuration required is to set a password for the hotspot if you think it’s likely that neighbours will attempt to adjust the lighting! That could be done using a button on the web page.
That sounds like it could be a good option and I was already planning to use an ESP32 MCU. I’ll try and find some vids on YT demonstrating what you explained.
So from an end-user perspective, when the lamp has power they’ll see an available WiFi network for the lamp. Connecting to that will take them to a webpage and this page will act as the interface to control the LEDs. Is that about right?
So as far as I can tell I should be able to use WLED (instead of a web page) with the MCU configured as an access point. Looks like that might be the quickest, cheapest, most elegant solution.
I basically had the wrong idea about how the WiFi connection functions, thinking it would require a router and internet connection. Thanks for explaining.
Welcome to the forum
It sounds like you’ve got a few options, an early prototype might be the next logical step to find out what the next challenges will be.
As @Jeff105671 has covered if you want professional developer help then it’s best to employ a development firm. We’re happy to help with free advice but we can only develop in public so the whole community can benefit.
Looks like Jeff has found some great resources to work as a starting point for the exploration of ideas.
Hi Trent, thanks for the friendly welcome! Yes I’ll build a prototype next and try to get it working with WLED