The development of efficient sensing technologies and the maturation of the Internet of Things (IoT) paradigm and related protocols have considerably fostered the expansion of sensor-based monitoring applications. A great number of those applications has been developed to monitor a set of information for better perception of the environment, with some of them being dedicated to identifying emergency situations. Current IoT-based emergency systems have limitations when considering the broader scope of smart cities, exploiting one or just a few monitoring variables or even allocating high computational burden to regular sensor nodes. In this context, we propose a distributed multi-tier emergency alerting system built around a number of sensor-based event detection units, providing real-time georeferenced information about the occurrence of critical events, while taking as input a configurable number of different scalar sensors and GPS data. The proposed system could then be used to detect and to deliver emergency alarms, which are computed based on the detected events, the previously known risk level of the affected areas and temporal information. Doing so, modularized and flexible perceptions of critical events are provided, according to the particularities of each considered smart city scenario. Besides implementing the proposed system in open-source electronic platforms, we also created a real-time visualization application to dynamically display emergency alarms on a map, demonstrating a feasible and useful application of the system as a supporting service. Therefore, this innovative approach and its corresponding physical implementation can bring valuable results for smart cities, potentially supporting the development of adaptive IoT-based emergency-aware applications.