Los Wearables invadieron el mundo, tanto en el área de la salud, entretenimiento y en el área Fashion. Hoy quiero presentarles un proyecto bien legal, involucrando a Arduino en circuitos visibles usando cintas de LEDs en una falda de tul, generando efectos bien legales.

Gedeane Kenshima

   Simple de montar este visible (wearable) puede tener éxito en el área Fashion. Vamos a los materiales:

 

Figura 1- Diseño Shine Skirt (Fuente: propia)
Figura 1- Diseño Shine Skirt (Fuente: propia)

 

 

Lista de materiales:

- 1 tarjeta Adafruit Flora (o Gedeaninha o Lilypad Arduino)

- Salga de tul a color

- 3 baterías 3,7V modelo 18650 o Power bank con dos o más cargas

- Hilos de colores

- Hilos finos de cobre esmaltado (de bobinado de contactor, por ejemplo)

- Hierro de soldadura

- Soldadura en rollo (estaño)

- 1 interruptor de encendido / apagado

- 5m de cinta de LED direccionable WS2812B

- Cinta doble cara

- Multímetro

 

Asamblea:

   Mida la longitud de las cintas de LED en la vertical sobre la salga y recorte donde esté indicado en la cinta. Hay los lugares adecuados para cortar y enmendar, que están con pequeños pads con color de cobre. Dependiendo del tamaño de la falda, no será posible colocar en todas las divisiones de la salga (con 5m de cinta).

   Coloque la placa en la región de la cintura, centralizada. Para este proyecto, fue utilizada la Gedeaninha, que posee 8 pines de entrada / salida y entrada micro USB. Se utilizará sólo un pin, se utilizó el pin 3 para enviar la señal a las cintas.

   Coloque las cintas con cinta doble cara en las partes centrales de los colores. Observe el sentido de la cinta, ya que es importante que el efecto ocurra. En la siguiente figura figura cómo ocurrirá el sentido del efecto luminoso:

 

Figura 2 - Sentido del efecto luminoso (Fuente: propia)
Figura 2 - Sentido del efecto luminoso (Fuente: propia)

 

   La primera cinta debe colocarse con la flecha de indicación hacia abajo, la siguiente con la flecha hacia arriba y así sucesivamente. La flecha de indicación queda entre las enmiendas de la cinta, conforme imagen:

 

Figura 3- Detalle de la cinta de LED (Fuente: propia)
Figura 3- Detalle de la cinta de LED (Fuente: propia)

 

   

Utilice un cable para conectar la clavija de datos (en mi caso, pin 3) y el pin DI de la primera cinta. Haga la conexión, descascando las extremidades y pasando soldadura en rollo (estaño) con ayuda del hierro de soldadura. Una las partes con soldadura para finalizar. Compruebe que está todo firme y no hay 'soldadura fría'.

   Para el envío de datos de una cinta a otra, son necesarios cables de cobre esmaltados bien finos en los bordes de la falda y en la cintura. Estos hilos son soldados entre los pines DI de las cintas, según la orientación de la flecha. Para utilizar los hilos, basta con calentar los bordes con el hierro de soldadura hasta salir del esmalte y pasar un poco de estaño. El interesante de utilizar estos hilos es que no entran en cortocircuito cuando se apoyan, pues están aislados por el esmalte.

 

Figura 4- Hilo esmaltado (Fuente: propia)
Figura 4- Hilo esmaltado (Fuente: propia)

 

   Utilice las baterías en paralelo (conectar positivo con positivo y negativo con negativo) para mayor corriente, ya que las cintas tienen un consumo elevado si se utilizan durante mucho tiempo. Si tiene un power bank de buena capacidad, puede ser utilizado. Abra el aparato y mida con el multímetro de donde vienen los pines positivo y negativo de las baterías internas y solde dos hilos de colores de unos 30 cm (de colores diferentes) en estos pads. Tenga cuidado de no poner los cables positivo y negativo de la batería.

   Coloque un interruptor de encendido (para interrumpir la conexión) entre el 5 V de la cinta y el (+) del Arduino utilizado. Los pines GND (o negativo (-)) deben conectarse todos juntos.

 

Figura 5- Detalle conexiones (Fuente: propia)
Figura 5- Detalle conexiones (Fuente: propia)

 

 

Programación

   Hay dos bibliotecas para facilitar la programación de la tarjeta a través de IDE Arduino. Utilizaremos ejemplos listos de ella, pero pueden ser personalizados según su estilo.

   La primera es el ejemplo proporcionado a través de Adafruit, por la biblioteca Adafruit NeoPixel. Usted puede descargar aquí.

   La instalación de la biblioteca se puede realizar con el archivo comprimido (con extensión .zip). Después de descargar el archivo comprimido, abra el IDE Arduino en el menú Sketch => Incluir biblioteca => Agregar biblioteca .zip.

   Si la instalación es correcta, aparecerá en la esquina inferior derecha que la biblioteca se ha incluido correctamente.

   Después de estos pasos, vaya a Archivo => Ejemplos => Adafruit NeoPixel => Strandtest.

   Se abrirá una nueva ventana que contiene un ejemplo para utilizar la biblioteca, que contiene diversos efectos luminosos.

Realice los cambios siguientes en el código:

#define PIN 6

   La clavija 6 define qué pino hará el envío de datos a la cinta (DI). Se utilizó el pin 3 en nuestro ejemplo anterior. Si desea elegir otro pin, recuerde cambiar el montaje del proyecto.

Adafruit_NeoPixel strip = Adafruit_NeoPixel (60, PIN, NEO_GRB + NEO_KHZ800);

   El 60 significa el número de LED en su cinta en el proyecto. En mi ejemplo, utilicé alrededor de 200, entonces cambie al número de píxeles que utilizará, de lo que sólo 60 LED se encender.

   Realice la grabación del sketch en la placa. En el caso de la Gedeaninha, es necesario apretar el botón RESET para que la grabación sea completa (modo de bootloader).

   Hay otra biblioteca que se puede utilizar, la LightWS2812. Como descargar e instalar, abra el enlace aquí y siga las instrucciones.

   Al final, abra un ejemplo de uso en el IDE Arduino llamado Blynk. Archivo => Ejemplos => LightWS2812 => Blynk.

Realice los cambios en el código:

WS2812 LED (1); // 1 LED

  1 significa que sólo hay un LED neopixel para controlar. Cuente cuántos hay en su cinta y cambie este número.

 LED.setOutput (9); // Digital Pin 9

   De la misma forma que en el ejemplo anterior, el pino 9 define qué pino hará el envío de datos a la cinta (DI). Se utilizó el pin 3 en nuestro ejemplo anterior. Si desea elegir otro pin, recuerde cambiar el montaje del proyecto.

value.b = 255; value.g = 0; value.r = 0;

   Estos son los índices de los colores del neopixel. Se varían entre 0 y 255. Para colocar el color deseado, compruebe la tabla siguiente:

 

Figura 6 - Tabla simplificada RGB (Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSNXozHR99hRbEqWivui-6KuUsx8ZjUnoWgk-pVefDoF8x7G7Rg)0
Figura 6 - Tabla simplificada RGB (Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSNXozHR99hRbEqWivui-6KuUsx8ZjUnoWgk-pVefDoF8x7G7Rg)0

 

Para cambiar al valor deseado, cambie:

value.b = índice azul (azul)

value.g = índice verde (green)

value.r = índice rojo (red)

El proyecto listo quedó así:

 

Figura 7- Diseño Shine Skirt encendido (Fuente: propia)
Figura 7- Diseño Shine Skirt encendido (Fuente: propia)

 

   Espero que hayan disfrutado de este proyecto, que puede adaptarse a cualquier prenda que utilice. ¡Espera los próximos artículos aquí en el sitio!

 

 

19.02MBMemory Usage43.69msRequest 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" => 1748991102 "last" => 1748991102...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.42KB) (789μs)
  • afterInitialise (1.14MB) (5.1ms)
  • afterRoute (179.21KB) (1.2ms)
  • beforeRenderComponent com_content (100.98KB) (462μs)
  • Before Access::preloadComponents (all components) (33.45KB) (301μs)
  • After Access::preloadComponents (all components) (107.06KB) (560μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (8μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (20.03ms)
  • Before Access::getAssetRules (id:8 name:com_content) (480.05KB) (2.63ms)
  • After Access::getAssetRules (id:8 name:com_content) (7.36KB) (30μs)
  • afterRenderComponent com_content (439.91KB) (5.3ms)
  • afterDispatch (2.25KB) (43μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (422.53KB) (1.48ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (292μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (87μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (63.02KB) (1.05ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (532μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (61μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (192μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (47μs)
  • afterRender (304.5KB) (3.4ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (45.84%)
    20.03ms
    1 x afterRenderComponent com_content (439.91KB) (12.12%)
    5.30ms
    1 x afterInitialise (1.14MB) (11.67%)
    5.10ms
    1 x afterRender (304.5KB) (7.78%)
    3.40ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (480.05KB) (6.01%)
    2.63ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (422.53KB) (3.39%)
    1.48ms
    1 x afterRoute (179.21KB) (2.74%)
    1.20ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (63.02KB) (2.4%)
    1.05ms
    1 x afterLoad (85.42KB) (1.81%)
    789μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.28%)
    560μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.22%)
    532μs
    1 x beforeRenderComponent com_content (100.98KB) (1.06%)
    462μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.69%)
    301μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (15.43KB) (0.67%)
    292μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.44%)
    192μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.2%)
    87μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.14%)
    61μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.11%)
    47μs
    1 x afterDispatch (2.25KB) (0.1%)
    43μs
    1 x After Access::getAssetRules (id:8 name:com_content) (7.36KB) (0.07%)
    30μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    8μs
23 statements were executed, 5 of which were duplicates, 18 unique11.42ms1.58MB
  • SELECT @@SESSION.sql_mode;38μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 189μ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)205μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`54μ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` = :guest78μ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`250μ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)411μ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` = 07.71ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_assets`293μs2.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • SELECT * FROM `incbmx_assets` WHERE `name` = 'com_content.article.2460'77μs912B/libraries/src/Table/Table.php:780Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`280μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '2460'135μ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)157μ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`174μ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)213μ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`174μ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 ASC382μs6.06KBParams/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`170μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1133μs656B/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)81μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context73μ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)183μ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` = 165μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content
  • warningassets - No asset found for com_content.article.2460, falling back to com_content