Abstract: A road sensor has a housing, at least one sensor inside the housing, a processor inside the housing, the processor configured to execute instructions to cause the processor to: receive data from the at least one sensor; use machine learning to recognize conditions local to the sensor from the sensor data; and provide an output signal of the conditions. A method of providing road conditions includes receiving, at a road sensor, input detectable by at least one sensor, using a processor in the road sensor to execute code that will cause the processor to: receive sensor data from the at least one sensor; apply machine learning to the sensor data to recognize at least one road condition associated with the sensor data; and transmit an output signal identifying the road conditions.