Actualmente vivimos en continua interacción con personas y cosas, dando lugar a la era del Internet de las Cosas (IoT). Esto ha llevado a la creación de nuevas aplicaciones en diversos campos, como el seguimiento de activos y existencias, transporte, redes eléctricas, automatización industrial, hogares inteligentes, agricultura o deportes, entre otros. Sin embargo, el creciente número de plataformas y así como la variedad de dispositivos finales hacen que el desarrollo de aplicaciones sea una tarea difícil que requiere mucho tiempo. Esta diversidad tiene la dificultad de tener que coordinar la interacción entre dispositivos y plataformas heterogéneas. Por consiguiente, se requiere que los desarrolladores deban tener un alto grado de conocimiento de cada una de las tecnologías empleadas. Una tecnología que se usa actualmente para resolver estos problemas es el modelado, porque puede mejorar la reutilización de diferentes elementos para simplificar el trabajo de los desarrolladores. La ingeniería basada en modelos (MDE) sugiere un proceso de desarrollo basado en la creación y transformación de modelos. Por este motivo, proponemos una solución basada en modelos para generar código automáticamente. Nos centramos en un lenguaje específico de dominio (DSL), un editor gráfico y una transformación de modelo a texto (M2T) para la generación de código. Nuestra propuesta se compone de un modelo para la integración de punto a punto en aplicaciones IoT compuestas por tres capas: (a) Física, la cual corresponde a los objetos físicos (controlador, sensor y actuador), (b) Lógica, es el puente que permite la integración de servicios empleando una cola MQTT y los servicios web REST, y (c) Aplicación, en la cual se establece una interfaz de usuario para la DTV (Digital TV). Para el efecto se ha desarrollado un metamodelo, un editor gráfico y un generador de código que permiten al desarrollador diseñar sistemas IoT con componentes heterogéneos sin tener un conocimiento profundo de cada plataforma de hardware y software. Para validar nuestra propuesta se ha desarrollado un escenario de Smart Home, con una serie de sensores y actuadores que al combinarse presentan un comportamiento complejo. Las transformaciones M2T generan código para las plataformas de Arduino, Node-red, Ballerina y NCL-Lua. Para demostrar este enfoque, se ha diseñado un escenario para un hogar inteligente (con diferentes sensores y actuadores), así como una aplicación para DTV, que permite al sistema monitorizar el escenario. Además, se evalúa la propuesta por medio de dos instrumentos, SUS (System Usability Scale) y PANAS (Positive Affect Negative Affect Scale), para determinar el grado de aceptación y usabilidad de nuestra herramienta, y contrastamos nuestros resultados con la estimación por puntos de función.