Please make support for Arudino Uno WiFi

Hello, few days I found out about Cayenne. Since internet connection is necessary for this to work I wanted to buy ethernet or WiFi module, but they are not available for purchase momentary or very expensive with long delivery times. I did manage to buy new Arduino Uno board with WiFi (no shield necessary). The code does not want to work with it since it expects a shield. Could you please add support for this Arudino Uno board?
Sincerely yours,
Dalibor

2 Likes

Hi @dalibor.kuhinek, thank you for your interest in Cayenne and welcome to the community!

I donā€™t have this board at my desk to test this out first hand, but I see that it is running integrated ESP8266 for its WiFi connectivity. Until we have official support in the UI, I strongly encourage you to look at the ESP8266 threads we have here, especially this one where users have been able to connect this device to the platform:

@kreggly in that thread had success connecting it in his June 26th post and shared a How-To. If you get stuck weā€™ll do our best to help you out in any troubleshooting.

Iā€™ve added official support for this board to the Cayenne Roadmap for future development.

Hi @kreggly can you help me to provide the script for Arduino UNO Developer Edition built in WIFI? I have read your thread but cannot adapt any script matching to connect the Device using Cayenne.

@rsiegel in this Uno Wifi Developer Edition, we can connect to the internet by selecting wifi thru the web interface built in from the device. So I think we just need the code to connect to the cayenne and no need to setup the wifi again. I think the logic must be like we connect with raspberry pi, but Iā€™m not that expert to adapt the script to the Uno wifi. Maybe you can help?

I donā€™t have one, so all I can do is review it and male suggestions.

I assume you will want to run it as a standalone with the pre-programmed AT command set and your micro talks to it serially.

I have been able to get connected to Cayenne this way.

Until I can get back to you, search the forum for esp shield, I uploaded a sketch.

Cheers,

Craig

I have done test and many kinds of research, but nothing works. Iā€™m ended with plug Ethernet Shield to my Arduino UNO Wifi. Itā€™s ridiculous tough but at least it worked for me. I think Iā€™m better waiting for Cayenne to support the Arduino UNO Wifi
Doing research takes times a lot, the result still unpredictable, and I seems donā€™t have too much time for more :frowning:
Maybe after Cayenne update support to the device, I will unplug the ethernet shield, hoping all the script still the same and the device still working. Who knows? ^^

Hi @willy,

On further review, there is this little diddy to deal with:

I expect this needs a different library that interleaves the serial switching to talk to the ESP and keep the debug port free.

It may be as easy as grabbying the uno wifi library and replacing the espwifi reference with UnoWiFiDevEd.h.

From the learning tab at Arduino - Home

If you are using the Arduino IDE 1.7.x then continue to use the ArduinoWiFi.h library.
Instead if you are using the Arduino IDE 1.8.x then download the UNOWiFiDev.Edition library from Library Manager and modify the code, replacing #include <ArduinoWiFi.h> with #include <UnoWiFiDevEd.h>

Cheers,

Craig

2 Likes

Thanks @kreggly for reviewed this far and give the clue, but it still doesnā€™t work.

Iā€™m using Arduino IDE 1.8.1 and have tried to include the UNOWiFiDev.Edition, here are what I have tried:

ā€” Try 1 (Assume we need only parse the token to cayenne because Internal Wifi is already connected to the internet):

#include <UnoWiFiDevEd.h>
#include <CayenneEthernet.h>

char token[] = "X";

void setup()
{
  Serial.begin(9600);
  Cayenne.begin(token);
}

void loop()
{
  Cayenne.run();
}

ā€” Try 2 (Assuming that we use Uno with Wifi Shield):

#include <UnoWiFiDevEd.h>
#include <CayenneWiFi.h>

char token[] = "X";
char ssid[] = "X";
char password[] = "X";

void setup()
{
  Serial.begin(9600);
  Cayenne.begin(token, ssid, password);
}

void loop()
{
  Cayenne.run();
}

All the source code successfully uploaded with no errors, but Cayenne still not detected the device. Do you have any clue what else I can try? Thanks again.

Hi @willy @kreggly @dalibor.kuhinek ,

Sorry for joining the Uno WiFi party a little bit late. I also tried for many hours to get Uno WiFi working with Cayenne several months ago when the developer edition first came out. Unfortunately, I was not successful. I talked with Arduino yesterday and looks like there are some ESP module complications on this developer edition of the board. I guess this is why they label it a ā€˜developer editionā€™ :slight_smile:

Arduino said they came up with a workaround so once I have the code/process I can share with you guys to see if will help. Sorry about this! If you end up getting the Uno WiFi to work please share how :slight_smile:

-B

2 Likes

Hmmm, I was hoping that would work. Time to break out the scope and see if the I2C UART is getting the right address, etc.

Cheers,

Craig

Thanks alot for the info. Iā€™m happy to know that someone has tried that further contacted the arduino. Hoping that arduino give a solution or at least a clue to try.

Anyway i was thinking if the Arduino Uno Wifi already connected to the Internet by the internal wifi, maybe we only need a script to point the device to cayenne like we add manual route in a router, right?

I have searched the Cayene Wifi libraries to adapt some codes which point the device to cayene, but couldnā€™t make it work. Maybe someone who better in programming can help with the code.

Confirming it doesnā€™t work for me either. Unfortunately I tried everything I could think of as well, hopefully @kreggly has some better luck!

1 Like

@adam,

I donā€™t actually have one, or I would :frowning:

Best I can do is analyze the libraries and see if anything jumps out at meā€¦ which oddly, has been pretty successful.

Cheers,

Craig

Hi Bestes,

Have you follow up the Arduino team about this update?
I am thinking it should be easy for Arduino to make this device like Arduino + Wifi shield so Cayenne will catch this device.

Iā€™m also interested to get this working with Arduino Uno Wifi. Bought this only to get connected to Cayenne, unfortunately to find out itā€™s not yet supported. Please try to get this fixed soon! :slight_smile:

Hi @seppo.hautala,

Even Arduino is having trouble with this board. There is supposedly a fix, but AFAIK it hasnā€™t been released yet.

When it is, weā€™ll try and get this integrated into Cayenne.

Cheers,

Craig

1 Like

I now has an Arduino Uno Wifi!!!

@bestes, did the Arduino team supply an official WiFi class for the ESP using the I2C UART, or are we still destined to float helplessly in the Abyss?

ArduinoWiFi is supposed to work, but from everything Iā€™ve read, it doesnā€™t. Iā€™ve seen people work around this and use the Caio library, which seems to support I2C UARTs though, and get generic MQTT working as well as implemented using the Blynk REST interface.

Ultimately, I know continued support is converging towards MQTT, so that will be my first priority with the UNO Wifi.

Cheers,

Craig

2 Likes

As mentioned by Willy, I was thinking that maybe we only need a script to point the device to the cayenne API, since the arduino is already connected to the Internet by the internal wifi.

Is there an easy way to do this ?

Thanks

1 Like

I think the one who can answer best for this must be @kreggly
We are waiting for you Craig :slight_smile:

I tried to make heads or tails of things on the weekend.

Ultimately, I see two ideas:

  1. Re-program the ESP in DCU mode with AT firmware and run the standalone
    script on the ā€œunoā€. That way we only need to ensure the i2c Uart is
    working right.

  2. Take advantage of the ability of the ESP to be programmed with Cayenne
    and build a framework for it to control the ā€œUnoā€ pins. More code, but
    frees up the ā€œUnoā€ to do more things.

I have at least a week of work to do on Cayenne things and not enough wax
in my candles.

Cheers,

Craig

Hello,
I have added a response on another (related) thread : Arduino UNO WiFi to cayenne dash board - #25 by adam. I am now using the PubSubClient MQTT library from Nick Oā€™Leary (available on Github). It succesfully attempts an MQTT session with the Cayenne MQTT Server, but the Server rejects the Arduino (RC = -2). Details on the other thread.
Thanks for any help