Jump to content

Båtautomasjon med batteriovervåking og Zigbee


Sjøbliss

Recommended Posts

@Mastiff: Hvordan gikk det i Arduino-land? Dør snart av nysgjerrighet 😜

 

Jeg er ferdig med dynamovakten for Lithiumskuta. Har skrotet sammen en slags Batterimonitor/230V AC vakt + litt fjernbetjening på en Wemos ved hjelp av en ADS1115 og Blynk! Den står oppe på loftet og ‘testlader’ med 400A akkurat nå. Blynk er imponerende enkelt. Kjapt å få opp greie grensesnitt. Selve monitoren har jeg ikke laget så veldig avansert matematisk. Med en giga Lithiumbank på over 800Ah kun til forbruk så lar jeg Peukert hvile og satser på en automagisk rekalkulering av en ‘ladeeffektivitetsfaktor’. Så får vi se om det flyr sånn noenlunde.

 

Om noen er interessert i kode så er det bare å droppe en PM men regner med at dere skyr det som pesten 😝


420C76B2-E9AD-442F-8368-C10E2F063CAC.png.faaa7b9fb26aeae0672da0653f1ffdd2.pngB732DEA7-23A1-45BC-A8FE-810105FEE5BE.thumb.jpeg.e6f8e8aba59da6f9f6bbb0052ac6b997.jpeg

 

Link to post
Share on other sites

Litt av et opplegg! Du satser tydeligvis veldig på strøm... Selv har jeg ikke fått gjort noe som helst fornuftig på et par uker, det har vært for mye jobb og annet tull (hjelpe sønnen min med flukten fra skitten sone, også kalt Oslo, til Mandal), og diverse dill. I tillegg ventet jeg på å få DuPont-plasthylstre, som endelig kom for to dager siden, sånn at det blir en eneste rekke på hver enhet. Greit å ha to lange plastbiter som dekker hver av sidene på ESP-en, og tilpasset antall på releer og sånt. Når det er limt fast, bør det begynne å hjelpe. Håper å få tatt en solid runde med pirking og smelteliming i helga! Første helga uten jobb siden jul, tror jeg...

 

Link to post
Share on other sites

Har fått litt blod på tann ja, men går jo an å bruke hur mycke tid som hälst på slikt når en blir ivrig. Er til en kameratbåt. Mine AGM er dessverre for friske til å gravlegges ennå 😁 Men greit med litt prototyping for en lærer jo mye når en holder på. Er en åpenbaring med wifi ift å slippe den hersens ledningstrekkingen som ofte er det som stopper slike overskuddsprosjekter. 230V monitor, fjernkontroll til thrustere/vinsj med telleverk er på beddingen i egen skute. Samt den evinnelige dassmåleren 😂

Link to post
Share on other sites

Hva blir den enkleste måten for å koble sammen 10 mm2 kabler? Jeg skal ha releene i en boks, men vil ha den "avtakbar", så jeg kan koble fra den boksen og ta den med meg opp i hytta hvis noe relé eller noe sånt må byttes. De eneste jeg kan tenke meg sånn uten videre er å bruke rørkabelsko og skru dem sammen med en kort 10 mm bolt og mutter, men det blir en plage, for da må jo dette i en aluminiumsbåt teipes inn så det ikke kan bli kortslutning. er det noen snedig løsning jeg kan bruke? Hels noe der jeg ikke trenger å skru noe, men må jeg, så må jeg.

Link to post
Share on other sites

Takk for tipsene, den typen kontakt har jeg så vidt vært borti før (i en APC Smart-UPS), men jeg visste ikke at de fantes i stor nok størrelse! Siden jeg trenger tre sett, kobler jeg med rørkabelsko og bolt midlertidig og bytter når jeg får disse. Har du noen anelse om amperen den du lenket til tåler, Fantino? Tror du det er like mye som 10 mm2-kablene?

 

Og hva bruker jeg til å krympe dem? Rørkabelsko har jeg "krympet" ved å slå dem flate med hammerslegge. Er det en sånn fra Biltema jeg trenger til disse Andersson-kopiene?

 

 

19-1257_xl_1.jpg.5d50ab3c01bae6ba20f81c5cecadda90.jpg

Redigert av Mastiff (see edit history)
Link to post
Share on other sites

@Mastiff: Hvor mange Ampere skal gå i disse kablene og hvor lenge? Mente du hadde en plan om 2 x 16 mm2 tidligere for nødstart fra batteri foran så var litt usikker på hva de 10 mm2 ledningene skulle gjøre?

 

Jeg ville lånt presstang eller bestilt på Ali. Alt er bedre enn den Biltemasaken. Du får hydraulisk presstang for 3-400 kr var det vel og mekaniske til tredjedelen eller så. 

Link to post
Share on other sites

Beklager, det var jeg som er rusa da jeg la ut denne... Merkelig, jeg drakk da ikke så mange hveteøl til "Star Wars Rogue One"... :giggle: Jeg mente selvsagt 16 mm2! Så da er det AWG 6. Jeg har 32 meter av det liggende her. Så det er det systemet jeg skal ha det til, ja. Og det blir ikke mange sekundene med full amperetrekk.

 

Og kan du si meg hvor jeg finner så rimelige presstenger? Jeg ser en på Biltema til 600, men den er vel ikke hydraulisk. Og det er ikke mange pressene jeg skal gjøre med den, men jeg vet ikke om noe sted jeg kan få lånt en. Jeg har en som jeg bruker til vanlige kabelsko, men den er jo altfor svak til rørkabelsko:

 

12-675_xl_1.jpg.936bea1198e2f272e7341191b670bc27.jpg

 

Link to post
Share on other sites

Hvis du ser litt på spec så passer det gjerne sånn noenlunde. Du skal ha 2 x 16 mm2 inn i hver sko? Da er jeg skeptisk til hvor lett det er å få til på 120-utgaven som oppgis til 10-25 mm2, og da er du plutselig på 175. Om du skal ha bare en 16 mm2 inn i hver så hadde jeg tatt 120. Ratingen er nok for kontinuerlig drift og jeg tviler på at ett sekund eller to med start betyr særlig mye.

 

 

2CAE3E57-C8E8-42E2-A12A-454690FBC270.jpeg
 

Biltema har presstenger, men om du har tid har Ali flotte og rimelige tenger.

 

På Biltema hadde jeg gått for den som presser sekskant som etter min erfaring er mye bedre enn ‘bolt inn i sida’:

 

https://www.biltema.no/verktoy/handverktoy/tenger/spesialtenger/presstang-2000041631

 

Ali har både mekaniske og hydrauliske til snille priser. En kamerat kjøpte den hydrauliske og den virker utrolig bra.

 

NOK 83.81  29% Off | Crimping Plier 6-50mm AWG 22-10 Tube Terminal Crimper Multitool Battery Cable Lug Hex Crimp Tool Cable Terminal Plier Hand Tools
https://a.aliexpress.com/_mLDCh9l


NOK 325.79  16% Off | Hydraulic Crimping Tool Hydraulic Crimping Plier Hydraulic Compression Tool YQK-70 Range 4-70MM2 Pressure 5-6T
https://a.aliexpress.com/_mLYk2UB

 

 

 

 

 

 

 

Redigert av Fantino (see edit history)
Link to post
Share on other sites

Og det var jo ingen tvil med de tengene. Den mekaniske hadde frakt på 21 dollar, så det ble 52 dollar til sammen. Den hydrauliske var til 63 med DHL-frakt, som også går fortere. Så da tar jeg den. Jeg kan kanskje til og med få bruk for den igjen...om fem-seks år! Jeg har ganske mye verktøy som jeg nesten aldri bruker, men som er det eneste jeg kan bruke hvis jeg må gjøre en spesiell ting.

Link to post
Share on other sites

Mastiff skrev for 2 timer siden:

Aha, takk! :thumbsup: Jeg kjøper en tipakk med de pluggene, det er ikke mye forskjell fra de seks jeg trenger, også har jeg ekstra hvis noe skjer. Men et siste spørsmål: De er laget sånn at det ikke fins hunn og hann, ikke sant? Alle kan plugges sammen med hverandre?

Ja Anderson har ikke male eller female så det burde gå fint!

Link to post
Share on other sites

@Fantino Da har jeg endelig kommet i gang med å integrere voltmeter i tillegg til releene i Arduino IDE. Men jeg klarer det selvsagt ikke, kompileringen svikter. Dette språket er smått gresk for meg... Her er det du skrev (fjernet det som ikke er aktuelt for mitt oppsett):

 

Fantino skrev On 1.3.2021 at 10.21:

Fjern alt serial-greier og bruk setningene i hovedloop, dvs alt mellom void () { og tilhørende }. For web server bør vel disse inn både i ‘handle on connect’ loopen og hovedloop. Ikke bruk delay i main loop, det staller bare webserver. Definer heller en timer og bruk millis() (antall millisekunder siden start) for å kjøre måling feks hvert sekund = 1000 ms:

 

I setup:

 

long timer = 0;

 

I main loop:

 

if ((timer + 1000) > millis()) {

 

putt lesing av variable inn her, de leses da hvert sekund

 

timer = millis();

 

}

 

Flytt definisjonen av alle variablene opp over setup (da blir de globale og kan brukes av handle on connect loop - altså de 5 setningene med ‘float ......’ som står i hovedloop).

 

Jeg har forenklet det litt, for det eneste jeg trenger, er Bus Voltage, så derfor har jeg bare 1 istedenfor 5 float. Men jeg får feil når jeg kompilerer, selv før jeg prøver å legge til noe i connect loop. Her er det som er i hovedloop:


 

Sitat

 

void loop() {
  server.handleClient();
  if(LED1status)
  {digitalWrite(LED1pin, LOW);}
  else
  {digitalWrite(LED1pin, HIGH);}
 
  if(LED2status)
  {digitalWrite(LED2pin, LOW);}
  else
  {digitalWrite(LED2pin, HIGH);}


if ((timer + 20000) > millis()) {
  busvoltage = ina219.getBusVoltage_V();
  timer = millis();

  }

 

 

Det er da hele hovedloopen, med de to bryterne til releene, som fungerer. Men når jeg kjører dette, får jeg:

 

'timer' was not declared in this scope


Jeg vet ikke hvor jeg skal plassere den variabelen for å erklære den. Jeg har prøvd med å legge den opp der jeg la inn float-setningen for bus voltage, men det fungerte heller ikke. Da ble det:

 

'timer' does not name a type

 

Kan du hjelpe meg litt videre?

Redigert av Mastiff (see edit history)
Link to post
Share on other sites

@Mastiff: Det skal litt erfaring til for å dekode de der kompilatorfeilene, men jeg _tror_ jeg ser denne ut fra tidligere bitre timer med banning 😁: Du trenger en ekstra krøllparentes nederst for å ‘lukke’ void-loopen. Når den mangler leser kompilator hele koden feil. Legg merke til at Arduino IDE har en fin funksjon med at når du plasserer cursor ved en parentes så highlightes ‘motstående’ parentes. Jeg bruker alltid denne for å sjekke at jeg har fått riktige ‘par’ med parenteser.

 

timer må deklareres før void setup (); slik:

 

unsigned long timer;

Link to post
Share on other sites

Takk, det fikk meg et hakk videre...til neste feil. :giggle:

 

'ina219' was not declared in this scope

 

Edit: Og jeg har included librariet (fantastisk godt skrevet norsk av en oversetter...) til den. Her er hele greia jeg har, kanskje det er greit?


 

Sitat

 

#include <WiFi.h>
#include <WebServer.h>
#include "Wire.h"
#include "Adafruit_INA219.h"

/* Put your SSID & Password */
const char* ssid = "Starthjelp";  // Enter SSID here
const char* password = "";  //Enter Password here

/* Put IP Address details */
IPAddress local_ip(192,168,4,1);
IPAddress gateway(192,168,4,1);
IPAddress subnet(255,255,255,0);

WebServer server(80);

uint8_t LED1pin = 16;
bool LED1status = LOW;

uint8_t LED2pin = 17;
bool LED2status = LOW;

float busvoltage = 0;

unsigned long timer;

 void setup() {
  Serial.begin(115200);
  pinMode(LED1pin, OUTPUT);
  pinMode(LED2pin, OUTPUT);

  digitalWrite(LED1pin, HIGH);
  digitalWrite(LED2pin, HIGH);

  WiFi.softAP(ssid, password);
  WiFi.softAPConfig(local_ip, gateway, subnet);
  delay(100);
 
  server.on("/", handle_OnConnect);
  server.on("/led1on", handle_led1on);
  server.on("/led1off", handle_led1off);
  server.on("/led2on", handle_led2on);
  server.on("/led2off", handle_led2off);
  server.onNotFound(handle_NotFound);
 
  server.begin();
  Serial.println("HTTP server started");
  long timer = 0;
}

void loop() {
  server.handleClient();
  if(LED1status)
  {digitalWrite(LED1pin, LOW);}
  else
  {digitalWrite(LED1pin, HIGH);}
 
  if(LED2status)
  {digitalWrite(LED2pin, LOW);}
  else
  {digitalWrite(LED2pin, HIGH);}


if ((timer + 20000) > millis()) {
  busvoltage = ina219.getBusVoltage_V();

  timer = millis();

  }
 
}

void handle_OnConnect() {
  LED1status = LOW;
  LED2status = LOW;
  Serial.println("GPIO4 Status: OFF | GPIO5 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1status,LED2status));
}

void handle_led1on() {
  LED1status = HIGH;
  Serial.println("GPIO4 Status: ON");
  server.send(200, "text/html", SendHTML(true,LED2status));
}

void handle_led1off() {
  LED1status = LOW;
  Serial.println("GPIO4 Status: OFF");
  server.send(200, "text/html", SendHTML(false,LED2status));
}

void handle_led2on() {
  LED2status = HIGH;
  Serial.println("GPIO5 Status: ON");
  server.send(200, "text/html", SendHTML(LED1status,true));
}

void handle_led2off() {
  LED2status = LOW;
  Serial.println("GPIO5 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1status,false));
}

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

String SendHTML(uint8_t led1stat,uint8_t led2stat){
  String ptr = "<!DOCTYPE html> <html>\n";
  ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  ptr +="<title>Starthjelp</title>\n";
  ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center; charset: utf-8;}\n";
  ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  ptr +=".button {display: block;width: 80px;background-color: #e30022db;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  ptr +=".button-on {background-color: #e30022db;}\n";
  ptr +=".button-on:active {background-color: #34495e;}\n";
  ptr +=".button-off {background-color: #66ff00;}\n";
  ptr +=".button-off:active {background-color: #2c3e50;}\n";
  ptr +="p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  ptr +="</style>\n";
  ptr +="</head>\n";
  ptr +="<body>\n";
  ptr +="<h1>Starthjelp</h1>\n";
  ptr +="<h3>Sett hovedbryteren til batteri 2 eller begge, og aktiver releene</h3>\n";
 
   if(led1stat)
  {ptr +="<p>Rele 1: tilkoblet</p><a class=\"button button-off\" href=\"/led1off\">Koble fra</a>\n";}
  else
  {ptr +="<p>Rele 1: frakoblet</p><a class=\"button button-on\" href=\"/led1on\">Koble til</a>\n";}

  if(led2stat)
  {ptr +="<p>Rele 2: tilkoblet</p><a class=\"button button-off\" href=\"/led2off\">Koble fra</a>\n";}
  else
  {ptr +="<p>Rele 2: frakoblet</p><a class=\"button button-on\" href=\"/led2on\">Koble til</a>\n";}

  ptr +="</body>\n";
  ptr +="</html>\n";
  return ptr;
}

 

 

Redigert av Mastiff (see edit history)
Link to post
Share on other sites

@Mastiff: Du bruker nok et library for ina219? Da må det ligge noen definisjoner innledningsvis, library må ligge som #include, en må initiere en ‘instance’ av inaklassen og den må startes. Høres jo voldsomt ut men er kurant når en ser på eksempler. Om det er Adafruit library du bruker skulle dette være dekkende:

 

https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout/library-reference

 

 

Link to post
Share on other sites

Delta i diskusjonen

Du kan skrive innlegget nå, det vil bli postet etter at du har registrert deg. Logg inn hvis du allerede er registrert.

Guest
Svar på dette emnet

×   Du har postet formatert tekst..   Fjern formattering

  Only 75 emoji are allowed.

×   Innholdet du linket til er satt inn i innlegget..   Klikk her for å vise kun linken.

×   Det du skrev har blitt lagret.   Slett lagret

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...