Forumi


Povratak   PC Ekspert Forum > Računala > DIY i Tinkering
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 06.03.2023., 23:05   #1
Inovator
Premium
Moj komp
 
Inovator's Avatar
 
Datum registracije: Nov 2005
Lokacija: Bjelovar
Postovi: 461
Protokomjer

Znam da je long shot, ali forum vrvi znalcima, pa da vidimo.

Trebao bih mjerač protoka fluida, nazovimo ga pametnim, koji je sposoban slati podatke o protoku (volumenu u jedinici vremena) u nekom prihvatljivom nekodiranom obliku, a koji bih onda uzimao i obrađivao dalje. Sve što sam našao su gotova rješenja koja koriste property cloud i slično, a ja bih htio DIY.

Pa ako je netko upoznat, vidio, čuo, radio, puno bi mi pomoglo.

Zadnje izmijenjeno od: Inovator. 07.03.2023. u 00:59.
Inovator je offline   Reply With Quote
Staro 07.03.2023., 01:20   #2
VandaL.pr!
Premium
Moj komp
 
VandaL.pr!'s Avatar
 
Datum registracije: Sep 2006
Lokacija: zaDAR
Postovi: 749


Ja sam pribavio sve potrebno za vodomjer iz videa, kad uhvatim vremena moram to sklepati i vidjeti kako radi.
__________________
ORIGIN: CR0_VandaL | STEAM: vandalzd | TDU2: VaandaL | R* Social Club: vandal_zd | DayZ: VandaL | battle.net: VandaL #2220
VandaL.pr! je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 07.03.2023., 12:30   #3
gil
Member
 
Datum registracije: Jul 2005
Lokacija: Kutina
Postovi: 978
Pogledaj Yokogawa stranicu, možda budeš pametniji.
gil je offline   Reply With Quote
Staro 07.03.2023., 13:07   #4
OuttaControl
Premium
Moj komp
 
OuttaControl's Avatar
 
Datum registracije: Feb 2007
Lokacija: Dalmacija
Postovi: 5,125
https://www.instructables.com/How-to...uino-Tutorial/

To?

A na šta bi sla, di bi sprema, smart home, mqtt? jeli treba bit instant ili pamtiti, vjerojatno i ovo gore sto je vandal snimio, ja sam bas mislio preporucit ESP32, jeftin a ima wifi.
OuttaControl je offline   Reply With Quote
Staro 10.03.2023., 02:11   #5
Inovator
Premium
Moj komp
 
Inovator's Avatar
 
Datum registracije: Nov 2005
Lokacija: Bjelovar
Postovi: 461
Citiraj:
Autor gil Pregled postova
Pogledaj Yokogawa stranicu, možda budeš pametniji.

Pregledavam, čini se obećavajuće.

Citiraj:
Autor OuttaControl Pregled postova
https://www.instructables.com/How-to...uino-Tutorial/

To?

A na šta bi sla, di bi sprema, smart home, mqtt? jeli treba bit instant ili pamtiti, vjerojatno i ovo gore sto je vandal snimio, ja sam bas mislio preporucit ESP32, jeftin a ima wifi.

Ne mora ništa pamtiti, već mi mora dati podatke koje ću spremati u bazu i raditi analitiku.
Inovator je offline   Reply With Quote
Staro 10.03.2023., 21:36   #6
Milentije
Adrenaline junkie
Moj komp
 
Milentije's Avatar
 
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka / Republika Srpska
Postovi: 3,574
Citiraj:
Autor Inovator Pregled postova
Pregledavam, čini se obećavajuće.
Jesi provjerio cijene?
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija
Milentije je offline   Reply With Quote
Staro 10.03.2023., 23:20   #7
OuttaControl
Premium
Moj komp
 
OuttaControl's Avatar
 
Datum registracije: Feb 2007
Lokacija: Dalmacija
Postovi: 5,125
Malo sam se zaigra sa chatGPTjem, tako da nezz jel ovo radi, koliko znam chatGPT nece radit ali malo tweekanja ce riješiti.

Znaci esp32 i YF-S201 senzor protoka prva verzija je sa webhookom na neki server, druga verzija je spremanje u sql server bazu.

HTML:
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>

// Replace with your network credentials
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

// Create a web server object
WebServer server(80);

// YF-S201 Sensor
volatile int flow_frequency; // Measures flow sensor pulses
unsigned int l_hour;         // Calculated liters/hour
unsigned int total_litres;   // Total liters consumed
unsigned long old_time;

// Webhook URL
const char* webhookUrl = "http://your-webhook-url.com";

void handleRoot() {
  server.send(200, "text/html", "<html><body><h1>Water Flow Monitor</h1><p>Current flow: " + String(l_hour) + " L/hr</p><p>Last minute flow: " + String(l_hour*60) + " L/min</p><p>Last hour flow: " + String(l_hour*3600) + " L/hr</p><p>Last day flow: " + String(l_hour*3600*24) + " L/day</p></body></html>");
}

void handleNotFound(){
  server.send(404, "text/plain", "Not found");
}

void setup() {
  Serial.begin(115200);

  // Connect to Wi-Fi network
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  // Print ESP32 Local IP Address
  Serial.println(WiFi.localIP());

  // Initialize YF-S201 Sensor
  pinMode(34, INPUT);
  attachInterrupt(34, flow, RISING);

  // Initialize total litres and old time
  total_litres = 0;
  old_time = millis();

  // Start web server
  if (MDNS.begin("esp32")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);
  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
  
  // Calculate water flow
  unsigned long now = millis();
  unsigned long delta_time = now - old_time;
  float flow_rate = (float)flow_frequency / (float)delta_time;
  old_time = now;
  flow_frequency = 0;
  l_hour = (int)(flow_rate * 3600 / 7.5);

  // Update total litres consumed
  total_litres += (flow_rate / 60 / 7.5);

  // Send updates to webhook URL
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClient client;
    HTTPClient http;
    String payload = "{";
    payload += "\"litres\":";
    payload += String(total_litres);
    payload += "}";
    Serial.println(payload);
    http.begin(client, webhookUrl);
    http.addHeader("Content-Type", "application/json");
    int httpCode = http.POST(payload);
    http.end();
    Serial.println("HTTP POST code: " + String(httpCode));
  } else {
    // If no network connection, start hotspot
    WiFi.softAP("ESP32AP", "password");
    Serial.println("AP started");
    Serial.print("AP IP address: ");
    Serial.println(WiFi.softAPIP());
    server.handleClient();
  }
}

void flow() {
    flow_frequency++;
}
A evo verzija koja bi spremala u sql bazu
HTML:
#include <WiFi.h>
#include <WebServer.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>
#include <esp_wifi.h>
#include <esp_wps.h>
#include <esp_event_loop.h>
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <freertos/event_groups.h>
#include <WiFi.h>
#include <esp_log.h>
#include <esp_system.h>
#include <nvs_flash.h>
#include <driver/gpio.h>
#include <esp_http_client.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <time.h>
#include <Preferences.h>
#include <string>

// Replace with your network credentials
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

// Replace with your SQL Server credentials
const char* server = "your_SQL_Server";
const char* user = "your_SQL_User";
const char* password_sql = "your_SQL_Password";
const char* database = "your_SQL_Database";

// Create a web server object
WebServer server(80);

// YF-S201 Sensor
volatile int flow_frequency; // Measures flow sensor pulses
unsigned int l_hour;         // Calculated liters/hour
unsigned int total_litres;   // Total liters consumed
unsigned long old_time;

// SQL Server
SQLClient client;
String query;

void handleRoot() {
  server.send(200, "text/html", "<html><body><h1>Water Flow Monitor</h1><p>Current flow: " + String(l_hour) + " L/hr</p><p>Last minute flow: " + String(l_hour*60) + " L/min</p><p>Last hour flow: " + String(l_hour*3600) + " L/hr</p><p>Last day flow: " + String(l_hour*3600*24) + " L/day</p></body></html>");
}

void handleNotFound(){
  server.send(404, "text/plain", "Not found");
}

void setup() {
  Serial.begin(115200);

  // Connect to Wi-Fi network
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  // Print ESP32 Local IP Address
  Serial.println(WiFi.localIP());

  // Initialize YF-S201 Sensor
  pinMode(34, INPUT);
  attachInterrupt(34, flow, RISING);

  // Initialize total litres and old time
  total_litres = 0;
  old_time = millis();

  // Initialize SQL Server connection
  client.begin(server, user, password_sql, database);
  Serial.println("SQL Server connection established");

  // Start web server
  server.on("/", handleRoot);
  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
  
  // Calculate water flow
  unsigned long now = millis();
  unsigned long delta_time = now - old_time;
  float flow_rate = (float)flow_frequency / (float)delta_time;
  old_time = now;
  flow_frequency =0;

// Convert flow rate to liters per hour
l_hour = (flow_rate / 7.5) * 1000 * 60 * 60;

// Add to total litres
total_litres += l_hour / 1000;

// Reset flow frequency
flow_frequency = 0;

// Log water flow to SQL Server
if (client.connected()) {
query = "INSERT INTO dbo.Flow (LitersPerHour, TotalLiters) VALUES ('" + String(l_hour) + "', '" + String(total_litres) + "')";
client.execute(query.c_str());
}

// Wait for 1 second
delay(1000);
}
OuttaControl je offline   Reply With Quote
Staro 12.03.2023., 22:47   #8
fre@k
Premium
Moj komp
 
fre@k's Avatar
 
Datum registracije: Oct 2008
Lokacija: osijek
Postovi: 1,859
Citiraj:
Autor Inovator Pregled postova
Znam da je long shot, ali forum vrvi znalcima, pa da vidimo.

Trebao bih mjerač protoka fluida, nazovimo ga pametnim, koji je sposoban slati podatke o protoku (volumenu u jedinici vremena) u nekom prihvatljivom nekodiranom obliku, a koji bih onda uzimao i obrađivao dalje. Sve što sam našao su gotova rješenja koja koriste property cloud i slično, a ja bih htio DIY.

Pa ako je netko upoznat, vidio, čuo, radio, puno bi mi pomoglo.
https://developer.sensirion.com/arch...using-arduino/
https://how2electronics.com/arduino-...w-rate-volume/

Ako vec imas nesto od pametnih stvari iskoristi to, znaci ako imas arduino googlaj "flow sensor for arduino"

Antratek mi je bio dobar za neke stvari pa evo brzinski sam samo uletio u grubo di je voda, probaj malo pretraziti stranicu. Isto vrijedi i za www.tindie.com

https://www.antratek.com/lora/sensor-nodes/water-leak
__________________


CPU: I5 2500k
GPU: MSI TF 660 OC
MBO: Asrock Z68 PRO3
RAM: 2x4gb G. Skill (1333mhz)
PSU: Seasonic 620W
HDD: SSD 180gb Intel 520 | WD Green 2TB
CASE: CM Elite 370
Ostalo: MX518, Logitech Ultra Flat, DELL U2412M, Hyper 212+



Ako Vam je život tužan, ne brinite! Barem Vam je plaća smiješna
fre@k je offline   Reply With Quote
Staro 18.03.2023., 12:45   #9
Inovator
Premium
Moj komp
 
Inovator's Avatar
 
Datum registracije: Nov 2005
Lokacija: Bjelovar
Postovi: 461
Flow sensor treba dati podatke realtime, ne s odgodom. I ocekivani max. protok je 60L/min.
Inovator je offline   Reply With Quote
Staro 21.12.2023., 22:24   #10
walbandon
Premium
Moj komp
 
Datum registracije: Aug 2006
Lokacija: Valbandon-blizu Pule
Postovi: 971
Bok, da li je netko slozio neko rjesenje za ocitavanje sata od vode na daljinu ?

imam neki sat u nekoj sumi na livadi koji moram minimalno 1x mjesecno ocitati... iako bi volio svakih 1h ili 1 dan dobiti stanje - za slucaj da dodje do puknuca i da se na vrijeme zasutavi gubitak vode...

zagledao sam se na ovaj projekt :

https://github.com/jomjol/AI-on-the-edge-device


narucio sam esp32cam i 800L modul za sim ... pa cim stigne mozda se zaigram s tim... jednostavnije bi mi bilo nesto sto bi mogao staviti na sat od vodovoda a da ne blokiram njima ocitanje ... u slucaju ovog s esp32cam bi morao kupiti jos jedan sat i ubaciti ga nakon ovog od vodovoda...
__________________
C I C E.... TRGOVAC 1 , 2 ,
walbandon je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori


Uređivanje

Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Uključeno

Idi na