Hi Mohammad,
Technically this is possible, the big problem is that data is incomplete. e.g. for the station above ESSV in the city of {"Visby", "Gotland", "Sweden"}
properties = {"MeanTemperature", "TotalPrecipitation"};
data = WeatherData[Entity["WeatherStation", "ESSV"], #, {{2010, 1, 1}, {2018, 12, 31}, "Month"}] & /@ properties;
DateListPlot[data, PlotLegends -> properties]

Precipitation data is only available from 2014. For every station the properties and date range for which there is data is different. The coverage is certainly better for larger cities in Europe and USA. I would pick a list of cities you are interested in and see if the data you need is available. e.g.
tabriz = CityData["Tabriz"] // First;
tabrizStation = Entity["WeatherStation", WeatherData[tabriz, "NearestStation"]];
Instantaneous data is available
WeatherData[tabrizStation, #] & /@ {"WindSpeed", "Temperature"}
(* {Quantity[7.56, ("Kilometers")/("Hours")], Quantity[13, "DegreesCelsius"]} *)
but historical data is not
WeatherData[tabrizStation, #, {{2010, 1, 1}, {2018, 12, 31}, "Month"}] & /@ properties
(* {Missing["NotAvailable"], Missing["NotAvailable"]} *)
You may need to use other sources of weather data and import. They are not free but you may be able to access for free if it is for research and non-commercial use. e.g. https://openweathermap.org/price#history
Recognize the location?
tabrizStation // EntityValue[#, "Position"] & // GeoListPlot[#, GeoBackground -> "StreetMap", GeoRange -> Quantity[2, "Kilometers"]] &
