Las pequeñas filtraciones de agua en paredes, techos y otros lugares semejantes no son fáciles de detectar y ocasionan un enorme problema que va desde el deteriora de la pintura, revestimiento o empapelado hasta incluso el debilitamiento de la estructura de un edificio. Cómo encontrar incluso pequeñas filtraciones con un sencilla aparato electrónico es el tema de este interesante proyecto.

El contacto de un líquido con el material de una pared o techo afecta su conductividad eléctrica lo que podrá servir de punto de partida para un equipo de detección.

De hecho, incluso antes que podamos percibirlo por el tacto, un cambio de la consistencia o la humedad de una pared, antes incluso de aparecer una alteración de la coloración, la resistencia eléctrica de un lugar con una pequeña presencia de humedad puede caer de millones de Ω a algunos centenares o incluso decenas de kilΩ.

Este hecho es la base de nuestro proyecto, un pequeño detector portátil que puede acusar la disminución de la resistencia de una pared o techo, indicando así alguna filtración.

El aparato es muy simple de montar y da una indicación sonora.

Alimentado por pilas puede ser transportado fácilmente en un bolso y su consumo de energía es tan pequeño que las pilas durarán meses.

Bastará que el usuario lo apoye en el lugar sospechoso para que el aparato indique si existe o no humedad presente, lo que significa una manera de usarlo muy sencilla.

 

Características

Tensión de alimentación: 3 V (2 pilas pequeñas)

Comente de reposo: 1 mA o menos.

 

Cómo Funciona

El circuito consiste básicamente en un oscilador de audio en que la frecuencia de la señal y el punto de funcionamiento dependen del grado de humedad del sensor, o sea, de la resistencia que el mismo encuentra en el contacto con una superficie.

Este sensor puede estar formado por dos chapitas de metal o bien por dos esponjas conductoras pegadas en la parte inferior de la caja que alojará al aparato, como sugiere la figura 1.

 


 

 

Si la resistencia fuera muy alta, lo que ocurre con una superficie seca, o con muy pequeña humedad (debe ser tenida en cuenta la humedad ambiente en los dias lluviosos, para que no haya una falsa indicación) el oscilador ,no funciona pues no hay polarización para la base del transistor Q1.

Con una humedad relativamente baja ya puede funcionar, pero su frecuencia será también baja lo que equivale a la producción de una serie de "clics" en el parlante.

Pero si la humedad fuera elevada la resistencia puede caer al punto de que tengamos un sonido continuo que será tanto más agudo cuanto mayor sea su grado.

El contacto directo con agua ya representa una resistencia muy pequeña que lleva al aparato a producir el tono más alto.

Por supuesto que en el caso de un contacto directo con agua los electrodos deben ser secados antes de una nueva prueba, lo que significa que el usuario debe tener siempre a mano un trozo de tela con este fin.

En la condición de no emisión de sonido, o sequedad total, el consumo de corriente del aparato será extremadamente bajo, lo que significa que hasta incluso el interruptor general puede ser eliminado.

El capacitor C2 influye en la frecuencia de los sonidos que son emitidos en la prueba de humedad.

Valores entre 22 nF y 220 nF pueden ser experimentados en caso que el lector quiera hacer modificaciones al proyecto.

 

Montaje

En la figura 2 tenemos el diagrama completo del aparato, observándose su simplicidad.

 


 

 

Los componentes pueden ser montados en un pequeño puente de terminales, ya que el aparato no es crítico.

Fuera del puente quedan solamente el parlante, sensor, soporte de pilas e interruptor general, según muestra la fig. 3.

 


 

 

Existe también la opción de la placa de circuito impreso que tendrá la diagramación de la figura 4.

 


 

 

Los transistores admiten equivalentes, y el parlante es una pequeña unidad de 5 cm con 8 ohm que fácilmente entrará en la caja elegida para alojar el proyecto.

El soporte de pilas tiene polaridad que debe ser observada y los resistores son de 1/8 W.

Los capacitores C’ y C2 tanto pueden ser de poliéster como cerámicos mientras que C3 es un electrolítico con tensión de trabajo a partir de 6 V.

El sensor está formado por dos chapitas de metal de aproximadamente 3 x 2 cm o bien dos trozos del mismo tamaño de esponja conductora del tipo usado para proteger circuitos integrados.

 

Prueba y Uso

Para probar el aparato, es muy fácil: basta colocar las pilas en el soporte y conectar S1. Tocando con los dedos al mismo tiempo en las dos áreas del sensor debe haber emisión de sonido.

Para usar el aparato basta apoyar el sensor en la pared o techo donde se sospeche que puede haber una filtración y verificar si hay o no emisión de sonido.

Tenemos entonces las siguientes posibilidades:

a) Sin sonido o chasquidos espaciados: pared seca o bien con muy poca humedad (si este hecho ocurre en todos los lugares donde se prueba, puede ser debido a la humedad natural del ambiente).

b) Sonidos graves o pulsos rápidos algo espaciados: poca humedad, pero si sólo ocurre en una región de la pared, con ausencia de sonido en otras zonas, puede indicar algo anormal que precisa ser investigado.

c) Sonido agudo: indica humedad fuerte o incluso filtración. En esta condición, ya puede haber cambio de coloración perceptible, dependiendo de la pared o techo analizados. Observe con cuidado.

 

Q1 – BC548 ó equivalentes – transistor NPN de uso general

Q2 – BC558 equivalente – transistor PNP de uso general

S1 – Interruptor simple

X1 – Sensor – ver texto

B1 – 3 V – 2 pilas pequeñas

PTE – parlante de 8 Ω x 5 cm.

C1 – 10 nF – capacitor cerámico o poliéster (103 ó 0,01)

C2 – 47nF – capacitor cerámico o poliéster (473 ó 0,047)

C3 – 10 µF x 6 V – capacitor electrolítico

R1 – 47 kΩ – resistor (amarillo, violeta, naranja)

R2 – 1 kΩ – resistor (marrón, negro, rojo)

Varios: placa de circuito impresso o puente de terminales, caja para montaje, soporte de pilas, cable, estaño, etc.

 

18.924MBMemory Usage49.46msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.20
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1749446019 "last" => 1749446019...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.3KB) (328μs)
  • afterInitialise (1.14MB) (4.1ms)
  • afterRoute (179.21KB) (981μs)
  • beforeRenderComponent com_content (100.98KB) (466μs)
  • Before Access::preloadComponents (all components) (33.45KB) (237μs)
  • After Access::preloadComponents (all components) (107.06KB) (477μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (10μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (27.26ms)
  • Before Access::getAssetRules (id:2659 name:com_content.article.1558) (514.65KB) (667μs)
  • After Access::getAssetRules (id:2659 name:com_content.article.1558) (7.38KB) (43μs)
  • afterRenderComponent com_content (384.16KB) (7.05ms)
  • afterDispatch (2.25KB) (58μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (1.69ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (349μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (96μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (129.21KB) (1.23ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (619μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (76μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (186μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (49μs)
  • afterRender (253.56KB) (3.37ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (55.12%)
    27.26ms
    1 x afterRenderComponent com_content (384.16KB) (14.26%)
    7.05ms
    1 x afterInitialise (1.14MB) (8.29%)
    4.10ms
    1 x afterRender (253.56KB) (6.81%)
    3.37ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (3.43%)
    1.69ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (129.21KB) (2.48%)
    1.23ms
    1 x afterRoute (179.21KB) (1.98%)
    981μs
    1 x Before Access::getAssetRules (id:2659 name:com_content.article.1558) (514.65KB) (1.35%)
    667μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.25%)
    619μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.96%)
    477μs
    1 x beforeRenderComponent com_content (100.98KB) (0.94%)
    466μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (0.71%)
    349μs
    1 x afterLoad (85.3KB) (0.66%)
    328μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.48%)
    237μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.38%)
    186μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.19%)
    96μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.15%)
    76μs
    1 x afterDispatch (2.25KB) (0.12%)
    58μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.1%)
    49μs
    1 x After Access::getAssetRules (id:2659 name:com_content.article.1558) (7.38KB) (0.09%)
    43μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    10μs
21 statements were executed, 5 of which were duplicates, 16 unique18.73ms1.58MB
  • SELECT @@SESSION.sql_mode;36μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 173μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)159μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`50μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest85μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`269μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)311μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 014.87ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`396μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '1558'185μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)180μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`230μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)328μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`221μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC494μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`222μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1195μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)99μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context68μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)176μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 181μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy