xibriz Skrevet 4. desember 2018 Forfatter Skrevet 4. desember 2018 (endret) Jeg hadde planlagt å peke sensoren litt ut slik at det traff ett punkt ca. 20 cm lenger ut en loddrett. Men siden jeg plagdes med å få sikkelig data på slutten så endte den nok helt loddrett eller bitte litt inn mot garasjeporten. Nå når jeg vet at jeg oppnår best resultat med garasjeporten igjen så kanskje jeg prøver på nytt å vinkle den litt ut. Utenfor sensoren så er raftekassen, ca 1,5 meter opp og 30-40 cm utover. Det er ca. 35-45 cm fra sensoren inn til garasjeporten. Ta tallene med en klype salt Det er kjempelenge siden jeg bestillte den trafoen, men nå var jeg gått tom for mobilladere så jeg hadde ikke noe valg. Jeg mener å huske at jeg leste noen reviews og fant ut at prisen var grei nok til at jeg tør å bruke den. Foreløpig med stikkontakt i garasjen. De ethernet-modulene er kjøpt separat. Altså kortet og pluggen hver for seg. Søk etter "RJ45 Ethernet Connector Breakout Board" på E-Bay. Planen er å vite når jeg står opp om vi må stresse for å rekke å måkke eller ikke. På sikt kan det være fornuftig å stå opp 15 minutter tidligere Endret 4. desember 2018 av xibriz Siter
xibriz Skrevet 4. desember 2018 Forfatter Skrevet 4. desember 2018 Nå prøvde jeg å vinkle sensoren litt ut slik at den treffer bakken helt utenfor garasjen. Det gikk bra så lenge porten er igjen. De to toppene er når porten er åpen: Her satt jeg søppeldunken under: Det er ikke meldt nedbør den neste uken så det er bare å smøre seg med tålmodighet. Siter
xibriz Skrevet 4. desember 2018 Forfatter Skrevet 4. desember 2018 Det var visst en dårlig idè å vinkle sensoren ut. Feilraten spratt i været. Siter
Moskus Skrevet 4. desember 2018 Skrevet 4. desember 2018 Jeg klarte helt ærlig ikke helt å forstå hva som skulle være formålet med det... Siter
xibriz Skrevet 4. desember 2018 Forfatter Skrevet 4. desember 2018 (endret) Det kommer (kanskje) litt mindre snø helt inntil porten enn under åpen himmel + alt snøen kan bli komprimert rett forran porten hvis pga. varmluft som siger ut av garasjen. Jeg har ikke oppvarmet garasje, men det er varmere inni en utenfor. Endret 4. desember 2018 av xibriz Siter
berland Skrevet 4. desember 2018 Skrevet 4. desember 2018 For snømåling så bør jo sensoren stå langt ute på et jorde, og være upåvirket av alle objekter rundt (turbulens som legger snøen ujevnt). For snømåkebehovsensor så er kanskje kravene litt mindre.. Har du tenkt på korrigering av distanse etter temperatur? Lydhastigheten endrer seg noe med temperatur. Hvis lyden skal 2.5 meter ned og 2.5 meter tilbake igjen, så vil en temperaturforskjell på 10 grader gi sånn ca 9 cm forskjell etter et raskt overslag. Siter
xibriz Skrevet 4. desember 2018 Forfatter Skrevet 4. desember 2018 Koden, som jeg stort sett stjal på internett, tar høyde for både temperatur å luftfultighet. Det er derfor jeg har en DHT22 der Alle funksjoner under loop er kun for å håntere MQTT og FOTA-oppgradering. #include "DHT.h" #include <ESP8266WiFi.h> #include <PubSubClient.h> #include <ESP8266HTTPClient.h> #include <ESP8266httpUpdate.h> #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // 3.3v = Ethernet 1 // 5v = Ethernet 2 // GND = Ethernet 7 and 8 #define trigPin 5 //Ethernet 5 #define echoPin 4 //Ethernet 4 #define dhtPin 2 // Ethernet 3 const int FW_VERSION = 1001; WiFiClient espClient; PubSubClient client(espClient); // WiFi and MQTT endpoints const char* ssid = "ssid"; const char* password = "pass"; const char* mqtt_server = "mqtt"; const char* mqtt_topic_fw_version = "esp/sensor3/fw/version"; const char* mqtt_topic_fw_update = "esp/sensor3/fw/update"; const char* mqtt_topic_fw_info = "esp/sensor3/fw/info"; const char* mqtt_topic_temp = "esp/sensor3/temperature"; const char* mqtt_topic_humid = "esp/sensor3/humidity"; const char* mqtt_topic_dist = "esp/sensor3/distance"; DHT dht(dhtPin, DHTTYPE); float lastTime = 0; void setup() { setupWiFi(); setupMqtt(); Serial.begin (9600); delay(10); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); dht.begin(); } void loop() { loopMqtt(); float duration, distance; float speed; float humidity = dht.readHumidity(); // Read temperature as Celsius (the default) float temperature = dht.readTemperature(); digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); speed = 331.4 + (0.606 * temperature) + (0.0124 * humidity); distance = (duration / 2) * (speed / 10000) - 1.5; //Calibrated -1.5 cm if (distance >= 400 || distance <= 2){ Serial.print("Distance = "); Serial.println("Out of range"); } else { Serial.print("Distance = "); Serial.print(distance); Serial.println(" cm"); delay(1000); } Serial.print("Temperature = "); Serial.print(temperature); Serial.print(" *C "); Serial.print(" Humidity = "); Serial.print(humidity); Serial.println(" % "); if(millis() - lastTime >= 5000) { lastTime = millis(); client.publish(mqtt_topic_temp, ((String)temperature).c_str()); client.publish(mqtt_topic_humid, ((String)humidity).c_str()); client.publish(mqtt_topic_dist, ((String)distance).c_str()); } delay(1000); } void setupMqtt() { client.setServer(mqtt_server, 1883); client.setCallback(callback); } void setupWiFi() { delay(10); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void callback(char* topic, byte* payload, unsigned int length) { if (strcmp(topic, mqtt_topic_fw_update) == 0) { String fwURL = ""; for (int i = 0; i < length; i++) { fwURL.concat( (char)payload[i] ); } checkForUpdates(fwURL); } } // Ensure the MQTT lirary gets some attention too void loopMqtt() { if (!client.connected()) { reconnectMqtt(); } client.loop(); delay(100); } void reconnectMqtt() { // Loop until we're reconnected while (!client.connected()) { // Create a random client ID String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Attempt to connect if (client.connect(clientId.c_str())) { client.subscribe(mqtt_topic_fw_update); client.publish(mqtt_topic_fw_version, ((String)FW_VERSION).c_str()); } else { // Wait 5 seconds before retrying delay(5000); } } } void checkForUpdates(String fwURL) { String fwVersionURL = fwURL; fwVersionURL.concat( ".version" ); client.publish(mqtt_topic_fw_info, ((String)"Checking for firmware updates.").c_str()); client.publish(mqtt_topic_fw_info, fwVersionURL.c_str()); HTTPClient httpClient; httpClient.begin( fwVersionURL ); int httpCode = httpClient.GET(); if( httpCode == 200 ) { String newFWVersion = httpClient.getString(); client.publish(mqtt_topic_fw_info, ((String)"Current firmware version").c_str()); client.publish(mqtt_topic_fw_info, ((String)FW_VERSION).c_str()); client.publish(mqtt_topic_fw_info, ((String)"Available firmware version").c_str()); client.publish(mqtt_topic_fw_info, newFWVersion.c_str()); int newVersion = newFWVersion.toInt(); if( newVersion > FW_VERSION ) { client.publish(mqtt_topic_fw_info, ((String)"Preparing to update").c_str()); String fwImageURL = fwURL; fwImageURL.concat( ".bin" ); client.publish(mqtt_topic_fw_info, ((String)"Downloading new firmware.").c_str()); client.publish(mqtt_topic_fw_info, fwImageURL.c_str()); t_httpUpdate_return ret = ESPhttpUpdate.update( fwImageURL ); switch(ret) { case HTTP_UPDATE_FAILED: //Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str()); client.publish(mqtt_topic_fw_info, ((String)HTTP_UPDATE_FAILED).c_str()); client.publish(mqtt_topic_fw_info, ((String)ESPhttpUpdate.getLastError()).c_str()); client.publish(mqtt_topic_fw_info, ESPhttpUpdate.getLastErrorString().c_str()); break; case HTTP_UPDATE_NO_UPDATES: client.publish(mqtt_topic_fw_info, ((String)HTTP_UPDATE_NO_UPDATES).c_str()); break; } } else { client.publish(mqtt_topic_fw_info, ((String)"Already on latest version").c_str()); } } else { client.publish(mqtt_topic_fw_info, ((String)"Firmware version check failed, got HTTP response code").c_str()); client.publish(mqtt_topic_fw_info, ((String)httpCode).c_str()); } httpClient.end(); } 2 Siter
xibriz Skrevet 6. desember 2018 Forfatter Skrevet 6. desember 2018 Jeg mistenker at sensoren treffer det det ikke er snø. Må nok finne en annen plassering. Siter
ArnieO Skrevet 6. desember 2018 Skrevet 6. desember 2018 51 minutes ago, xibriz said: Jeg mistenker at sensoren treffer det det ikke er snø. Må nok finne en annen plassering. Ultralyd-beamen er nok såpass stor der nede at du vil nok se det når det blir mer snø. Men det blir sikkert en "midlingseffekt", så det kan bli nødvendig å kalibrere. Siter
berland Skrevet 6. desember 2018 Skrevet 6. desember 2018 5 timer siden, xibriz skrev: Jeg mistenker at sensoren treffer det det ikke er snø. Må nok finne en annen plassering Jeg gjetter på at for å få presisjon nok til å detektere dette snølaget, må du peke sensoren loddrett ned, og montert på en pinne som stikker 1-2 meter ut fra garasjen. Siter
xibriz Skrevet 7. desember 2018 Forfatter Skrevet 7. desember 2018 I natt har det snødd. Jeg målte 12cm ca 1 meter ut og mellom 0-5cm der sensoren står. Det var ingen merkbare utslag på sensoren. 1 Siter
Marhil Skrevet 7. desember 2018 Skrevet 7. desember 2018 Er ikke snø en kraftig lyddemper. Husker hvor dårlig vi hørte hverandre da vi bygde snøhuler som små... Sent fra min BLA-L29 via Tapatalk Siter
xibriz Skrevet 7. desember 2018 Forfatter Skrevet 7. desember 2018 Nå har jeg prøvd sonsoren her Og her Og til slutt her Uten å få noen avstand prøvde også en ny sensor i tilfelle den var defekt, og kontrollerte mot vegg og det fungerte bra. Konkluderer med at hc-sr04 er en blindvei. 1 Siter
ArnieO Skrevet 7. desember 2018 Skrevet 7. desember 2018 Laser er kanskje bedre? Har ingen erfaring med det; bare en tanke: https://www.aliexpress.com/item/Laser-Range-Sensor-Module-10-180cm-Distance-Sensor-RS232-Interface-Arduino-TOF10120-TOF05140/32901237079.html Siter
berland Skrevet 7. desember 2018 Skrevet 7. desember 2018 1 time siden, xibriz skrev: Uten å få noen avstand prøvde også en ny sensor i tilfelle den var defekt, og kontrollerte mot vegg og det fungerte bra. Konkluderer med at hc-sr04 er en blindvei. Får du avstand til bakken under snøen, eller får du bare støy fra sensoren? Siden det finnes proff-varianter av ultralydsensorer der jeg ser teksten "Recommended for snow level measurement" så er det litt snodig hvis ultralyden fra din hc-sr04 er helt ubrukelig (går gjennom snøen) Siter
xibriz Skrevet 7. desember 2018 Forfatter Skrevet 7. desember 2018 Jeg får bare støy, ingen reell måling av verken snø eller bakken under. Jeg synes også det er rart. Men hvis jeg skal forske mer på dette må jeg lage en portabel sak for å prøve forskjellige plasseringer. Lurer på hva som hadde skjedd hvis jeg putter den i ett rør som er ca 10cm langt Siter
Automatiker Skrevet 8. desember 2018 Skrevet 8. desember 2018 Jeg regner med at du har en egen værstasjon? Selv har jeg netatmo m/vind [emoji100] og regn [emoji299] sensor. Jeg tenkt tanken om å kle inn regnsensor i en varme boks, slik at når det snør så tiner den snøen og sensoren registrerer nedbøren. Videre så kan man jo kalkulere snødybde fra nedbør. 1mm regn = 1cm snø[emoji300]. Sent fra min SM-G950F via Tapatalk Siter
ArnieO Skrevet 10. desember 2018 Skrevet 10. desember 2018 (endret) On 07/12/2018 at 18:24, xibriz said: Jeg får bare støy, ingen reell måling av verken snø eller bakken under. Rart. Har du flere av de så du kan bytte og forsøke en annen? Det kan være en feil på denne ene. Jeg har en sittende i garasjetaket. Den måler avstand til gulvet, som den rapporterer inn til Domoticz, som evt varsler om at porten er glemt åpen. Der er støy, der er enkeltmålinger som er helt feil (med mindre det spøker i garasjen!) - men den detekterer altså problemfritt avstanden til betonggulvet som er ca 215 cm lavere. Akkurat nå står det en høytrykksvasker under, og den viser da lavere verdi som vist nedenfor. Det ser ut for å bli en slags "midlingseffekt". Hvilken temperatur har du? Kan det tenkes at det er noe i hc-sr04 som ikke takler kulde? (f.eks. membranet i "høyttaleren" som sender ut lyd) EDIT Vanskelig å finne gode datablader for denne modulen, men denne artikkelenhttps://www.sciencedirect.com/science/article/pii/S221302091630163X omtaler hc-sr04, og litt ned på siden står det: Endret 10. desember 2018 av ArnieO Siter
xibriz Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 @ArnieO Jeg prøvde med en annen HC-SR04. Det var samme resultat. Problemet er at jeg ikke fikk målt avstand når snø er underlaget. Avstand mot tre/betong fungerte fint. Det var vel rett under 0 grader når jeg testet sist. Siter
berland Skrevet 10. desember 2018 Skrevet 10. desember 2018 Prøve å lage et slags horn som dette? Fra https://www.maxbotix.com/Ultrasonic_Sensors/MB7334.htm som har working temperature fra -40 grader. Siter
xibriz Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 (endret) Ja, det kan kanskje hjelpe på. Ser det finnes noen andre billige alternativer: JSN-SR04T https://www.ebay.com/itm/Arduino-Ultrasonic-Ranging-Measuring-Transducer-Sensor-Waterproof-JSN-SR04T/272266517229?hash=item3f64595aed:g:VvcAAOSwtJZXVnh8:rk:5:pf:0 Den må jo være bra.. den koster jo 12 ganger mer enn HC-SR04 ? Mulig den eneste forskjellen er at den er vanntett? Endret 10. desember 2018 av xibriz Siter
berland Skrevet 10. desember 2018 Skrevet 10. desember 2018 Bør være verdt et forsøk! "Operating temperature" ned til 10 minusgrader. Siter
xibriz Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 US-100 skal klare ned til minus 20 grader https://www.ebay.com/itm/Ultrasonic-Sensor-US-100-Distance-Measuring-Module-with-Temperature-Compensation/171907328341?epid=1148719623&hash=item280679a955:g:B9AAAOSwjVVVwXlO Innebygd temperaturkompenasjon. Siter
xibriz Skrevet 10. desember 2018 Forfatter Skrevet 10. desember 2018 Eller kanskje laser er det tryggeste: https://www.ebay.com/itm/TTL-Laser-Range-Sensor-Module-10-180cm-Distance-Sensor-for-Arduino-TOF10120/323580347815?hash=item4b56e445a7:g:ZioAAOSw6dhb9rDK:rk:1:pf:0 Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.