You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Práctica: Sensor de temperatura de Microbit y Prolog
Código Python
frommicrobitimport*importutimewhileTrue:
temp=temperature()
uart.write(str(temp) +"\n")
sleep(1000) # Espera 1 segundo antes de la siguiente lectura
Código Prolog
:- use_module(library(ansi_term)).
:- use_module(library(readutil)).% Define las reglas lógicasaccion_based_on_temp(Temp) :-Temp<20,
writeln('Temperatura baja: Encender la luz.').accion_based_on_temp(Temp) :-Temp>=20,
Temp<30,
writeln('Temperatura optima: Mantener todo como esta.').accion_based_on_temp(Temp) :-Temp>=30,
writeln('Temperatura alta: Encender el ventilador.').% Función para leer del puerto serialleer_serial(Puerto) :-
setup_call_cleanup(
open(Puerto, read, Stream, [type(text)]),
leer_datos(Stream),
close(Stream)
).leer_datos(Stream) :-
read_line_to_string(Stream, Line),
( Line\=end_of_file,
catch(number_string(Temp, Line),
_,
(writeln('Error al convertir la lectura a numero.'), Temp=0)),
format('Temperatura leida: ~w°C~n', [Temp]),
accion_based_on_temp(Temp),
leer_datos(Stream)
;
writeln('Fin de la lectura serial.')
).% Punto de entrada
:- initialization(main).main:-% Reemplaza 'COM3' con el puerto correctoPuerto='COM3',
writeln('Iniciando monitor de temperatura...'),
leer_serial(Puerto).