Atmospheric visibility measuring device
The transmissometer setup should be quite easy to build in principle, but it could be hard to get accurate values. I did a very similar instrument but to measure water transsmisivity (a.k.a. turbidity).

If you are new to Arduino you can start with the Arduino UNO board, and this is a good guide on how to get started. I got started myself with the video tutorial Arduino Course for Absolute Beginners.

Practice with a couple simple programs. In particular "Blink" to get used to switch pins on and off and "Analog Read Serial" to learn how to output data to the computer.

You need a laser diode like this one. It should be powered (or at least turned on/off) by the Arduino. Because you will need to do measurements with the laser on and off to know how much light is ambient light and how much light is coming from your laser.

To sense the light intensity of the laser after it travelled trough the air, you can use a photoresistor to make it simple and cheap, or a luminosity sensor like this one. You can find here a tutorial and example code to wire and read data from that sensor into your Arduino.

Then you need to calibrate the sensor, and it will be challenging for this project. You will need to put the system in the outdoors, measure the visibility by finding out the distance to the further object you can see, and record the reading of your Arduino. The reading would be the difference between the luminosity with the laser on and off.

After you have many calibration points over a wide range of visibilities, you can plot visibility vs reading and hopefully the points will follow a nice pattern that you can then fit with a suitable function (a line, a polynomial or logarithmic function), and then code that function into the Arduino so it can output the actual visibility.

If the pattern isn't nice, you will need to find ways to make the reading more accurate and sensible to changes in visibility. Some options for that (that you should consider also in your initial design) are:


Increase the travel length of the laser through the air.
Use a blue laser, as blue light is absorbed quickly in low visibility conditions.
Use a hood with black interior (like the photographic lens hoods) around the sensor to minimize the contribution to ambient light.
Use a luminosity sensor with larger resolutions (12 or 16 bits)
Make sure the laser voltage is stable.
Make sure the laser (and mirror if you use one) have a good and stable alignment. 
Make sure readings are not affected by temperature or compensate otherwise.
Get multiple readings and take the median.


There is an Arduino Stack Exchange where you can find help if you need help to make the sensors to work or problems with the coding. However, there are tons of online resources and tutorials, so I'm sure you will find answers to all your questions.