|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando

-- Tutorial de iniciación a Autoit --

Volver al índice del tutorial

____________________________

68.- Sensor de humedad y temperatura DHT 11. Arduino. Bluetooth. AutoIt.

- En los tutoriales de Arduino vimos el sensor DHT 11:

http://kio4.com/arduino/45humedad.htm

- Con el sensor DHT 11 podemos captar humedad y temperatura. En este tutorial solo trabajaremos con la temperatura.

- En esta aplicación se captará temperatura y humedad con el DHT 11 conectado al Arduino. Mediante el módulo bluetooth se enviará la Temperatura.

- El ordenador con bluetooth y mediante el AutoIt tomará esa temperatura y la irá mostrando en un gráfico.

 

___________________________________________
1.- Conexión del Arduino, el módulo Bluetooth HC-06 y el sensor DHT 11.

- Esto ya lo hemos visto en el tutorial anterior.


- Forma de conectarlo.

Módulo Bluetooh Arduino
VCC 5 V
GND GND
TXD RX (es la conexión 0 del Arduino)
RXD TX (es la conexión 1 del Arduino)

- Fíjate que el TXD va con el RX y que el RXD va con el TX

- En el momento de alimentarlo con los 5V, el LED del módulo bluetooth parpadeará.

- Como se ve en la imagen, el terminal Data del módulo del sensor DHT 11 está conectado al terminal 10 del Arduino.

 

___________________________________________
3.- Código del Arduino.

- Este código lo vimos en el tutorial: http://kio4.com/arduino/45humedad.htm

- NOTA: cuando vayas a cargar el programa en el Arduino, desconecta la alimentación del módulo bluetooth.

bluetooth_autoit_dht11.ino
				   
#include "DHT.h" 
#define DHTPIN 10 
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);
// Juan A. Villalpando

void setup() {
Serial.begin(9600); 
dht.begin();
}

void loop(){
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
//Serial.print("Humedad: "); 
//Serial.println(humedad);
// Serial.print("Temperatura :"); 
Serial.print(temperatura);
Serial.print(":");
delay(500); 
}

___________________________________________
4.- Código de AutoIt.

- La librería CommNG.au3 la he puesto en la carpeta Include de donde está instalado el AutoIt.

- También es necesario commg.dll como vimos en el tutorial 62_bluethoot_arduino.htm

- Esta línea es donde se establece la configuración del bluetooth.

- El 29 es el COM29, el puerto del bluetooth en mi ordenador.

$abre_este_puerto = _CommSetPort(29, $Error, 9600, 8, 1, 1, 2)

bluetooth_autoit_arduino_temperatura.au3

#include <CommMG.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
$ancho = 1247
$alto = 443

#Region ### START Koda GUI section ###
$Form1 = GUICreate("DHT 11 - Juan A. Villalpando", $ancho, $alto, -1, -1)
_GDIPlus_Startup ()
Global $grafico = _GDIPlus_GraphicsCreateFromHWND($Form1)
$Label1 = GUICtrlCreateLabel("(S)", 1168, 400, 17, 17)
GUISetOnEvent($GUI_EVENT_CLOSE, "Salir")
GUISetState(@SW_SHOW)
; Juan A. Villalpando
#EndRegion ### END Koda GUI section ###

Global $x,$y, $lstx,$lsty
$color = _GDIPlus_PenCreate(0xFF0000FF, 8)
Opt("GUIOnEventMode", 1)


For $i = 0 To $alto Step $alto/5
   _GDIPlus_GraphicsDrawLine($grafico,0,($alto-$i),$ancho,($alto-$i))
   GUICtrlCreateLabel($i/$alto*50,0,$alto-$i+3,15,17)
Next

For $i = 0 To $ancho Step $ancho/100
   _GDIPlus_GraphicsDrawLine($grafico,($ancho-$i),0,($ancho-$i),$alto)
Next


Conecta(0)
$timer = TimerInit()

While 1
   $recibido = _CommGetLine(':', 0, 0)
   $temperatura = StringSplit($recibido, ":")
   $y = $temperatura[1]*$alto/50
   ConsoleWrite($recibido&@CRLF)
   ConsoleWrite($y&@CRLF)
   $x = TimerDiff($timer)/1000*($ancho/100)
   GUICtrlSetData($Label1,$x/($ancho/100))
   If $x > $ancho Then
      $timer = TimerInit()
      $x = 0
      $y = 0
      $lstx = 0
      $lsty = 0
   EndIf
   If $lstx = 0 Then
         $lstx = $x
         $lsty = $alto-$y
   EndIf

   _GDIPlus_GraphicsDrawLine($grafico,$lstx,$lsty,$x,$alto-$y,$color)
   $lstx = $x
   $lsty = $alto-$y
   Sleep(500)
WEnd

Func salir()
   Exit
EndFunc

Func Conecta($mode = 1)
    Local $Error
	$abre_este_puerto = _CommSetPort(29, $Error, 9600, 8, 1, 1, 2)
    Sleep(1000)
EndFunc

___________________________________________
4.- Comentari
os.

- El Ardino envía Serial.print(":"); indicando fin de información.

- El AutoIt crea el gráfico con las dimensiones de ancho y alto.

- Recibe la información mediante $recibido = _CommGetLine(':', 0, 0).

- El ":" le indicará que ese es el final del mensaje.

- Obtendremos 25.00:

- Las siguientes líneas quita ":" y obtenemos 25.00

- Adaptamos el 25.00 al tamaño de la ventana y dibujamos una línea azul, esa es la parte más complicada del código.

_________________
- Propuesta.

- C

_________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información