I made a project with an Arduino Uno, a 16x2 LCD display and a DS18B20 temperature sensor. It shows the temperature in the display:

Arduino Uno with 16x2 LCD and temperature sensor

I want to connect it to Internet so I got a Wemos D1 Mini. It works great: it send data through my router.

But I need to connect my project with the Wemos D1 Mini: Wemos D1 Mini pins I think that I just need to send the data (temperatures grades) from my project to Wemos so then Wemos resolve it.

How can I do it?

  • A) Throw out the Arduino, and just connect your display and sensor to the WeMos directly.
  • B) Connect the Arduino to the WeMos using UART, SPI or I²C and send the temperature value to the WeMos. Keep in mind that the Arduino UNO is a 5V device, and the maximum voltage for the ESP8266 is 3.3V, so you'll need a level shifter. You can send the temperature as a binary value (beware of framing errors), but the easiest way is to use a text-based protocol. Since you just have to send a single value, you can just use a single delimiter (e.g. new line). That makes it very easy to parse.
  • Option A): Do I need a I2C converter between Wemos and LCD? Like this: digibay.in/image/cache/data/sachinelectronics/ED01/…. Option B: Do you have a sample code or schematic code? Thanks. – Roby Sottini Jan 7 '18 at 16:53
  • 1
    A) you could do that to save pins, but you don't have to. B) Google for Serial input basics by Robin2 on forum.arduino.cc – tttapa Jan 7 '18 at 22:07

If you want to use the Wemos D1 only as a 'network adapter', put a firmware into esp8266. 'Classic' is Espressif AT firmware in esp with WiFiEsp library in your sketch. New option is WiFi Link firmmware in the esp with WiFi Link library used in your sketch.

Both libraries recommended by me (WiFiEsp and WiFiLink) have standard Arduino networking API like the Ethernet and WiFi library.

WiFi Link firmware is an Arduino sketch for the esp8266.

Not the answer you're looking for? Browse other questions tagged or ask your own question.