Create your own App! Control an ESP32 (Arduino) via Bluetooth - Part 1

  Переглядів 117,836

MoThunderz

MoThunderz

День тому

IMPORTANT UPDATE 30.09.2022: MIT App inventor updated the BluetoothClient without backward compatibility. As a result, the .aia file gave an error when loaded into MIT app inventor:
"A problem occurred while loading this project. No upgrade strategy exists for BluetoothClient from version 6 to 7".
I updated to the new BluetoothClient, but then I got the following error
"need android.permission.BLUETOOTH_CONNECT permission".
It turned out that the code now needs to ask for permission to use Bluetooth. Both problems are now fixed on my Github page. Please download the source code from my Github page to see how this is done. The rest of the video with the communication to the ESP32 is still accurate:
github.com/mo-thunderz/Esp32B...
Summary:
In this video I show you how to create your own Android App to control an ESP32 (Arduino platform) through Bluetooth (not suitable for IOS). Please make sure your ESP32 has Bluetooth to make this work. I used the ESP32-WROOM-32D. For creation of the app I use the MIT app inventor in combination with the MIT AI2 Companion. Note that this code will only work on Android. The reason is that BluetoothSerial does not work on an Iphone.
For an Iphone only BLE works: • Create a BLE app for y...
Source code on Github:
github.com/mo-thunderz/Esp32B...
MIT App Inventor:
appinventor.mit.edu/
Might you have problems programming the ESP32, pls refer to:
• Programming ESP32: how...
Check out part 2 and 3 as well:
Part 2: Bi-directional communication (send info from ESP32 to phone
• Create your own App! C...
Part 3: How to make communication reliable
• Create your own App! C...
Have fun with the code and let me know in the comments below what application you are working on :-)
Correction:
09:33 NOTE that MIT App inventor updated the BluetoothClient without backward compatibility. As a result, the blocks will look slightly different in the current implementation. See the top of the comments of this video for more details.

КОМЕНТАРІ: 169
@DavidSunshine
@DavidSunshine Рік тому
Amazing!! Thank you for all the hard work you put into making these videos, I appreciate Part 1, 2 and 3. Very clear, concise, and very useful to all of us! Everyone should be using these videos to learn the basics and create awesome projects using the ESP32!
@mothunderz
@mothunderz Рік тому
You're very welcome!
@aofddofa6661
@aofddofa6661 Рік тому
u've no idea how much u helped me .. at least cutting few months in my studying to 1 h of your videos ! .. be blessed
@mothunderz
@mothunderz Рік тому
Great to hear! Thank you for the feedback :-)
@oladunk9986
@oladunk9986 2 роки тому
Thank you very much for sharing this tutorial. I have struggled with some old examples with Bluetooth and Android Studio without success. Your example is much more easier than Java.
@mothunderz
@mothunderz 2 роки тому
Glad it helped! Check out part 2 and part 3 as well on how to realize bi-directional communication and how to make communication more reliable.
@altitude1039
@altitude1039 Рік тому
Wow! Thank you for posting this here. Worked so well after your great instructions and files. I used the onboard RGB led that was on my ESP32.
@mothunderz
@mothunderz Рік тому
Glad it helped! Thank you for your feedback
@jeandeux5012
@jeandeux5012 2 роки тому
Thank you so much for this tutorial! I look forward to viewing more of your content :D
@mothunderz
@mothunderz 2 роки тому
Thank you very much for the feedback :-)
@drabodows
@drabodows 2 роки тому
Excellent video. Keep it up. I'd love to see more App Development with MIT App Inventor and ESP32. Thanks a lot.
@mothunderz
@mothunderz 2 роки тому
Thank you! I am currently working on some videos on WiFi and the ESP32 (webserver, websockets, etc), but can do some more on MIT App Inventor as well. Might you have specific problems you would like me to have a look at, let me know.
@herbertpalines4695
@herbertpalines4695 Рік тому
Thank you for the clear and helpful content! Keep it up!
@mothunderz
@mothunderz Рік тому
My pleasure!
@wimalmanage
@wimalmanage 2 роки тому
Thanks a lot. You have described every things very clearly. Highly appreciated.
@mothunderz
@mothunderz 2 роки тому
You are most welcome, thank you for your feedback.
@user-ve2pj7yl7k
@user-ve2pj7yl7k 2 роки тому
Very professionel working through, Please keep posting. Thank you
@mothunderz
@mothunderz 2 роки тому
Thank you, I will, more to come :-)
@robertsteel3563
@robertsteel3563 Рік тому
Thank You for helping GreatScott! with his latest video!
@tede9921
@tede9921 Рік тому
Came here after the video😊
@robertsteel3563
@robertsteel3563 Рік тому
@@tede9921 That's Fair 😅
@mothunderz
@mothunderz Рік тому
Thank you for your comment Robert! @GreatScott! thanks for referring to my video FYI: Another cool method to interface with the ESP32 from your phone is through WiFi using a web browser: ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html
@robertsteel3563
@robertsteel3563 Рік тому
@@mothunderz Thanx!
@ritesha8050
@ritesha8050 10 місяців тому
​@@mothunderz thanks, Wi-Fi exactly what I was looking for
@timberhoff
@timberhoff 2 місяці тому
Duuuude!!! This is the content that we want!!
@mothunderz
@mothunderz 2 місяці тому
Youre welcome!
@free4salt
@free4salt Рік тому
Wow thank you very much , you are a super educator. I want an app to control the speed and direction of my outdoor battery operated Locos, now i have to learn app inventor , should be a piece of cake. I will try your other videos first. Thank you again Mo
@mothunderz
@mothunderz Рік тому
Thank you very much for your feedback. Yes, if you watch all 3 parts of this video series you should be able to make this app. Good luck with your project!
@qzorn4440
@qzorn4440 2 роки тому
this sounds so exciting... just found out about RemoteXY then came across this... let the show go begin... 😊 thanks. esp32 with onboard oled and bluetooth android-phone
@mothunderz
@mothunderz 2 роки тому
Thank you very much for the feedback! Sounds like a fun project :-)
@rodneysmith1750
@rodneysmith1750 2 роки тому
Good video, new subscriber here. I might suggest for the 1/2 of the world that uses the iPhone, an "Not for IOS warning" could be helpful. Good video though, informative and direct while still being simple in nature.
@mothunderz
@mothunderz 2 роки тому
Hi Rodney, thank you for your comment. I dont have an iPhone myself and only recently discovered that it serial Bluetooth does not work on IOS. Unfortunately UKposts wont let me edit the video once it is uploaded, so I cannot add a comment to the video itself, but I did now add a specific statement that it does not work on IOS. For IOS one will have to use BLE. Will upload a video on that when I find the time to record it :-) Cheers, Sander
@CasaMaryParadise
@CasaMaryParadise Рік тому
Looking forward to that 🎉
@boultifnidhal2600
@boultifnidhal2600 2 роки тому
That was really helpful thank you so much♥
@mothunderz
@mothunderz 2 роки тому
You're welcome, thank you for your feedback!
@inigovillar7640
@inigovillar7640 2 роки тому
Hello mo_thunderz, thank you very much for the tutorial but I have followed all your steps and I cannot connect with the esp32, it is synchronized because the esp32_Control of the android mobile disappears from the screen but it does not mark the status and nothing is seen through the serial port of arduino ide, if you could help me thank you very much for your time.
@roumenvesselinov
@roumenvesselinov Рік тому
You are one of the best!
@mothunderz
@mothunderz Рік тому
Thank you very much for your feedback!
@YigalBZ
@YigalBZ 2 роки тому
Thanks for the clear video. One comment: The graphic interface of MIT inv. is not the best practice: hard to maintain, comment & debug. It may be easy to start with, but there is a long term penalty.
@mothunderz
@mothunderz 2 роки тому
Thanks for the feedback. Yes, MIT app inventor is great for small programs like these, but when things get more complex other solutions are better. What is your favorite app development tool/language? I am now looking into React Native and plan to make some videos on that.
@YigalBZ
@YigalBZ 2 роки тому
@@mothunderz I didn't find yet the simple solution for BT communication between tablet & ESP32. I am trying to learn kotlin, but I am not sure it is the right solution. So far I used Visual Studio C# to communicate over serial port. Probably I it would be easier to communicate over BT with laptop, yet this wont work with Tablet.
@Gallardo6669
@Gallardo6669 Рік тому
Super video, thank you! Great explained! Could you please make a video to do wifi straight phone to esp? I need a longer control range. Thx
@mothunderz
@mothunderz Рік тому
I actually already made those videos. Please see: ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html ukposts.info/have/v-deo/knqfjIF7Z4KipaM.html ukposts.info/have/v-deo/jpF_iqh8bmNysGw.html Good luck with your project!
@Gallardo6669
@Gallardo6669 Рік тому
@@mothunderz thank you kindly. Will check into it!
@attariazeddine6603
@attariazeddine6603 2 роки тому
Excellente présentation...Merci beaucoup
@mothunderz
@mothunderz 2 роки тому
Glad to hear this was helpful for you, thank you for the feedback!
@Netsroht72
@Netsroht72 Рік тому
Thank you very much, now i can open my Garage again via Bluetooth. My old Remote was faulty. At 12:10. Hm, i think, enter the the 6 Digit Code ist much esier.
@mothunderz
@mothunderz Рік тому
Thank you for your feedback Yes, by all means you can manually input the code as well. I mostly use the camera to connect myself.
@filtermindmusic4208
@filtermindmusic4208 2 роки тому
..very good tuto..Thanks!!!👏
@mothunderz
@mothunderz 2 роки тому
Glad you enjoyed it!
@nfcradio4622
@nfcradio4622 Місяць тому
Pin( 1234/abcd ect) Authentication while pairing is possible ?
@fleaniswerkhardt4647
@fleaniswerkhardt4647 2 роки тому
Very good tutorial which has cleared up several things that weren't clear to me. One question though - is it possible to get the Esp32 to communicate with another ess8266 or esp32 via Bluetooth or Espnow_ while the esp32 is connected to the phone by bluetooth? I would like to be able to send several bytes to a secondary esp device based on sensor input that was evaluated on the primary esp32. That data is to be sent only - nothing is received back from the secondary esp.
@mothunderz
@mothunderz 2 роки тому
Hi Fleanis, for communication from ESP32 to ESP32 I do not recommend to use Bluetooth. AFAIK the ESP32 can only connect to one Bluetooth device at a time. You can probably use ESPNOW, though I have not really looked into that yet. What I have used in some projects is Websockets over WiFi. That works very well, is fast and reliable. So if you don't need to save battery power this is probably the easiest for you. ESPNOW is the way to go for battery operated systems. I just started with a video series on WiFi. Part one is online (ukposts.info/have/v-deo/aHGddYqjhW9mumQ.html), but that covers only some basics. In part two I will cover how to setup the ESP32 as a webserver and part three will cover ESP32 to ESP32 communication through JSON and web sockets. Will take me another one or two weeks to get these online...
@fleaniswerkhardt4647
@fleaniswerkhardt4647 2 роки тому
@@mothunderz The application I would need to use the android phone and bluetooth and esp now is in a remote area where there is no wifi network available. I think what you're saying is that If the Esp32 is talking to the phone via Bluetooth - then it might be possible to use espnow for it to talk to another esp processor at the same time. But it is most likely not possible for it to be opening another Bluetooth channel in the same session. These videos you've done are really good by the way. You've got a teaching style that makes it interesting.
@mothunderz
@mothunderz 2 роки тому
Thank you very much for the feedback. As for WiFi: it is really easy to turn an ESP32 into a WiFi Access Point. That way you dont need a router and you can connect multiple ESP32 to a single ESP32 that is in Access Point mode. Alternatively, you can indeed look into esp now. Good luck with your project!
@Nordwelt
@Nordwelt 11 місяців тому
Great Tutorial! I just want to figure out, wther to use the BT-Client or the Server for my similar project. Now I got a good insight into this theme. I also like the Room: It looks like my studio, Ive got exactly the same Strat Sunburst hanging on the Wall \O/ TNX.
@mothunderz
@mothunderz 11 місяців тому
Thank you very much for your feedback! As for the guitar: mine is unfortunately not a real Strat, but it looks good on the wall :-) Good luck with your project!
@davidkempton2894
@davidkempton2894 2 роки тому
Hi. Great video. Thanks for sharing it. Do you know if it is possible to share the .apk file with another user without them having to use the MIT Inventor program?
@mothunderz
@mothunderz 2 роки тому
Hi David, yes, once you have compiled your program to an apk you can share this with other users without the need for MIT Inventor
@SouldiacShaoder
@SouldiacShaoder Місяць тому
i can't find bluetooth with iphone SE3 , i necressy to used Android ?
@superliegebeest544
@superliegebeest544 Рік тому
With this, I could connect a webshop on the internet to a anduiro that controls my.vending machine at home? So people can buy online and pickup?
@mothunderz
@mothunderz Рік тому
Bluetooth is not the right tool for setting up a webshop. However, you can do this by setting up a small webserver on the ESP32/Arduino: ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html However, I would not recommend exposing the Arduino directly to the internet. It would be better to operate the Arduino on a local network and to have a server with a professional website as "Gateway" in between. Good luck with your project!
@user-pu4lm8nf8s
@user-pu4lm8nf8s 10 місяців тому
Thanks a lot for your detailed and understandable videos! All parts were very helpful for me to step into the BLE topic, which I never used before. The example works perfect on my mobile and on ESP32 and I only spent some hours on it. I want to control my garage door with it. Please give me a hint, how I can modify the example, that the app connects automatically with ESP32. I also would likt to have a push button function, that same message is sent to ESP32, when the button is pressed. Only when pressing, the outlook shoud change and afterwards the button shall return to default state and default outlook. thnaks for your feedback.
@mothunderz
@mothunderz 10 місяців тому
Thank you very much for your feedback. Actually, the code in this video uses serial Bluetooth, not BLE. To learn more about the difference between the two, please refer to this video: ukposts.info/have/v-deo/aImnmJWiZ56Tt6c.html If you want to build an App with BLE, see this video: ukposts.info/have/v-deo/iqaTi6JvqZCA0IU.html In MIT App Inventor I have not yet written code that connects automatically with the ESP32, but it should be straightforward. You should be able to run a timer that periodically checks if the ESP32 is available. Basically you setup a timer and 1) Check if Bluetooth is connected 2) If not connected check if Bluetooth is enabled and if you can connect to the ESP32 you want to connect to. To do so you can run the BluetoothClient.Connect function and provide the physical address you want to connect to. Good luck with your code!
@GuesstheSongChallenge
@GuesstheSongChallenge 2 місяці тому
This is very helpful. Thanks. Do you have anything that covers proximity detection to the ESP32? For example, if the phone were closer or further away from the ESP32 then the phone would display some kind of output to inform me.
@mothunderz
@mothunderz 2 місяці тому
It is possible to read out the strength of the Bluetooth signal. That should do the trick for you. However, I have not looked into exactly how that works...
@davyS4v
@davyS4v 8 місяців тому
is it possible to control esp32 via USB-TTL converter sending data to it from an app created with MIT app inventor?
@mothunderz
@mothunderz 7 місяців тому
I have not looked into USB-TTL so unfortunately cannot comment to it.
@surenderkumar-yi1ig
@surenderkumar-yi1ig 6 місяців тому
very useful video thank you
@mothunderz
@mothunderz 4 місяці тому
You are very welcome!
@l.k.610
@l.k.610 2 роки тому
Hey Mo! Thanks for the great tutorial. It works perfectly on my Google Pixel but the problem is that the device does not show up on my iPhone, even with Bluetooth LE apps. Do you have any idea how to fix this?
@l.k.610
@l.k.610 2 роки тому
On further investigation it seems that BluetoothSerial doesn’t work for iPhone, only BLE does. I have 0 experience in coding for this, so you have a code of this using BLE by any chance?
@mothunderz
@mothunderz 2 роки тому
Thank you for your comments L.K. I do not have an Iphone myself, so did not realize that BluetoothSerial does not work on that platform. I have BLE on my todo list, but have not hat the time yet to look into this. I am now first working on expanding my instructions on how to host a webserver on the ESP32 to control LEDs through WiFi. Almost done with the video and will look into BLE next.
@l.k.610
@l.k.610 2 роки тому
@@mothunderz thanks a bunch!
@drjml351
@drjml351 Рік тому
Very professional presentation, thank you. I too got stuck with Bluetooth and the iPhone. I have a button input and want to pass a signal to my iPhone to creat a tone. I can create the tone on the Esp32 and play it on a speaker but I can’t figure out how to pass it to the iPhone. I can use the WiFi in the Esp32 but don’t know how to pass the digital code and then play it on the iPhone. Can you please give me some direction or help? Thanks Dr. J
@mothunderz
@mothunderz Рік тому
Hi Dr J, yes, unfortunately the iPhone does not support serial Bluetooth. However, for your application I would recommend to setup a webserver on your ESP and control the tone through a web interface. Please check out this video (and part 3 as well): ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html Hope this helps. Let me know if it worked out for you. Cheers, Sander
@ryanh5370
@ryanh5370 3 місяці тому
i have it uploaded to my esp32 and it showed like yours with the last line Hard resetting via RTS pin... but i do not see in in my bluetooth devices
@mothunderz
@mothunderz 2 місяці тому
Sorry to hear that this is not working. It is a bit tricky to debug without more information. What version ESP32 are you using exactly? Have you tried if the esp32 is detected in the nRF app? Where are you checking for the bluetooth device? In the MIT app, or in Android itself by long-clicking on the Bluetooth icon and scanning there for devices?
@grahamhik9177
@grahamhik9177 9 місяців тому
wow thank you so much i have only just found you on the net, you really know your stuff. I on the other hand am not as clever as you with this sort of thing. I am trying to understand a project i would like to make, to be honest i am not getting too far, i brought an esp32 Arduino board and a PN532 NFC board. What i was thinking but i don't know if it will work is for me to scan an nfc chip on the pn532 and the esp will collect the address and notify me on my android phone. after reading so much i think it is possible. are you able to give me any advice or direct me to a video that will give me all the info i need to be able to do this please.
@mothunderz
@mothunderz 9 місяців тому
Yes, that is definitely possible. I have not worked with the PN532 NFC board yet, but what I would recommend you is: 1) make the PN532 work stand-alone so that if you scan an NFC chip that you see the read-out on the Serial interface 2) the next step is to make communication work with your phone. There are three ways to do that: Bluetooth (as in the video here), BLE (ukposts.info/have/v-deo/iqaTi6JvqZCA0IU.html) and WEB-based (ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html). Evaluate these three methods and choose one that you like best. Then you make sure that works stand-alone where the Arduino creates a random String and you show that on the phone 3) Finally you combine the two independent codes and you are done Good luck with your project!
@williamhyrkas698
@williamhyrkas698 11 місяців тому
BluetoothSerial ESP_BT; on line 9 of the arduino sketch gives this error when compiling: "'BluetoothSerial ESP_BT' does not name a type "
@mothunderz
@mothunderz 10 місяців тому
Sorry to hear that it is not working for you. What IDE are you using? Arduino IDE? Which version? Did you make sure that the ESP32 is selected under Tools -> Board? I myself have not encountered this error so far, so hope you can resolve it.
@emilmelin4270
@emilmelin4270 2 роки тому
Hello1 Thanks for a really great tutorial. im currently working on a project that needs more than 10 buttons for on and off swiches, how is that done in the code? Best regards Emil
@mothunderz
@mothunderz Рік тому
Hi Emil, if you have more than 10 buttons you will need a little more intelligence in the communication between the phone and the Arduino. Please refer to part 3 of this series where I address exactly this problem. With the code in part 3 you can scale up to 128 buttons. I hope that is sufficient for you :-) ukposts.info/have/v-deo/nYBkabCekaSCumg.html ps: you might want to look at part 2 first to understand the concept behind bi-directional communication: ukposts.info/have/v-deo/h6aImJWvkWdjpmg.html
@boultifnidhal2600
@boultifnidhal2600 2 роки тому
can you please tell me which pin you used for the first button? Looking forward for your response. Thank you so much.
@mothunderz
@mothunderz 2 роки тому
Hi Boultif, do you mean which output pin of the ESP32 I used to connect an LED to? The answer to this is in the Arduino code. For the first button I defined: "int led_pin_1 = 4;" -> this defines the first pin to output 4. The other outputs used are 0 and 2. you can change these pin assignments on line 22 through 24 of the Arduino code. Best Regards, Sander
@boultifnidhal2600
@boultifnidhal2600 2 роки тому
@@mothunderz okay thank you so much. It worked perfectly♥
@medmeed3741
@medmeed3741 2 роки тому
ive got this ereur help please no matching function for call to 'BluetoothSerial::BluetoothSerial()'
@mothunderz
@mothunderz 2 роки тому
Dear Med, sorry to hear the code did not compile for you. It is tricky to debug without additional information, but here some pointers 1) Please make sure you have the ESP32 board configured under "Tools"->"Board"->"ESP32Arduino" 2) It could be that you have defined (or downloaded) a class yourself called BluetoothSerial in the "Arduino\libraries\" folder. Please make sure that this is not the case. 3) If everything fails, can you try on a different PC? Install the Arduino IDE, download the ESP32 boards and try to compile with an ESP32 selected. Good luck!
@egy000
@egy000 2 роки тому
very good. thank you so much
@mothunderz
@mothunderz 2 роки тому
Most welcome, thank you for your post!
@Alex-eu6kn
@Alex-eu6kn 3 місяці тому
Does this mobile App works also without Internet connection after testing and developing ?
@mothunderz
@mothunderz 2 місяці тому
Yes it does. You should compile the app to .apk if you want to run without internet connection.
@BartoszPawlak
@BartoszPawlak Рік тому
HI. I'm having problems with the BluetoothSerial. Code is compiled properly and send to esp, but I cannot find bluetooth device on my phone :( I tried many different coded for that (examples incl.) and no luck. I'm using newest IDE 2.0.1 but i got the same problem on older 1.8.x. I tried two different ESP. SimpleBLE advertises device properly.
@mothunderz
@mothunderz Рік тому
Hi Bartosz, too bad the code is not working for you. Here some pointers: 1) make sure it is an Android phone -> Iphones wont work for BluetoothSerial 2) On your phone, go to settings -> connections -> Bluetooth and search for your ESP32 there (make sure your ESP is running). You should see "ESP32_Control" in the list. Connect to this device. Now you can run the code and the ESP should show up 3) MIT App inventor updated the BluetoothClient without backward compatibility. As a result, the MIT App Inventor code for logging on changed slightly from what is shown in the video. Please download ESP32BluetoothApp.aia from my github page and upload this in MIT app inventor. Hope this helps. Best Regards, Sander
@BartoszPawlak
@BartoszPawlak Рік тому
@@mothunderz i did try to find it in the bluetooth and also with the app nRF Connect (which is scanning all the BT devices even BLE) and i cannot see the device, just like it is not advertising properly :(. i tried to search it also from pc and no luck :( Also i did not install application on the phone yet. I;m stuck at finding the bluetooth device. Shoud i just try with the app ?? (I saw you comment on the new version and i get the new one) I should have started with it - thanks for the tutorials, they are great!
@BartoszPawlak
@BartoszPawlak Рік тому
Ok case solved .... i checked on the other phone and it was able to find that... After restart of my phone it works ... lost a whole day for that ;)
@MKhanfar-MWK
@MKhanfar-MWK 2 роки тому
thanks for a video , is there tutorial with .ino file for wifi method ?
@mothunderz
@mothunderz 2 роки тому
Yes sure! Please see first here for some ESP32 WiFi basics: ukposts.info/have/v-deo/aHGddYqjhW9mumQ.html Then in this video you can control the ESP32 through WiFi using a standard browser (chrome for instance): ukposts.info/have/v-deo/aWWJZI2tfpeHyGw.html Then the video below expands on the one above and shows how to control LEDs, similar to the Bluetooth video here: ukposts.info/have/v-deo/knqfjIF7Z4KipaM.html All source codes (ino files) are available on my Github. Good luck with your project.
@slein55
@slein55 3 місяці тому
I cant get it to work when i remove connection to the Computer and run only external powersupply, WHY??
@mothunderz
@mothunderz 2 місяці тому
This could have various reasons, but what I suspect is that you are working from a laptop and that the power supply of your USB is not very powerful. Maybe you also have low resistors used with the LEDs as well which also increases the power draw. Hope this helps
@ArbazKhan-pb1hr
@ArbazKhan-pb1hr Рік тому
Sir if clicked push button on arduino I want a text message in mit app, how can do it? Sir plz help
@mothunderz
@mothunderz Рік тому
Please refer to Part 2 and Part 3 of this video series. If you have the code from Part 3 -> you can send data from the Arduino to MIT App Inventor with: send_BT(id, value); Say you define id=8 for your button, then if the button is pressed you do send_BT(8, 1) use the code from part 3 in MIT App Inventor and there in the section "When Clock1.Timer" this command will be received. You can check if global id == 8 right under the dark green field that writes the received id and value to the label and implement your code there.
@DanielHofer
@DanielHofer Рік тому
Thanks a lot for this tutorial! I searched for a solution to connect my lora-wan lilygo t-beam with my android phone with btle to send gps data right to the phone. I will write an app to open the coordinates with an offline map to show the location of the gps-enabled lora-wan sending device off-grid.
@mothunderz
@mothunderz Рік тому
Hi Daniel, please note that I am using serial bluetooth in the example. I have tried to setup BTLE with MIT App Inventor, but found it not very stable. Serial bluetooth will work just fine, but it does consume more power than BTLE. So if your lilygo is connected to power or if you dont access the lilygo with your phone all the time then there is no need to go to BTLE. However, if your phone is connected to the lilygo all the time and the lilygo is battery operated, then I would advise looking into BTLE. Good luck with your project!
@DanielHofer
@DanielHofer Рік тому
@@mothunderz Thank you for the hint, I'll pay attention to this issue with BTLE.
@inigovillar7640
@inigovillar7640 2 роки тому
Hi mo_thunderz, thank you very much for the tutorial but I have followed all your steps and I can not connect with the esp32, it is synchronized because the esp32_Control the android mobile disappears from the screen but it does not mark the status and nothing is seen through the serial port of arduino ide. If I eliminate the block of errors in the inventor app, it appears in the mobile error 515 not connected to bluetooth device.
@mothunderz
@mothunderz 2 роки тому
Dear Inigo, I am sorry to hear the app is not working for you. You mention that you have a "block of errors" in the inventor app. Do you mean that when you go to the "blocks" section of MIT App Inventor that you see on the left bottom errors/warnings? This should not be. I just downloaded the exact code again from Github as I posted it and it should have no errors or warnings. If you do have an error here, can you tell me what this error is?
@inigovillar7640
@inigovillar7640 2 роки тому
@@mothunderz Dear mo: downloading the exact code from github as you published it, the mobile's .apk file does nothing, does not put or connect, If in inventor app I remove the error block, I copy it and another .apk file comes out when running it in The mobile synchronizes me but the connected status does not appear and the errors of 515: no connected to bluetooth device and 516: unable to write: broken pipe appear, but after a lot of tinkering it has been solved by changing the mobile (the old era of android 3.4) and the one that works is from android 5.4. Thank you very much for your time and keep on doing an extraordinary job
@mothunderz
@mothunderz 2 роки тому
Dear Inigo, thank you very much for your comment. I did not realize that MIT App Inventor only works properly on a modern Android version. According to the MIT App Inventor website it should run on "Android Operating System 2.3 ("Gingerbread") or higher", but probably this is a requirement of the Bluetooth functions used. Great to hear you got it working 😃👍
@shaknit
@shaknit Рік тому
Does this work the same way with an iphone or are the more steps that need to be taken
@mothunderz
@mothunderz Рік тому
Unfortunately an Iphone does not support serial Bluetooth. Instead you must use BLE. I havent gotten around to making a BLE video, but plan to do that next. However, if you want to control your ESP32 on an Iphone then WiFi may be an alternative. In this video I show how to control LEDs through WiFi: ukposts.info/have/v-deo/knqfjIF7Z4KipaM.html
@saketsingh3539
@saketsingh3539 Рік тому
what happen if we want to use this following code for more than 15 button?
@mothunderz
@mothunderz Рік тому
There are many ways to control more than 15 buttons. If you watch part 2 and part 3 I show how to control up to 128 different buttons, sliders, etc.
@rob60
@rob60 2 роки тому
Great video. I'm trying to make an app with MIT inventor for a dc motor controller that has forward, reverse buttons with a speed slider control bar. I am using an esp32 and L298N but not being very successful. If you can do this then I would be grateful if you can post an ESP32 sketch with MIT design app and blocks. ? Rob
@mothunderz
@mothunderz 2 роки тому
I have not dealt with sliders yet in MIT. At the moment I am first finishing another project, but after that can look into it.
@rob60
@rob60 2 роки тому
@@mothunderz Thanks for your reply and great if you can help. . I found a good video with an arduino board if this helps but none with an ESP32 ukposts.info/have/v-deo/cGGhjpB-rKRi0KM.html
@mothunderz
@mothunderz 2 роки тому
Hi Rob, pls see the link below for a quick example of how to use a slider with the ESP32. I added a description of this quick implementation in the readme. Let me know if this works for you. github.com/mo-thunderz/Esp32BluetoothSliderApp
@rob60
@rob60 2 роки тому
@@mothunderz Thanks I've downloaded your files and it will give me something to work with. I'm running a 12v DC motor so I'll have to link the ESP32 to an L298N motor driver. The L298N will receive 12v and output 12v to the motor. It will also power the ESP32 with 5V. I'll have to alter your sketch outputs to define ENA, IN1, IN2 for the L298N. and set the PWM properties. A bit more work to be done but hopefully I'll get there.
@mothunderz
@mothunderz 2 роки тому
Good luck, I dont have an L298N here, so cant help you more than this for now. The code for the ESP32 will be super simple: I already made the slider from 0 to 255, so in the "if (set_slider) {" section you can just write the value "incoming" to an analog port. Please note though that the ESP32 operates at 3.3V, not at 5V. However, from what I can see here it should still work: forum.arduino.cc/t/arduino-l298n-motor-driver-and-arduino-due/464885/9
@user-gz4bi4kn2i
@user-gz4bi4kn2i Рік тому
very good video Thanks
@mothunderz
@mothunderz Рік тому
Glad you liked it!
@iyussukendar
@iyussukendar 10 місяців тому
Hi, thanks for the great video. It is working perfectly on AI companion but when I try to build the .apk and install the .apk on my android phone, it is not working on the part Connect To Bluetooth. The list of BluetoothClient are not showing up. Do you have any idea what is causing this matter since it is working perfectly fine on AI companion?
@mothunderz
@mothunderz 10 місяців тому
Thank you VERY much for your comment. Some way or the other MIT App Inventor changed something (again) with the Bluetooth interface. I now had to add one more permission (BLUETOOH_SCAN) and in addition I upgraded the Bluetooth.Client to the 2023 version. Please download the latest version from my github and try again: github.com/mo-thunderz/Esp32BluetoothApp Let me know if it works now!
@iyussukendar
@iyussukendar 10 місяців тому
@@mothunderz It is working. Thanks a lot for a very quick reply..
@mothunderz
@mothunderz 10 місяців тому
You're welcome, very glad to hear that it is working!
@mubasirkhafid9582
@mubasirkhafid9582 5 місяців тому
hey mr is it possible to connect the mit app with bluetooth in real time?
@mothunderz
@mothunderz 4 місяці тому
I am not sure what the question is: bluetooth is always a real-time connection. Do you mean that it automatically connects without one having to manually select where to connect to -> yes that can be done -> just skip the "selection process" and search for a certain name to connect to.
@williamhyrkas698
@williamhyrkas698 11 місяців тому
Sorry, I changed the board to ESP32-WROOM-DA module and it now compiles.
@mothunderz
@mothunderz 11 місяців тому
Great to hear you managed to solve the problem 🙂
@yaochalo9692
@yaochalo9692 2 роки тому
How i can receive value from android studio app Instead of mit app ?
@mothunderz
@mothunderz 2 роки тому
I am not familiar with android studio, but did play around with Angular. The concept is going to be the same, just the coding different. Unfortunately I dont have code to get you started as I am not familiar with Android Studio...
@yaochalo9692
@yaochalo9692 2 роки тому
@@mothunderz thank you..
@dantrrrrrr8502
@dantrrrrrr8502 2 роки тому
nice job
@mothunderz
@mothunderz 2 роки тому
Thank you! Cheers!
@electronicslover1120
@electronicslover1120 Рік тому
Hi, amazing tutorial, can u make app to connect using Bluetooth low energy, please please please
@mothunderz
@mothunderz Рік тому
I tried BLE with MIT App Inventor, but that was not very stable unfortunately. I since then started programming Xamarin and with that BLE is more stable, but Xamarin has a very steep learning curve so you must be quite devoted to make an app with that. At the moment I dont really have time to make vids, but will give it some thought when work becomes more manageable again.
@electronicslover1120
@electronicslover1120 Рік тому
@@mothunderz Thankyou very much
@mothunderz
@mothunderz 11 місяців тому
Here the vid with MIT App Inventor: ukposts.info/have/v-deo/iqaTi6JvqZCA0IU.html in addition I have added a video on Xamarin: ukposts.info/have/v-deo/i5Z4qYKqgpuAxnk.html
@nukecoba4755
@nukecoba4755 4 місяці тому
Hii I have problem with "BluetoothSerial.h" it give me error Verifying ... Can someone help me to understand what i do wrong? Thanks for the awsome video
@mothunderz
@mothunderz 2 місяці тому
Thank you for the feedback. Sorry to hear you are experiencing problems with the code. Did you try the final code for the project? Did you make sure you compile it for ESP32 (ONLY then it can compile without errors). Here the final code: github.com/mo-thunderz/Esp32BluetoothApp
@MrMurat1997
@MrMurat1997 2 роки тому
what does the 516 errornumber do?
@mothunderz
@mothunderz 2 роки тому
Could it be that you are working on an old Android version? That can be the cause of this problem. See as well: community.appinventor.mit.edu/t/how-to-fix-error-516-unable-to-write-broken-pipe/20693
@serafinramospaz7288
@serafinramospaz7288 2 роки тому
great!
@mothunderz
@mothunderz 2 роки тому
Thank you :-)
@RaPtor452
@RaPtor452 2 роки тому
Can anyone help me? I created an app via this tutorial but would like to create code for the ESP32 to control NeoPixel matrix LEDs. Is anyone familiar with that?
@mothunderz
@mothunderz 2 роки тому
@RaPtor452, unfortunately I do not have this device myself, but Adafruit has included various examples in the library, so I would recommend to check these out. However, if you want to control the NeoPixel matrix with the ESP32, the main challenge will be that the ESP32 operates at 3.3V while the NeoPixel needs 5V (at least the one I have found on the internet). In order for it to work you properly, you will most likely need to convert the 3.3V data signal from the ESP32 to 5V. You will need some additional hardware for that (like for instance the 74AHCT125 level shifter). Good luck with your project!
@RaPtor452
@RaPtor452 2 роки тому
@@mothunderz Thanks for your reply. I will take a look at the Adafruit examples. I was btw able to light up the Neopixel with the ESP32, but was using USB input, so the voltage was 5V.
@mothunderz
@mothunderz 2 роки тому
@RaPtor452, yes, with 5V you will be able to light up the Neopixel. I was talking about the data signal from the ESP32 to the Neopixel. The Neopixel expects a datasignal between 0V and 5V while the ESP32 gives a signal between 0V and 3.3V. It can be that it works for you, but online I have seen that sometimes some LEDs dont work if you use a 3.3V drive signal from the controller.
@mustafa97radhwan
@mustafa97radhwan Рік тому
how can l send more than 1byte??
@mothunderz
@mothunderz Рік тому
See my comment in video Part 3
@vancefd7399
@vancefd7399 2 роки тому
Can u make clock built in to esp32 & make timer by clock like blynk to turn on/off automatic by set time in mit app ? Im try but never succes. Hope u can help with video 🙏 Thx.. from ur's new subscriber
@mothunderz
@mothunderz 2 роки тому
Hi Vance, I am not fully sure what you want to implement, but I think the main missing piece for you is communication from the ESP32 to the phone (in this video I only show communication from the phone to the ESP32). Pls confirm, not a problem to show you how to do that.
@vancefd7399
@vancefd7399 2 роки тому
@@mothunderz in the blynk app, there is a widget tool called "Timer", can you make something like that from the MIT App for esp32? Sorry for bad english 🙏😂
@mothunderz
@mothunderz 2 роки тому
Hi Vance, please check out my follow-up video on how to control an ESP32 with MIT app inventor. I tried to specifically address your request in the second part of the video. Good luck with your project! ukposts.info/have/v-deo/h6aImJWvkWdjpmg.html
@vancefd7399
@vancefd7399 2 роки тому
@@mothunderz thx so much, hope u still make next step for this project. I cant wait to learn more from u 🙏😂🔥
@mothunderz
@mothunderz 2 роки тому
Hi Vance, some way or the other UKposts does not let me answer the comment you wrote in the Part 2 video, so let me answer here. I have checked the video you sent me on the functionality you would like to have. In principle you should be able to make this with the code of part 2, the one thing you need in addition is to make the ESP32 aware of the time of day. This can be done in many ways. You could tell the ESP32 the time-of-day through Bluetooth, or you could do this by giving the ESP32 access to internet: github.com/jrickard/ESP32-TOD Hope this helps!
@AdiSaputra-ys4bv
@AdiSaputra-ys4bv Рік тому
can esp32 use bluetooth password in this case?
@mothunderz
@mothunderz Рік тому
Hi Adi, my apologies, but I have not tried to setup a password with Bluetooth yet
@AdiSaputra-ys4bv
@AdiSaputra-ys4bv Рік тому
@@mothunderz can u try? 😬
@saran223081
@saran223081 2 роки тому
🌹
@KinCony
@KinCony 2 роки тому
good
@mothunderz
@mothunderz 2 роки тому
Thanks for the feedback KinCony :-)
@nikdonikde1717
@nikdonikde1717 Рік тому
Mít app iinventor
@bezelyesevenordek
@bezelyesevenordek Рік тому
bruh
Try these 16 Brilliant ESP32 projects!!!
11:18
ToP Projects Compilation
Переглядів 475 тис.
Stylish cement speakers created by a master!
00:44
Kree Creates
Переглядів 8 млн
HC-05 Bluetooth Module with Arduino-MIT App Inventor
27:57
BINARYUPDATES
Переглядів 921 тис.
How to Build an Android App to Control Your WiFi Enabled Arduino
12:55
ForceTronics
Переглядів 298 тис.
BLE with ESP32 tutorial part 1: the Server
25:23
MoThunderz
Переглядів 62 тис.
Create a BLE app for your mobile phone! Control an ESP32 with BLE
47:04
How To Build Custom Android App for your Arduino Project using MIT App Inventor
9:07
Bluetooth Arduino RECEIVE data + Chart
9:26
Electronoobs
Переглядів 297 тис.
Bluetooth LED Control App with MIT App Inventor - STEP By STEP
11:02
Enjoy Mechatronics
Переглядів 65 тис.
IoT - real time temperature chart in Webbrowser with ESP32 and WiFi
11:08
Stylish cement speakers created by a master!
00:44
Kree Creates
Переглядів 8 млн