How can I connect my coffee machine with my phone via bluetooth? - arduino

I want to connect my coffee maker with my phone so that I can turn it on and off wirelessly. I understand that I have to use some kind of relay and a bluetooth module with arduino, but my coffee maker is old and doesn't have a board inside so none of the online tutorials help. For reference my coffee maker is very similar to this one: https://www.walmart.com/ip/Holstein-Housewares-5-Cup-Coffee-Maker-with-Removable-filter/170970272 (I couldn't find a schematic online).

You have different ways to solve it. If you just want a wireless switch, it is better if you get something on the web and connect your AC plug to your new switch.
If you want integrate your circuit in the machine for more features like make a coffee, you need also a power supply.
What you need is:
- Arduino
- a power supply 230V/5V (or 110V/5V), since Arduino works with 5V.
- a relais module to switch on and off your coffee machine - check this tutorial: https://howtomechatronics.com/tutorials/arduino/control-high-voltage-devices-arduino-relay-tutorial/
- HC05 module
Finally an android app for the HC05 module. Something like this one:
https://maker.pro/arduino/tutorial/bluetooth-basics-how-to-control-led-using-smartphone-arduino
Instead of powering on the led, you have to powering the coffee machine.

Related

Platformio which ESP32 board to pick

Hello and happy holiday to all
I am using platformio for an arduino project for the first time. I have purchased this ESP32 borad:
EC Buying ESP32-DevKitC Development Board ,ESP32 Development Board Equipped with WROOM-32D Module Integrated WiFi Bluetooth Module Microprocessor Interface SPI I2C I2S Suitable for Arduino
I am new to all this and need to know what board I should pick in PLATFORMIO for this board. I have loaded the core 32 from Espressif 32 and have the large list of ESP32 boards.
just want to make sure to pick the correct board to match the one purchased. Here is also the link to amazon on the board purchased.
https://www.amazon.com/dp/B0B64SD16T?psc=1&ref=ppx_yo2ov_dt_b_product_details
Thanks to all you wonderful people who can help.
I have not tried any boards listed as I did not what to damage this new board.
You won't damage an ESP32 by choosing the wrong PlatformIO board. The worst that will happen is that you won't be able to flash your program to the board, or it won't run correctly when it's flashed. While it's not impossible to brick an ESP32 by configuring security options, that's not something PlatformIO is going accidentally do to your board.
You can search the list of available boards on the web and look for a close match.
The most important thing is to get the correct processor type - figure out whether you have ESP32, ESP32-S2, ESP32-S3, ESP32-C3 (or eventually some other kind of ESP32). Only consider PlatformIO boards for that specific CPU. Then look for the size of the flash storage. Usually any board that matches that spec will work.
esptool.py, the program PlatformIO uses to flash the firmware to the board, will detect the CPU type, so if you have an ESP32-S2 and try to flash code for an ESP32 to it, it will detect this and report an error.
In your case you might try the generic Espressif ESP32 Dev Module:
[env:esp32dev]
platform = espressif32
board = esp32dev
If your first try doesn't work, it's safe to try another.

Communication b/w two WiFi modules using Arduino Ide

Firstly, I'll just give you a brief introduction about our project... its "Speech controlled Home Automation System" where we are controlling the Home appliances by the voice or speech commands. We're successfully done with the voice recognition module. But our problem is with achieving the communication between the transmitter {where the user gives the voice command} and receiver {where the home appliances are present} through WiFi i.e. we have got 2 ESP8266 12E modules interfaced with Arduino both at the transmitter and receiver side and these two WiFi modules need to be communicated(To interchange some data sent by Arduinos).So please let us know which Arduino code need to be used at transmitter side wifi module and at Receiver side wifi module and also about the header files or additional softwares(if any)to be used.
you can achieve this by starting one of wifi modules in Access Point Mode and the other one has to be set to Station Mode in order to connect to the first one.
In case you want to add a router, just set both ESP8266 modules to Station Mode and connect them to the router.
And then transfer any data you want through AT commands of ESP8266.
Here is the refrence to them.
https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/
If you are newbie to Esp8266 and Arduino , this will help you.
http://www.teomaragakis.com/hardware/electronics/how-to-connect-an-esp8266-to-an-arduino-uno/
Good Luck !
I worked on a similar system a year ago. I was developing a remote controlled toy. My main difference was I used the ESP8266 without an Arduino attached.
One ESP worked as a a WiFi hotspot and the other connected to it, sending messages through UDP.
For some reason, I could not get the two ESP modules to connect (I think it was a problem with the board I had), but I sent messages from my computer, and it worked out fine. I will not burden you with all of the code, but here is the GitHub link.
All that needs to happen is they will be on the same WiFi network, and then you can use the ESP8266 WiFi library to send messages between the two. Like I said above, I used UDP, which is good for high speed, with no error checking. But there is also TCP (higher up, has error checking code), or you can use the server/client part of the library to set up a full web server and read/write data to it. Without knowing what type of data, I cannot comment on what would be the best method.
As for headers, you will need WiFi.h, and if you are using UDP you will need WiFiUdp.h
You should not need any external software besides the Arduino IDE.
I taught myself from scratch for this product, using two main resources: the Arduino library reference, and the docs on the ESP8266 Arduino GitHub page

how OTA programming for arduino using gsm can be done?

I am doing a project on OTA programming of Arduino at remote place so I need GSM along with Arduino, so how can we do OTA with gsm for Arduino?
I assume you're asking how you can remotely control an Arduino with your phone, right?
I suggest using Bluetooth for this, as it is build into every phone nowadays. You'll still have to buy a module to allow the Arduio to communicate via bluetooth. An example of such a module is the HTC-06, wich can be bought online for less then $10 and for wich there is an exellent tutorial over at instructables.
The phone side of the story depends on what kind of device you're using, this is the official Android documentation, this seems to be the Apple documentation.
Alternatively, if you don't want to write everyting yourself, you can use an app like Tinkernut does is one of his videos.

Best way to transfer data from Arduino to Server

I am new to Arduino and I would like to do a project that sends data, remotely. So, the Arduino would not be connected to Wifi/Bluetooth, Ethernet, etc. Would using a GSM shield be the best way to transfer data? I do not need to make phone calls or send SMS (unless sending SMS would be a better, more reliable, option) just data to a server, who's app I would create. If this is the best option, what else would I need to make this happen? For example, on top of the GSM shield (I am looking at something cheap like this: https://www.amazon.com/Geeetech-SIMCOM-Quad-band-Development-Arduino/dp/B00A8DDYB6/ref=sr_1_2?ie=UTF8&qid=1467651878&sr=8-2&keywords=Arduino+GSM+Shield) what other charges would I need to pay? I.E. would I also need to get another phone plan? Would I have to pay for a gateway service that would receive the cell phone data and then send it to my server?
Thanks your any thoughts on this
Wifi, ethernet or GSM, it depends on what you want to use, and what you have.
With all three you can send data to a server.
There is a bench of Arduino shields. All shields from Arduino come with a library to handle communication.
Other shields from other vendors exist and they provide their libraries too.
For Ethernet you can check the arduino shield https://www.arduino.cc/en/Main/ArduinoBoardEthernet.
For Wifi there are plenty. You have first the arduino shield. You can also take a look at the CC3000. Or the famous ESP8266. For all three you can find libraries.
For GSM, Arduino has a shield and a library. Arduino uses the Quectel M10 GSM moduel. You can find lots of examples in the arduino website and all over the net (https://www.arduino.cc/en/Guide/ArduinoGSMShield).
There exist other shields like the one you mentioned. Libraries does exist for those "other" shields however they are not as maintained as the arduino one.
You need to be careful though, you'll find over Amazon (and most likely on Alibaba) some GSM modules like SIM900A that are way cheaper, those are only dual band and will work only on certain contries.
There is another cheap GSM Module called the A6. It was made by espressif the company behid the ESP8266. It's relatively new and no library exist for it at the time. You can write you own functions to use it, but that would be some extra work.
In all cases, to use a GSM module you'll need a sim card with it's phone plan and all.
Another thing to consider is how to power these shields. They use more power than an Arduino can generate (A GSM modules datasheet recommend to use a power supply that can deliver up to 2A). If you power them straight from the Arduino, you may encounter some strange behaviour.
So the ideal way is to have for them an external power supply with the required amps and have a commun ground with the Arduino.

Arduino controlled robot : without uploading every time

I've recently built an Arduino-controlled robot(4WD platform) using a beginner's kit.
After uploading compiled program into Arduino, I was able to get 4WD motors working.
But when I disconnect the USB cable after successful "uploading" and I turn on the mobile platform switch, it doesn't move a bit.
What procedure is required for getting it to move (I mean.. having machine language permanently stored in AVR microcontroller's memory) without again connecting USB cable to Arduino and uploading program after I find the code working so that just turning on the switch of the robot make it start to move as programmed?
It REALLY sounds like a power issue.
-What is powering your arduino when the USB is disconnected?
The USB from a computer is often pretty strong (hight current) and a 9V battery might not cut it for electric motors and such.
If this is the problem you may want to try a more powerfull battery setup, like 4 AAs.
You may go the LiPo battery route from a source like Adafruit or Sparkfun. Then the problem is that a LiPo battery only produces 3.3V. Ugh, you'll need an circuit to bump the voltage to 5 (which Adafruit sells) and a charger. This may be your best choice if you're planning to use the robot a lot.

Resources