mardi 6 août 2013

Thermomètre/hygromètre à base de Arduino

Une cave à vin c'est bien beau mais il faut contrôler sa température et son hygrométrie. Mais avant de les contrôler, il faut les mesurer.
J'ai donc fait un petit montage Arduino pour faire ça.
Matériel sous la main:
  •  Grove base shield
  •  capteur DHT11 (temperature + humidité) de Grove
  •  Ecran TFT ST7735 de Adafruit
  •  Arduino UNO

Après avoir connecté les PIN de l'écran où il faut (voir ici) et le capteur sur le plug n°2 (digital) du shield, on obtient ça !

Il ne reste plus qu'à mettre ça au propre (écran de démarrage, mise en forme de l'affichage) et c'est terminé...jusqu'à la gestion de la température qui se fera avec des modules à effet Peltier commandés depuis l'Arduino.

 

Les fonctions graphiques de Adafruit ici

Et voici le code :

/***************************************************
  This is an example sketch for the Adafruit 1.8" SPI display.
  This library works with the Adafruit 1.8" TFT Breakout w/SD card
  ----> http://www.adafruit.com/products/358
  as well as Adafruit raw 1.8" TFT display
  ----> http://www.adafruit.com/products/618

  Check out the links above for our tutorials and wiring diagrams
  These displays use SPI to communicate, 4 or 5 pins are required to
  interface (RST is optional)
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.
  MIT license, all text above must be included in any redistribution
 ****************************************************/

// You can use any (4 or) 5 pins
#define sclk 4
#define mosi 5
#define cs   6
#define dc   7
#define rst  8  // you can also connect this to the Arduino reset

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>
#include "DHT.h"
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT11   // DHT 11

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);


float p = 3.1415926;
DHT dht(DHTPIN, DHTTYPE);

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

 
  tft.initR(INITR_BLACKTAB);   // initialize a ST7735S chip, black tab
  Serial.println("init");

  uint16_t time = millis();
  tft.fillScreen(ST7735_BLACK);
  time = millis() - time;

  Serial.println(time, DEC);
  delay(500);

}

void loop() {  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
   
    tft.fillScreen(ST7735_BLACK);
    //resultat = "Humidite" + h + "Temperature" + t;
  //testdrawtext("Humidit:", ST7735_WHITE);
  //testdrawtext(h, ST7735_WHITE);
  tft.print("humidite:");
  tft.print(h);
  tft.print("%    temp:");
  tft.print(t);
  tft.print(" C    ");
  delay(5000);

  }
}




vendredi 2 août 2013

Cave à vin



Cette cave à vin a pour but de combler une niche située dans un placard, entre une cloison et un mur porteur (évidemment, sinon je l'aurai faite plus grande ;-)Elle pourra contenir 46 bouteilles de type bouteille de Bordeaux (les formats plus larges comme certains côtes du Rhône et Bourgogne ne pourront pas rentrer).

La cave va du sol au plafond soit 2.50m sur 0.22m. Comme toujours, je peux fournir le plan Sketchup sur demande.

Je voulais faire quelque chose à la fois traditionnel (couleur chêne) et "design" sans que cela coûte un bras.
La cave est donc exclusivement en mélaminé imitation chêne. D'ailleurs, un petit conseil: celui de chez LM est moins cher et bien plus beau que celui du castor.
Le côté design est apporté par un ruban de LED RGB incrustées dans une rainure qui court tout le long des panneaux latéraux. Pour les étagères, je voulais faire un système de rainure dans lesquelles viendraient se glisser les étagères.
A noter que le fond de la cave n'est pas au fond du meuble: il reste de la place derrière pour ajouter (plus tard) un système de refroidissement (à l'étude!).

Les panneaux latéraux avec la rainure pour le ruban de LED


Panneaux prêts


Le gabarit pour le rainurage des emplacements des étagères

assemblage étagère

mercredi 31 juillet 2013

Hack des tankbot

Nouveau possesseur d'un tankbot, je suis un peu frustré car il n'a pas la fonction "tir", pourtant indispensable!

Allez on ouvre la bébête!

On voit clairement les points marqués OPxx qui servent à configurer le modèle.
Quelqu'un a déjà désossé plusieurs robots et a publié la liste des OPcodes (non exhaustive) ici

Donc on enlève op4 et on met un point sur op3. On rallume le tankbot et on le met en mode 3.
IL ne reste plus qu'à tester dans l'application quel modèle correspond à la configuration d'OP codes. Le premier modèle testé fut le bon : nous voici donc avec un superbe tankbot bleu avec fonction tir! Reste a souder une Led IR sur le PCB et nous voila avec un tankbot de combat! Pour souder la LED, deux solutions: soit vous démontez le PCB mais il a l'air bien calé soit vous la montez sur le dessus en faisant un trou sur le pare brise si vous vous foutez du style.



Edit du 09/08/2013:
Il semble qu'il existe plusieurs versions des TankBot. J'ai voulu effectuer la modification sur celui d'un collègue et il se trouve que le passage en mode guerre fonctionne (le tankbot tire) mais l'emplacement pour souder la LED a disparu ! A titre d'info, le code 09BA11 est gravé sous le sien et sous son dongle alors que j'ai 11BA11 sur le mien. Sur les 4 dongle que j'ai pu tester, les deux 09BA11 répondent parfaitement bien tandis que le 11BA11 "plante" au bout d'un temps aléatoire. Il faut alors l'éteindre et le rallumer pour qu'il fonctionne de nouveau.