new project - multi sensor data logger via wifi

hello all
i'm new to arduino, and i wish to get overall guidance about what kind of equipment to buy and what will be the constraints in a project i'm about to describe.

so i'm conducting an experiment regarding the condensation of water in different conditions and i want to use arduino in order to transmit data from the experiment apparatus to some remote computer via wifi (or any better approach that you could think of).

  • i'm going to have 6 temperature sensors, 2 humidity sensors and 2 flow sensors. the flow sensors are not arduino based but as for the temperature and humidity i consider the ones designed for arduino, but i would be happy to hear any insights about downsides of such choice. i assume they all are based on some voltage reading but there is a limit to the amount of analog inputs so i figured maybe that should be considered.

  • the data sampled should be uploaded automatically and continuously 24/7 to the computer (or to the web and from there downloaded to computer) as a file i could later analize via matlab/python.

  • is it possible to control the rate of sampling?

  • i'm looking for the best results and time is against me, that's why i am hoping to get some time saving tips from kind people on this forum (:

  • money is also not a major constraint for the sake of my purchase decision.

bottom line, i'm tring to figure out what is the best set of arduino board+wifi module+Temp+humidity sensors under the constraints i mentioned above, and also is there something not feasible in my project.

looking forward to hear from you !

In the short term, use the forum Google search function in the upper right of this page to search for the key words of your project. You will probably find many previous project discussions and code for similar projects.

i did some research on the topic already but was overwhelmed by the different options and that's why i was hoping that for someone with experience it could be a matter of a few minutes to identify my needs and point me out to the proper equipment.

currently i'm thinking about an ESP6266 with an analog extender, then sending the data to thingspeak and reading it on matlab.

i am a bit worried that the analog extender is a sort of hack that would decrease my measurement resoulution. is there any sense in that? in other words, what would be the most robust way to send simoultanously 10 analoge input reads online to matlab?

would it be different if i connect the esp8266 to my arduino mega2560 ?

another option i had in mind is just buying multiple ESP8266's. this way i need not worry about sample rate and resolution. what would you say about that option? most importantly, would it lead to complications when uploading the data to thingspeak? since i'm just collecting data on order to later analyze it.

the extender you linked is not needed with the ESP8266, the Analog input has some limitations.

you did not state the range of temperature, or distance from the controller.

I would offer that you can use DS18B20 sensors within a couple meters
or a BME280 (temperature and humidity) less than 2 meters away.

both of these MAY allow you use few pins.
the DS18B20, you can use a dozen on 1 pin, so that is real easy

the BME280 is an I2C device , but limits to you to 2 addresses. so either a port expander, a shift register or an I2C multiplex chip and Bob's your Uncle.

last bit is frequency. you may find it will take some seconds to read the devices.
So, if you want once per minute updates, all is good.

the free on-line services typically max out at about 50,000 points per month,
that is one sensor, one read per minute for the month.
or, 10 sensors, read and posted in 10 minutes.

since temperature and humidity are slow to change, that might work great.

ether2213:
would it be different if i connect the esp8266 to my arduino mega2560 ?

Best check here first. Something like the NodeMCU may make the Mega redundant.

another option i had in mind is just buying multiple ESP8266's. this way i need not worry about sample rate and resolution. what would you say about that option? most importantly, would it lead to complications when uploading the data to thingspeak? since i'm just collecting data on order to later analyze it.

You have said nothing that warrants this but, if you are thinking of a local network, fine. You could have a local base which collects from the network and sends a single data stream to Thingspeak, so there is no problem there.

To start your project and develop code, you can use a pot to simulate your analog inputs, and just 3 wires between the boards serial tx/rx/gnd to test communications code. You might just use a 4051 multiplex chip to input all the sensors into a single board analog input. Start simple befor spending $$$ on more hardware.

dave-in-nj:
the extender you linked is not needed with the ESP8266, the Analog input has some limitations.

you did not state the range of temperature, or distance from the controller.

I would offer that you can use DS18B20 sensors within a couple meters
or a BME280 (temperature and humidity) less than 2 meters away.

both of these MAY allow you use few pins.
the DS18B20, you can use a dozen on 1 pin, so that is real easy

the BME280 is an I2C device , but limits to you to 2 addresses. so either a port expander, a shift register or an I2C multiplex chip and Bob's your Uncle.

last bit is frequency. you may find it will take some seconds to read the devices.
So, if you want once per minute updates, all is good.

the free on-line services typically max out at about 50,000 points per month,
that is one sensor, one read per minute for the month.
or, 10 sensors, read and posted in 10 minutes.

since temperature and humidity are slow to change, that might work great.

range of temperature - 5-35 celsius

distant from controller - 1 meter or less

regarding BME280, if i understand correctly, these chips are measuring Temp, humidity and pressure and converting the analog signal to digital on chip? and what is their address?

so bottom line, if i go with your proposal, i can simply convert all signals to digital before hooking them up to arduino/node mcu?

Nick_Pyner:
Best check here first. Something like the NodeMCU may make the Mega redundant.You have said nothing that warrants this but, if you are thinking of a local network, fine. You could have a local base which collects from the network and sends a single data stream to Thingspeak, so there is no problem there.

this sounds like a simple and quick solution - can you elaborate further?
say i buy 6 ESP8266 and connect each of them to a sensor, then i'm a bit stuck. is it possible to just connect them separately to thingspeak? maybe you hinted something about local network/local base, what do you mean by that?

As I said, only a single data stream actually goes out to Thingspeak. This data stream contains data from all sensors. I submit having each ESP talk to Thingspeak simply compounds the problem unnecessarily. If your gear is only one metre away from the controller, I imagine it is all connected by cable, and NodeMCU sends it all out to your router. Either way, Thingspeak sees the same stuff.

If you really need a local Wifi network, consider:

  1. A Node,-MCU
    a. collects data by WiFi from several sources,
    b. collects data from one source directly by cable
    c. does the local stuff, recording, timing, display,
    d. bundles data and sends it out.

  2. Several ESP-01, each with one sensor, collect data and send to NodeMCU on demand.

A DS18B20 works -25 > 125, and is fine for your purpose.