By

Module bluetooth série

Module

image

RS232 en TTL

By

Lecteur RFID (RDM6300)

arduino RFID 125KHz UART
Le RDM6300 est un capteur RFID, à 125kHz, et avec un interface série (UART).
La portée de lecture RFID est de quelques centimètres.
Les paramètres de la liaison série sont : 9600 8N1
L’alimentation se fait en 5v (TTL)

RDM6300_pins
Brochages du RDM6300 :

P1 : 1-TX, 2-RX, 3-NC, 4-GND, 5-(+5V)

P2 : bobine

P3 : 1-Led, 2-(+5v), 3-GND

image

 

Exemple de montage :

le but est de pouvoir lire les ID des modules RFID qui passent à proximité.
Le module RFID est connecté à un adaptateur USB-RS232 (CP2102)

L’alimentation est assurée par le module USB (5v).
Au niveau du signal RS232, la broche « TX » du module RFID est connecté à la broche « RX » du module USB.

Il suffit ensuite de lancer un PuTTY (ou un KiTTY). Les message recu sont de ce type : « 0A00642A3C78« .

 

By

Piloter un moteur DC en PWM via un TIP122

 

TIP-122_pinouts

http://us.100y.com.tw/PNoInfo/30217.htm

 

 

 

 

 

 

TIP122_pin_layout_S

 

http://www.ecs.umass.edu/ece/m5/tutorials/tip122_transistor_tutorial.html

TIP122_transistor_schematic_S

By

Rasp & refroidissement

Un rasp avec des radiateurs

image

L’ajout de radiateurs fait baisser la température du processeur de quelques degrés pendant 1 minute, mais revient à son niveau initial (soit environ 57°C).

La tépérature du rpi est disponible ici : /sys/class/thermal/thermal_zone0/temp    (il faut juste diviser par 1000 !)

voici un script munin-node pour superviser ce paramètre :
[crayon]
. $MUNIN_LIBDIR/plugins/plugin.sh

if [ « $1 » = « autoconf » ]; then
if [ -r /sys/class/thermal/thermal_zone0/temp ];then
echo yes
exit 0
else
echo « no (missing /sys/class/thermal/thermal_zone0/temp) »
exit 0
fi
fi

if [ « $1 » = « config » ]; then
echo graph_title CPU core temperature
# echo graph_args –base 1000 -l 0
echo graph_args –lower-limit 30 –upper-limit 40
echo graph_info CPU core temperature
echo graph_category sensors

echo temp0.label Core
echo temp0.cdef temp0,1000,/
exit 0;
fi
echo temp0.value `cat /sys/class/thermal/thermal_zone0/temp`
[/crayon]
Avec une légère ventilation (vitesse 1 sur 3 d’un ventilo de 8cm et alimenté en 9v au lieu de 12v), les effets sont beaucoup plus impressionnants et durables sur la température du CPU : dans mon cas, j’ai perdu environ 15°C !!!

Température du cpu du RPI

Température du cpu du RPI

Il me reste à faire des tests en charge CPU et à ajouter de la pâte thermique

By

Arduino vers Raspberry en 433MHz

Capteur dh22 sur un arduino, transmis en radio fréquence vers un raspberry.

Le capteur arduino :

image

Le récepteur raspberry pi :

image

Transmission en rs232, à 300 bit/s.

Coté Raspberry, le programme de capture affiche les informations au fur et à mesure qu'elles arrivent :
RPI-reception-RF

Source du script "arduino2.pl"

#!/usr/bin/perl
use Device::SerialPort;
my $filename = "/dev/ttyUSB0";

my $port = Device::SerialPort->new($filename);
$port->databits(8);
$port->baudrate(300);
$port->parity("none");
$port->stopbits(1);
$port->write_settings;

if (open(my $fh, '<', $filename)) {
  while (my $row = <$fh>) {
    chomp $row;
    #print ">>>$row\n";
    if ($row =~ /(\d\d\.\d\d)<\/TEMP1>/){ print "Got temperature =>  $1 \n"; }
    if ($row =~ /(\d\d\.\d\d)<\/HYGRO1>/){ print "Got humidity =>  $1 \n"; }
  }
} else {
  warn "Could not open file '$filename' $!";
}

[/crayon]

Source du code arduino (capture du DHT22 + envoi sur l'UART donc le transmetteur RF)

[crayon]
#include 

// Data wire is plugged into port 7 on the Arduino
// Connect a 4.7K resistor between VCC and the data pin (strong pullup)
#define DHT22_PIN 7

// Setup a DHT22 instance
DHT22 myDHT22(DHT22_PIN);

void setup(void)
{
  // start serial port
  Serial.begin(300);
  Serial.println("DHT22 Library Demo");
}

void loop(void)
{
  DHT22_ERROR_t errorCode;
 
  // The sensor can only be read from every 1-2s, and requires a minimum
  // 2s warm-up after power-on.
  delay(5000);
 
  Serial.print("\n\nRequesting data...\n\n");
 
  errorCode = myDHT22.readData();
  switch(errorCode)
  {
    case DHT_ERROR_NONE:
      Serial.print("\n\n");
      Serial.print(myDHT22.getTemperatureC());
      Serial.println("");
      delay( random(800, 4500));
      Serial.print("\n\n");
      Serial.print(myDHT22.getHumidity());
      Serial.println("");
      // Alternately, with integer formatting which is clumsier but more compact to store and
      // can be compared reliably for equality:
      //      
      break;
    case DHT_ERROR_CHECKSUM:
      Serial.print("check sum error ");
      Serial.print(myDHT22.getTemperatureC());
      Serial.print("C ");
      Serial.print(myDHT22.getHumidity());
      Serial.println("%");
      break;
    case DHT_BUS_HUNG:
      Serial.println("BUS Hung ");
      break;
    case DHT_ERROR_NOT_PRESENT:
      Serial.println("Not Present ");
      break;
    case DHT_ERROR_ACK_TOO_LONG:
      Serial.println("ACK time out ");
      break;
    case DHT_ERROR_SYNC_TIMEOUT:
      Serial.println("Sync Timeout ");
      break;
    case DHT_ERROR_DATA_TIMEOUT:
      Serial.println("Data Timeout ");
      break;
    case DHT_ERROR_TOOQUICK:
      Serial.println("Polled to quick ");
      break;
  }
}
[/crayon]

By

Transmetteur & récepteur 315 MHz

Comment utiliser les modules 315MHz et 433 MHz

Les modules sont vendus sans antennesArduino RF transmiter 315MHz

Il ne faut pas trop en demander en terme de débit RS232. J’ai lu quelque part que le maximum est 2400 bauds.
Personnellement, j’utilise actuellement des vitesses RS232 de 300 bits/s en 8N1.

Pour les antennes, il semble qu’il faille utiliser un fil du quart de la longueur d’onde.

Fréquences et 1/4 de longueur d’ondes
Fréquence 1/4 de la longueur d’onde
433 MHz 17.25 cm
315 MHz 23.79 cm

 

By

Raspberry & i2c LCD

Utilisation de ‘lcdproc’ pour gérer l’affichage.

image

Il a fallu patcher le driver hd44780, pour correspondre au câblage de l’adaptateur i2c.
http://sourceforge.net/p/lcdproc/discussion/312/thread/00298b2f/

By

Raspberry & DHT22

Capteur de température et hygrométrie.

image

Résultat de la mesure :
RPi_DHT22

Ici, Température = 18.0 °C  et 55.3 % d’humidité.

Lien utilisé pour ce montage : http://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview

By

Arduino méga & réseau

image

By

Niveau de fioul dans la cuve

Les travaux de préparation avancent, et commencent par le passage de fils vers la cuve : ca, c’est fait !

Il me faut ensuite faire un montage avec un LCD et/ou un lien RS232(sur USB) vers un Linux et un MUNIN par exemple …

Update du dimanche 16 octobre.

Le capteur est maintenant connecté du coté de la cuve à fioul :

Après un problème de librairie de l’affichage LCD sur bus I2C (mauvaise version sur mon poste de bureau, bonne version sur la laptop) le capteur me donnes des mesures correctes.

La hauteur de la cuve fait environ 100 cm, et le capteur est surélevé de 5 cm. J’ai utilisé la fonction « map » juste pour le principe, parceque le calcul de convertion n’était pas extrêmement compliqué 😉

il me faut encore centraliser l’information de niveau, vers un arduino central, et/ou vers un Linux …