Bonjour,
Je recherche un moyen de recuperer une valeur d'un thermostat reliė a Domoticz directement depuis un arduino, branchė en usb sur mon raspberry. Est ce possible?
Je vous remerci de vos reponses
Steph
Recuperer valeur depuis un Arduino
Re: Recuperer valeur depuis un Arduino
Salut,
J'ai jamais eu à faire ce genre de chose mais si je devais le faire je ferai le contraire. Je ne viendrai pas lire DZ depuis l'Arduino mais je ferai un script dans DZ qui envois la valeur en question à l'arduino via le port série !
Il doit bien être possible d'écrire sur le port série en LUA, Python ou en shell !?
J'ai jamais eu à faire ce genre de chose mais si je devais le faire je ferai le contraire. Je ne viendrai pas lire DZ depuis l'Arduino mais je ferai un script dans DZ qui envois la valeur en question à l'arduino via le port série !
Il doit bien être possible d'écrire sur le port série en LUA, Python ou en shell !?
Re: Recuperer valeur depuis un Arduino
Super merci , je vais regarder cette piste
Steph
Steph
Re: Recuperer valeur depuis un Arduino
J'ai trouvė cela :
http://forum.arduino.cc/index.php?topic=151294.0
Pour info je cherche a envoyer une valeure de consigne a l'arduino depuis domoticz afin d'ouvrir ou fermer une vanne melangeuse. Je ne sais pas si cela est la bonne solution
http://forum.arduino.cc/index.php?topic=151294.0
Pour info je cherche a envoyer une valeure de consigne a l'arduino depuis domoticz afin d'ouvrir ou fermer une vanne melangeuse. Je ne sais pas si cela est la bonne solution
Re: Recuperer valeur depuis un Arduino
Le mieux est de te faire une sonde radio avec un DS18b20 (genre copie d'une Oregon):
J'ai realisé celle ci :
La sonde DS18B20 est soudé sur du cable de telephone et trempe dans la piscine, rien n'empeche de la coller sur ton tuyau de chauffage a mesuré avec du scotch alu.
Ensuite un relais Radio qui reçoit l'ordre de domoticz pour ouvrir et fermer la vanne, enfin un script en blocky ou LUA pour piloter l'ensemble
J'ai realisé celle ci :
Code : Tout sélectionner
/*
Arduino powered sous vide controller
Requires:
PID library found at
http://www.arduino.cc/playground/Code/PIDLibrary
dallasTemperature library found at
http://milesburton.com/index.php?title=Dallas_Temperature_Control_Library
Pin configuration:
- LCD pins: 8, 9, 4, 5, 6, 7
- Analog 0: multi-level for buttons
- Backlight control: 10
andy@chiefmarley.com
2/9/2011
Adapted to dfrobot lcd and added transmit of temperature - barnaby@pickle.me.uk
26/2/2013
*/
#include <OneWire.h>
#include <DallasTemperature.h>
#include <thgr810.h>
// period in milliseconds
#define UPDATE_INTERVAL 60000
// clock divisor - microseconds - 25ms (OUTPUT_LIMIT = UPDATE_INTERVAL / POLL_INTERVAL)
#define POLL_INTERVAL 60000
#define OUTPUT_LIMIT 60000
// PID Parameters
#define PID_P 70
#define PID_I 0
#define PID_D 300
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
// initial set point
#define INITIAL_SET_POINT 60
// pin to trigger relay
#define TRIGGER_PIN 13
// transmitter pin
#define TRANSMIT_CHANNEL 2
#define TRANSMIT_PIN 12
#define TRANSMIT_CODE 0x2b
// pin for backlight control
#define BACKLIGHT_PIN 10
// Setup a oneWire instance
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// LCD & Keypad library for dfrobot shield
//Define Variables we'll be connecting to
double setpoint, input, output;
//Specify the links and initial tuning parameters
Thgr810 sensor(TRANSMIT_CHANNEL, TRANSMIT_PIN, TRANSMIT_CODE);
// Backlight timeout (ms)
#define BACKLIGHT_TIMEOUT 60000
#define REPEAT_INITIAL 300
#define REPEAT_FAST 30
int repeat_delay = 0;
// Moving long 'PWM' window
unsigned long windowStartTime;
unsigned long timeout = 0;
unsigned long buttonRepeat = 0;
void setup()
{
//initialize the variables we're linked to
input = 10;
setpoint = INITIAL_SET_POINT;
output = 50;
// Start up the library
sensors.begin();
//turn the PID on
pinMode(BACKLIGHT_PIN, OUTPUT);
digitalWrite(BACKLIGHT_PIN, HIGH);
timeout = millis() + BACKLIGHT_TIMEOUT;
pinMode(TRIGGER_PIN, OUTPUT);
windowStartTime = millis() - UPDATE_INTERVAL;
}
void loop()
{
unsigned long now = millis();
if (now - windowStartTime > UPDATE_INTERVAL)
{
// update readings
sensors.requestTemperatures(); // Send the command to get temperatures
input = sensors.getTempCByIndex(0);
transmit();
windowStartTime += UPDATE_INTERVAL;
}
if (now > buttonRepeat) {
setpoint += 0.1;
setpoint -= 0.1;
}
// reset delay on button repeat
repeat_delay = REPEAT_INITIAL;
// if a button was pressed, illuminate backlight
digitalWrite(BACKLIGHT_PIN, HIGH);
// and reset the backlight timeout
timeout = now + BACKLIGHT_TIMEOUT;
// set the next time to check buttons
buttonRepeat = now + repeat_delay;
// and set the button repeat to fast
repeat_delay = REPEAT_FAST;
}
int counter = 0;
void timerInterrupt()
{
digitalWrite(TRIGGER_PIN, counter < output);
if (++counter >= OUTPUT_LIMIT)
counter = 0;
}
void transmit()
{
// transmit the input temperature as sensor temperature
// and the output duty as humidity (out of 100)
sensor.transmit(input, output*100/OUTPUT_LIMIT);
}
La sonde DS18B20 est soudé sur du cable de telephone et trempe dans la piscine, rien n'empeche de la coller sur ton tuyau de chauffage a mesuré avec du scotch alu.
Ensuite un relais Radio qui reçoit l'ordre de domoticz pour ouvrir et fermer la vanne, enfin un script en blocky ou LUA pour piloter l'ensemble
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
http://www.domo-attitude.fr