Which microcontroller will handle my needs?

I'm new to Arduino projects. (And "Newby" really is my last name.) I've successfully used an Uno and SD Card data logger to read and log from a Temp/RH sensor at specified intervals and show readings on an LCD. I would like to build a smart scale that logs weight at intervals to an SD Card along with Temp and RH readings, prints those readings to the LCD, and make the real-time weight & Temp/RH readings available on Blynk or like service via WiFi.

My question: I'm wondering if an Arduino Nano 33 OIT can handle the code and hardware (load sensor, RTC, data logger, Temp/RH sensor). I'm sure it will take me some time to figure out the code, but the first step is to get the correct hardware. I'm open to suggestions. Thanks!

It depends on the performance you require. This would do good on the low end, a ESP8266 in the mid range and ESP32 nearer the high end. All can be done with the Arduino IDE so what you learned in the past is still valid.

When you say "WiFi", the simple and direct answer is the ESP8266. Note that it uses 3.3 V logic.

You are most unlikely to require the extra processing power or features of the ESP32. Combining two processors just makes things more difficult, so an ESP like the WeMOS D1 Mini is probably the most practical (and inexpensive to boot). If you require more I/O, port expanders are the way to go. :grinning:

I agree with Paul__B said and suggest you have a look at Randomnerd tutorial (google it) he has some good ideas around the WiFi side of things. I am playing with the ESP32 as its easy to buy here in Godzone...

Agree with esp8266 suggestions.

Will the circuit be constantly connected to WiFi? If so, RTC and data logger not required. Time can by maintained by the ESP and synced with a network time server (NTC) at startup and at regular intervals to keep it accurate. A remote data logging service can be used.

The challenge here is the low number of pins available on esp8266, so choose your other components with care. I would suggest an LCD with an i2c "backpack" adaptor, and a temp/humidity sensor with i2c interface also, such as sht21 or similar. ESP has only one analog pin, but an ads1115 module will provide 4 more analog inputs with greater accuracy, and that too has i2c interface.

Thank you, all, for your suggestions. I'll process through your recommendations and reply with any specific questions.

PaulRB:
Agree with esp8266 suggestions.

Will the circuit be constantly connected to WiFi? If so, RTC and data logger not required. Time can by maintained by the ESP and synced with a network time server (NTC) at startup and at regular intervals to keep it accurate. A remote data logging service can be used.

The challenge here is the low number of pins available on esp8266, so choose your other components with care. I would suggest an LCD with an i2c "backpack" adaptor, and a temp/humidity sensor with i2c interface also, such as sht21 or similar. ESP has only one analog pin, but an ads1115 module will provide 4 more analog inputs with greater accuracy, and that too has i2c interface.

This brings up a question. It could be constantly connected to WiFi. But it will need to be powered by battery. Will being constantly connected drain the battery too quickly? I've seen projects that have the board wake, connect to NTC to get time, record and post data to server, then go back to sleep. Would that be doable/required to save battery?

Kiwi_Bloke:
I agree with Paul__B said and suggest you have a look at Randomnerd tutorial (google it) he has some good ideas around the WiFi side of things. I am playing with the ESP32 as its easy to buy here in Godzone...

Thanks, Kiwi. Randomnerd will be very helpful. Great resource suggestion!

newby_is_my_name:
This brings up a question. It could be constantly connected to WiFi. But it will need to be powered by battery. Will being constantly connected drain the battery too quickly?

You better believe it!

If you are really lucky, and since you are not using a display, you could get run times similar to your mobile phone with a continuous WiFi connection.

But how big a battery do you propose to use?

Paul__B:
But how big a battery do you propose to use?

I figured a LiPo 3.3V 2000 mAh should be sufficient for the load sensor and Temp/RH sensor. I'm thinking I could put the board in deep sleep mode between sensor checks (30 minutes). Random Nerd has a tutorial on how to do with ESP8266 (Title: ESP8266 Deep Sleep with Arduino IDE).

If posting readings to a remote server and not recording them locally, no need for the esp to know the time. The remote server can attach date & time to each reading at the time it is added to the database. That's how my esp-based sensors work.

Paul__B:
since you are not using a display

Did the OP change their mind? I missed that.

Ah! Looks like I missed it.

And if you really need to go low the ESP32 has a 2nd processor called the ULP or Ultra Low Power processor.

The ULP can be programmed under the Arduino IDE and sips power, checking for conditions on when to wake the main processor or, the ULP can be used as a 2nd processor running a 2nd program.

Thank you all for suggestions. After taking all into consideration, I've decided to abandon the wifi component. Partly because wifi connection will be weak where implemented. Instead, I'm going to nail down the basic function and record data locally on SD Card. Once kinks are worked out, I'm going to use LoRa transmission to a separate controller in a office that will upload data to server. One step at a time ...