Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Emner - Elfix

Sider: [1] 2
1
Arduino & Lign. / Ultra HC-SR04
« Dato: Januar 05, 2018, 22:53:04 »
Hej Forum
Jeg har lige noget jeg vil fortælle jer  :)
Jeg har i nogle år brugt HC-SR04 til at måle min træpille beholdning men som mange
andre har det ikke været optimal det er det heller ikke helt i nu men meget bedre
Det man kan gøre er at gøre delay længer  mellem ping
//HC-SR04
  delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.

Så er der knap så meget støj på
min er lige nu sat til 5 sekunder men jeg tro godt at jeg kan sætte den til 10
men prøv jer frem
Mvh Elfix
   

2
Arduino & Lign. / koverter arduino w5100 og mega til esp-12e
« Dato: Januar 05, 2018, 22:26:17 »
Hej Forum
Først vil jeg lige ønske jer et godt nytår :)
Jeg har en vejrstation med arduino w5100 og mega kode der køre helt perfekt som jeg gerne vil konverter til
at køre på en ESP-12E ESP8266 men jeg er ikke på timer/ interrupts og jeg syntes ikke jeg
kan finde noget
Er der nogen der har erfaring med dette og hvad der skal til

Ps. jeg vedhæfter lige koden 

3
Arduino & Lign. / Minimum/maximum
« Dato: August 23, 2016, 08:22:02 »
Hej Forum
Så har jeg igen et problem med min vejrstation jeg kan bare ikke se fejlen i koden
for minimum temperatur når maximum temperatur virker det er i koden linje ca. 100
er der nogen her der kan hjælpe mig  ;)

Mvh Elfix
Kode:
#include <SPI.h>           // used to communicated via the spi bus
#include <Ethernet.h>      // used to communicate with the ethernet controller

#include "TimerOne.h"          // Timer Interrupt set to 2 second for read sensors
#include <math.h>

#include <Wire.h>
#include <Adafruit_BMP085.h>

#define Bucket_Size 0.2794   // bucket size to trigger tip count
#define Bucket_Pin 3         // digital pin Bucket connected to 
#define TX_Pin 8           // used to indicate web data tx
 
#define WindSensor_Pin (2)      // The pin location of the anemometer sensor
#define WindVane_Pin (A2)       // The pin the wind vane sensor is connected to
#define VaneOffset 70           // define the anemometer offset from magnetic north

Adafruit_BMP085 bmp;

volatile unsigned long tipCount;    // bucket tip counter used in interrupt routine 
volatile unsigned long contactTime; // Timer to manage any contact bounce in interrupt routine 

volatile unsigned int  timerCount;    // used to determine 2.5sec timer count
volatile unsigned long rotations;     // cup rotation counter used in interrupt routine
volatile unsigned long contactBounceTime;  // Timer to avoid contact bounce in interrupt routine

long lastTipcount;            // keeps track of bucket tips 
float totalRainfall;       // total amount of rainfall detected

volatile float windSpeed;
int vaneValue;       // raw analog value from wind vane
int vaneDirection;   // translated 0 - 360 direction
int calDirection;    // converted value with offset applied
int lastDirValue;    // last recorded direction value 

float minTemp;   // keeps track of the minimum recorded temp value
float maxTemp;   // keeps track of the maximum recorded temp value
float maxWind;   // keeps track of the maximum recorded wind value
    

// arayas we use for averaging sensor data
float temps[12];    // array of 12 temps to create a 2 minute average temp
float wspeeds[24];  // array of 24 wind speeds for 2 minute average wind speed
float wdirect[24];  // array of 24 wind directions for 2 minute average


// Here we setup the webserver. We need to supply a mac address. Some ethernet boards have a label attached
// with a mac address you can use.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,178);      // IP address, may need to change depending on network
EthernetServer server(80);           // create a server at port 80

void setup() { 

  // setup rain sensor values
  lastTipcount = 0; 
  tipCount = 0; 
  totalRainfall = 0; 

  // setup anemometer values
  lastDirValue = 0;
  rotations = 0;

  // setup timer values
  timerCount = 0;
  

  // disable the SD card by switching pin 4 high
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  
  Serial.begin(9600);
if (!bmp.begin()) {
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  }  
 

  pinMode(TX_Pin,OUTPUT);
  pinMode(Bucket_Pin, INPUT);
  digitalWrite(Bucket_Pin, HIGH); 
  pinMode(WindSensor_Pin, INPUT);
  attachInterrupt(digitalPinToInterrupt(Bucket_Pin), isr_rg, FALLING); 
  attachInterrupt(digitalPinToInterrupt(WindSensor_Pin), isr_rotation, FALLING);

  // Setup the timer intterupt for 0.5 second
  Timer1.initialize(500000);
  Timer1.attachInterrupt(isr_timer);
  
  sei();// Enable Interrupts 
} 

void loop() { 
 
//  bmp.readSensor();

  // set temp min and max values
  if(bmp.readTemperature() < minTemp) {
    minTemp = bmp.readTemperature();
  }  
  if(bmp.readTemperature() > maxTemp) {
    maxTemp = bmp.readTemperature();
  }

  // set wind max values
  if (windSpeed > maxWind) {
    maxWind = windSpeed;
  }
  

  // update rainfall total if required
  if(tipCount != lastTipcount) { 
    cli();  // disable intterupts
    lastTipcount = tipCount; 
    totalRainfall = tipCount * Bucket_Size; 
    sei();  // enable interrupts
  } 

  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
       if (client.available()) {
          char c = client.read();
          Serial.write(c);
          // if you've gotten to the end of the line (received a newline
          // character) and the line is blank, the http request has ended,
          // so you can send a reply
          if (c == '\n' && currentLineIsBlank) {
             // send a standard http response header
             digitalWrite(TX_Pin,HIGH);
             client.println("HTTP/1.1 200 OK");
             client.println("Content-Type: text/html");
             client.println("Connection: close");  // the connection will be closed after completion of the response
             client.println("Refresh: 10");  // refresh the page automatically every 5 sec
             client.println();
             client.println("<body bgcolor=\"black\">");//nye
             client.print("<font color=\"white\">");//nye
             client.println("<!DOCTYPE HTML>");
             client.println("<html><body><h1>&nbsp;&nbspGammeldam Weather Control<br>&nbsp;&nbsp vers. 1.0.1</h1>");
             
             digitalWrite(TX_Pin,HIGH);     // Turn the TX LED on
             client.print("<span style=\"font-size: 30px\";><br>&nbsp;&nbsp;Temperature is ");    
             client.print(bmp.readTemperature());
             client.println(" &deg;C<br />");
             client.print("&nbsp;&nbsp;Minim ");    
             client.print(minTemp);
             client.println(" &deg;C");
             client.print("&nbsp;&nbsp;Maxim ");    
             client.print(maxTemp);
             client.println(" &deg;C<br />");
//             client.print("<br>&nbsp;&nbsp;Humidity is ");    
//             client.print(bme.getHumidity());
//             client.println(" %<br />");
             client.print("<br>&nbsp;&nbsp;Pressure is ");    
             client.print(bmp.readPressure()/100);
             client.println(" mb<br />");
             client.print("<br>&nbsp;&nbsp;Wind Speed is ");    
             client.print(windSpeed);
             client.println(" ms<br />");
             client.print("&nbsp;&nbsp;");
             if(calDirection < 0.2)
             client.print("Quit wind");
             else if (windSpeed < 1.5)
             client.print("Almost calm Wind");
             else if (windSpeed < 3.3)
             client.print("Weak wind");
             else if (windSpeed < 5.4)
             client.print("Light wind");
             else if (windSpeed <7.9)
             client.print("Moderate breeze");
             else if (windSpeed < 10.7)
             client.print("Fresh wind");
             else if (windSpeed < 13.8)
             client.print("Strong wind");
             else if (windSpeed < 17.1)
             client.print("High wind");
             else if (windSpeed < 20.7)
             client.print("Moderate gale");
             else if (windSpeed < 24.4)
             client.print("Fresh gale");
             else if (windSpeed < 28.4)
             client.print("Storm");
             else if (windSpeed < 32.6)
             client.print("Strong storm");
             else
             client.print("Hurricane");
             client.println("<br />");
             client.print("<br>&nbsp;&nbsp;Wind Max Speed is ");    
             client.print(maxWind);
             client.println(" ms<br />");
             client.print("&nbsp;&nbsp;");
             if(calDirection < 0.2)
             client.print("Quit wind");
             else if (maxWind < 1.5)
             client.print("Almost calm Wind");
             else if (maxWind < 3.3)
             client.print("Weak wind");
             else if (maxWind < 5.4)
             client.print("Light wind");
             else if (maxWind <7.9)
             client.print("Moderate breeze");
             else if (maxWind < 10.7)
             client.print("Fresh wind");
             else if (maxWind < 13.8)
             client.print("Strong wind");
             else if (maxWind < 17.1)
             client.print("High wind");
             else if (maxWind < 20.7)
             client.print("Moderate gale");
             else if (maxWind < 24.4)
             client.print("Fresh gale");
             else if (maxWind < 28.4)
             client.print("Storm");
             else if (maxWind < 32.6)
             client.print("Strong storm");
             else
             client.print("Hurricane");
             client.println("<br />");
             getWindDirection();
             client.print("<br>&nbsp;&nbsp;Direction is ");    
             client.print(calDirection);
             client.println(" &deg;");
             if(calDirection < 22)
             client.print(" = North");
             else if (calDirection < 67)
             client.print(" = NorthEast");
             else if (calDirection < 112)
             client.print(" = East");
             else if (calDirection < 157)
             client.print(" = SouthEast");
             else if (calDirection < 212)
             client.print(" = South");
             else if (calDirection < 247)
             client.print(" = SouthWest");
             else if (calDirection < 292)
             client.print(" = West");
             else if (calDirection < 337)
             client.print(" = NorthWest");
             else
             client.print(" = N");
             client.println(" <br />");
             client.print("<br>&nbsp;&nbsp;Rainfall is ");    
             client.print(totalRainfall);
             client.println(" mm<br />");
             //client.print("&nbsp;&nbsp;Mini ");    
             //client.print(minTemp);
             //client.println(" &deg;C<br />");
             //client.print("&nbsp;&nbsp;Maxi ");    
             //client.print(maxTemp);
             //client.println(" &deg;C<br />");
             client.println("</html>");
             digitalWrite(TX_Pin,LOW);      // Turn the TX LED off
             break;
           }
           if (c == '\n') {
             // you're starting a new line
             currentLineIsBlank = true;
           } else if (c != '\r') {
             // you've gotten a character on the current line
             currentLineIsBlank = false;
           }
           
         }
       }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    // Serial.println("client disconnected");
    Ethernet.maintain();

}

// isr routine for timer interrupt
void isr_timer() {
  
  timerCount++;
  
  if(timerCount == 5)
  {
    // convert to ms using the formula 2.4 km/t = (2.4 km/t)*(1000 m/km)*(1/3600 t/s)
    // = 2/3 m/s = 0.667 m/s
    windSpeed = rotations * 0.667;
    rotations = 0;
    timerCount = 0;
  }
}

// Interrrupt handler routine that is triggered when the rg-11 detects rain 
void isr_rg() { 

  if((millis() - contactTime) > 15 ) { // debounce of sensor signal 
    tipCount++; 
    contactTime = millis(); 
  } 
} 
// end of rg-11 rain detection interrupt handler

// interrupt handler to increment the rotation count for wind speed
void isr_rotation ()   {

  if ((millis() - contactBounceTime) > 15 ) {  // debounce the switch contact.
    rotations++;
    contactBounceTime = millis();
  }
}

// Get Wind Direction
void getWindDirection() {
 
   vaneValue = analogRead(WindVane_Pin);
   vaneDirection = map(vaneValue, 0, 1023, 0, 360);
   calDirection = vaneDirection + VaneOffset;
   
   if(calDirection > 360)
     calDirection = calDirection - 360;
     
   if(calDirection < 0)
     calDirection = calDirection + 360;
  
}

4
Arduino & Lign. / Spændningsdeler
« Dato: Juli 17, 2016, 12:39:30 »
Hej forum!
Så er jeg lidt på banen igen :) jeg er stadigvæk i gang med min vejrstation!!
 (Weather Sensor Assembly p/n 80422) som jeg bruge sensor fra som så skal kobles på
en esp8266 problemet er at fra vindretning skal laves en Spændingsdeler evt. en wheatstone bridge da den analoge indgang på esp8266 kun tåler max 1v så jeg vil høre om der er nogen
der kender til andre muligheder?
Mvh Elfix

5
Arduino & Lign. / I2C konflikt
« Dato: Oktober 25, 2015, 19:18:43 »
Hej forum
Så har jeg et nyt problem :-\ jeg har et Ic2 lcd display med adresse (03F) det køre fint
men når jeg så tilslutter min temp/tryk sensor bmp085 med adresse (077) som også køre fint alene så går det galt når de skal køre på samme SDA/SCL bus seriel monitor går i stå!!
Jeg ved ikke hvad der sker!!

Håber at der er nogen der kan hjælpe :)
Se evt. vedhæftet fil!

Mvh Jonny

6
Arduino & Lign. / Time forbrug
« Dato: Oktober 16, 2015, 22:16:11 »
Hej Forum
Som jeg før har skrevet så køre mit pillefyr kontrol :) takket være jeg men jeg har et problem
med at jeg kan læse det totale forbrug via omgang på sneglen men jeg kunne godt tænke mig at aflæse her og nu forbrug i timen :) Jeg har prøvet at læse alt hvad kan finde men jeg fatter det ikke :-[ jeg kan bare ikke få ind i min kylling hjerne hvad der skal til!!
Håber at forum kan hjælpe mig!!

Mvh Elfix



     

7
Arduino & Lign. / LCD Display I2C
« Dato: Oktober 08, 2015, 20:31:26 »
Hej vil bare lige fortælle at jeg i dag flyttet mit Display via et 25 meter langt cat5 kabel
og det virker :) selvom at det ikke skulle kunne lade sig gøre >:( efter alt det jeg har læst
på grund af støj!!

Mvh Elfix

8
Arduino & Lign. / Arduino konflikter
« Dato: Februar 16, 2015, 12:46:34 »
Hej Alle sammen

Først vil jeg lige sige tak for det i har hjulpet mig med!! :)

Men nu har jeg et andet problem, alt programmering er ved være på plads ;)
Men mit w5100 kort konflikter med mit LCD 1602 keypad, de virker fint men når LCDet er
sat på kan jeg ikke skrive til SD kortet :-\

Er der nogen der har prøvet eller ved hvad det kan værre?

På forhånd tak
Mvh Jonny 

9
Arduino & Lign. / IF-ELSE
« Dato: Januar 29, 2015, 17:33:57 »
Hej alle!

Jeg tro godt nok jeg er blevet for gammel til programmer! Jeg er startet med DOS til bage i 1983
siden var der Pascal og nu efter mange år er det 2014 Arduino ide!

Jeg kan bare ikke få det til at virke! Det jeg ger vil er at hvis kedelTemp er <45 skal den tænde en led
( se evt. kode fra andet indlæg) jeg har prøvet næsten alt men det! men det virker ikke :-[

Mvh Jonny   

10
Arduino & Lign. / Arduino mega 2560
« Dato: Januar 27, 2015, 21:17:21 »
Hej alle
Jeg tro at spændings regulatoren er stået af på min mega kort! er der nogen der kender noget til
det? køre fint på usb men ikke på ekstern >:( er der noget jeg kan gøre?

Mvh Jonny

11
Arduino & Lign. / Trafo
« Dato: Januar 26, 2015, 08:01:06 »
Hej DEF

Er der nogen der ved hvor jeg kan få en trafo der både kan giv 9 v og 5 v med indbygget bro og
spændings regulator det er til mit Arduino styring?

Mvh Jonny 

12
Arduino & Lign. / code
« Dato: Januar 16, 2015, 21:17:39 »
Hej igen
kan i ikke lige fortælle hvordan jeg ligger koden ind i emnet!!

Mvh Jonny

13
Arduino & Lign. / Omgangs tæller
« Dato: Januar 16, 2015, 20:43:26 »
Hej DEF
Jeg har lige et emne her til weekenden :)
Jeg vil gerne tælle omgange på min pillesnegl så jeg troede at jeg kunne bruge (eksempel/statechangedetection) men problemet er at den ligger inde i loppen som
aflæser mine 5 ds18b20er og en hc-sr04 i serial monitor med en delay,det virker fint; men ikke omgangstælleren da den jo kun register en impuls hvis det lige rammer når loppen køre!
jeg vil gerne regne forbruget ud da jeg ved at det er 0,033 kg. pr. omgang jeg bruge pt. et tryk
indtil min lm393 3144 kommer i næste uge (der er 2 magneter pr. omgang)
Vedhæfter lige min kode!
Håber at der er nogen der kan hjælpe >:(

Mvh Jonny og god weekend

14
Arduino & Lign. / wire.h
« Dato: Januar 15, 2015, 17:11:55 »
Hej alle
jeg håber at i kan hjælpe mig? jeg kan ikke finde et sted hvor jeg kan downloade WIRE.h

Mvh Jonny

15
Arduino & Lign. / SD kort
« Dato: Januar 05, 2015, 21:46:11 »
Hej DEF

Er der nogen her inde der kan hjælpe mig? jeg kan ikke læse SD kort i min arduino w5100
det er på 8 GB jeg har prøvet nogle eksempler i arduino ide men den fortæller bare at de ikke kan
initialization failed

Mvh Jonny

Sider: [1] 2