Jump to content

Båtautomasjon med batteriovervåking og Zigbee


Sjøbliss

Recommended Posts

Takk, board manager for ESP32 har jeg tatt, og jeg har satt kortet til "Doit ESP32 Devkit V1", jeg tror det er riktig. Jeg får feilmelding på ESP32WebServer, og på ESP8266WebServer. Jeg søker blant bibliotekene og finner bare noen biblioteker som er tillegg til ESP8266WebServeren, ikke selve serveren.

Link to post
Share on other sites

Ah, jeg valgte den andre fordi du sa den kunne brukes direkte, bare ved å endre pinnene... Da må jeg ha misforstått. Mente du at jeg skulle ta første del fra den ene og så det som er fra "void setup" under valget av LE2pin?

 

Edit: Jeg prøver det nå, men den gir fremdeles feilmelding...

 

 

Sitat

ESP32_webserver_for_starthjelp:16:19: error: 'D7' was not declared in this scope
 uint8_t LED1pin = D7;
                   ^
ESP32_webserver_for_starthjelp:19:19: error: 'D6' was not declared in this scope
 uint8_t LED2pin = D6;
                   ^
Mange bibliotek ble funnet for "WiFi.h"
I bruk: C:\Users\Mastiff\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.5\libraries\WiFi
Ikke i bruk: D:\Arduino IDE\libraries\WiFi
exit status 1
'D7' was not declared in this scope

 

 

 

Edit: Etter mer googling fant jeg ut at den ikke ville ha D, men bare pinnenummer. Jeg bruker vanligvis 12 og 14 til releer, så jeg tok den, og da fungerte det faktisk! Jeg må bare sjekke at den faktisk funker på pinnene, og at ikke pinnene er aktive når greia starter opp. Kult! :thumbsup:

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

@Mastiff: Blir motsatt for deg. Jeg bruker Wemos/esp8266 så langt. Brukte den som ut pkt men knabbet soft AP delen fra esp32 eksempelet. Men nå er du jo oppe og kjører!

 

Kan sikkert fikle litt med web-utseendet men det tror jeg du er bedre på enn meg! Finner du ut hvordan du plasserer knapper ved siden av hverandre er jeg uhyre interessert!

 

Det kan se ut som om du har ‘dupliserte’ bibliotek. Bare å slette de du ikke vil ha i Arduino folder og restarte. Men du er jo på veien allerede så sikkert ikke nødvendig!

 

Red: Det med pinne-referanser var jeg ikke klar over men det er gjerne pga at esp32 har så utrolig mange ‘interne’ koplinger pinnene for ulik bruk?

 

Ang pinner under oppstart så kan det lønne seg å sjekke hvilke du bør ‘ligge unna’, dvs hvilke som går lave/endrer seg under oppstart. Samt sette de til ‘high’ aller først i setup delen, dvs etter void setup() {

 

digital.write(pinnenr, HIGH);

 

(etter hukommelsen, sjekk syntax)
 

Mener vi rotet fram en oversikt over pinner og hva de gjør ved reset tidligere i tråden? Synes jeg husker at de du nevner skulle være ‘safe’.

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

Det med pinnene var visst fordi D står for digital pinne, og det er ikke alle som vil oppføre seg når de blir satt opp som det. Jeg har den nå så noenlunde i drift, med et par problemer.  Den driver omstart og omstart med relékortet tilkoblet, og den starter opp med releene på. Så jeg skal prøve å bytte pinner på den, kanskje det er noen andre pinner som funker bedre. Men vet du om det fins  noen "always off" ved oppstart i dette oppsettet?

 

Link to post
Share on other sites

@Mastiff: Er det bare relekortet som er tilkoplet eller er disse ‘hestereleene’ også med i ligningen? 😁

 

Ut fra det som står her burde 12 og 14 være safe (bla litt ned for devkit utgave). Men hvordan ser koden din ut nå?

 

Red: For å svare skikkelig på spørsmålet så er det nok ingen som er ‘always off’ men de ‘grønne’ i linken over burde ikke være knyttet til funksjoner som gjør at de skifter under boot. Dersom de ikke går lave under boot og umiddelbart settes høye i setup så burde de ikke trigge releet.

 

Red2: Bladde litt lenger ned nå. Ville unngått nr 12 og 14, se bilde:

 

 

33529227-DDA5-4464-B706-22C3C208B4E7.png

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

Kikket litt mer på eksempelet og oppdaget at det var "søstereksempelet" til det jeg hadde sett på (som var for 8266). Siden LED er på med "high" mens du skal ha releer på med "low" så må du fikle litt mer med koden. Se kommentarer - dette burde virke, men den siste feilen er som kjent alltid den nest siste :-D

 

(Red: formateringstrøbbel)

 

........

WebServer server(80);

uint8_t LED1pin = 16;  //endre pin nr
bool LED1status = LOW; 

 

uint8_t LED2pin = 17;  //endre pin nr
bool LED2status = LOW;

 

 

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

 

  digitalWrite(LED1pin, HIGH); //Legg til disse linjene
  digitalWrite(LED2pin, HIGH); //for å sette pinner høye med en gang

 

  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");
}
void loop() {
  server.handleClient();
  if(LED1status)
  {digitalWrite(LED1pin, LOW);}  //Bytt om HIGH/LOW på disse 4 linjene
  else
  {digitalWrite(LED1pin, HIGH);} //Bytt om HIGH/LOW på disse 4 linjene
  
  if(LED2status)
  {digitalWrite(LED2pin, LOW);}  //Bytt om HIGH/LOW på disse 4 linjene
  else
  {digitalWrite(LED2pin, HIGH);}  //Bytt om HIGH/LOW på disse 4 linjene
}

.....

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

Fantastisk, det funket! :thumbsup: Releene er avslått når den starter om igjen uansett status da jeg nappet ut pluggen. Og den skaper ingen problemer, den ser ut til å switche helt pålitelig. Tusen takk! Det som er igjen, er å finne ut hvordan jeg skal få spesialtegn inn i dette. Jeg er jo litt sær der og vil ha "relé" og "på", ikke noe engelsk. Har du noen som helst anelse om hvordan det gjøres?

Link to post
Share on other sites

Bare bla ned til der html/css delen står. Du kan editere i klartekst der.

 

Endre ‘LED1 Status: ON’ og ‘OFF’ osv til det du vil ha. Om du bruker mye mer tekst kan du få plassproblem og må justere fontstørrelse osv lenger opp men burde ikke være nødvendig.

 

   if(led1stat)
  {ptr +="<p>LED1 Status: ON</p><a class=\"button button-off\" href=\"/led1off\">OFF</a>\n";}
  else
  {ptr +="<p>LED1 Status: OFF</p><a class=\"button button-on\" href=\"/led1on\">ON</a>\n";}

  if(led2stat)
  {ptr +="<p>LED2 Status: ON</p><a class=\"button button-off\" href=\"/led2off\">OFF</a>\n";}
  else
  {ptr +="<p>LED2 Status: OFF</p><a class=\"button button-on\" href=\"/led2on\">ON</a>\n";}

 

Link to post
Share on other sites

Jeg så ikke begge postene ovenfor, du hadde skrevet to like etter hverandre. Men nei, dette er ikke noe med "hestereleene", det var ikke problemet. Det var bare det med pinnene. Jeg har det i full drift nå, og jeg har unngått æøå ved å velge koble til/koble fra og tilkoblet/frakoblet istedenfor på og av. Og med stor irritasjon avfunnet meg med rele 1 uten é. :giggle: Så nå gjenstår bare litt flikking, som å sette fargen til rød og grønn istedenfor blå og svart.

Link to post
Share on other sites

@Fantino, du som er så flink og snill (smører jeg tjukkere på nå, trengs det insulin her...:giggle:), du har ikke tilfeldigvis kode som kan legges til sånn at denne Arduino IDE-greia kan ha en INA219? Da kan jeg bruke dette til å plassere en spenningsmåler på min fars lensepumpebatteri i den lille trebåten hans.

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

@Mastiff: Haha - jeg håper jo bare at noen kan finne ut hvordan jeg får knapper på siden av hverandre 😇😁

 

Det står ganske greit forklart i denne tutorialen. Merk at du trenger to nye libraries. Ville bare lastet inn eksempelet først og koplet opp etter instruksjonene og sett at det kjørte. Så kan du plukke det du trenger:

 

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).

 

Om server blir litt ‘hakkete’ kan du legge inn

 

yield();

 

foran instruksjonene som krever mest tid. Kan gjerne være aktuelt før lesing fra INA men i2c er raskt så jeg tviler på det. Denne setningen gir nødvendig tid til bakgrunnsaktiviteter for bla wifi slik at et ikke er backlog før neste steg starter. La være hvis alt kjører fint uten.

 

PS: Sjekk pin nr for I2C pinner (SCL/SDA) på din utgave av esp32 kort. Kan muligens være forskjeller uten at jeg er sikkert på det. Vises på disse pin-out tegningene du finner overalt via Google.

 

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

Takk! Det er en Easyaccess Touch som jeg nettopp har bestilt. De andre låsene mine er ID Lock, som jeg liker best (og som kjører på ZWave), men jeg må ha noe med en nøkkelløsning i tilfelle noe skjer. Den leiligheten der jeg skal ha den, har ingen andre innganger, og da tør jeg ikke stole på noe som ikke har en "analog" reserveløsning.

 

Link to post
Share on other sites

Jeg driver å diskuterer med Holykell om sensor til septik. Viser seg at de kan lage denne sensoren i syrefast (316). 

 

https://holykell.com/products/HPT621_Capacitance_Fuel_Level_Sensor.html

 

Model No.:HPT621
Measuring Medium:Sea water plus waste

Level Range:0-23cm
Signal Output:4-20mA
Power Supply:12Vdc
Accuracy:1%FS
Process Connect:G1/2"
Materials of housing: 316 (Standard material is 304, but 316 material needed for sea water applications.)

Cable:2m
Water Proof:IP67

 

Sitter å lurer på om dette kan være et godt alternativ om jeg kan forhandle litt på pris. 

 

image.png.98a4cf016c41b98361423d79dc2b7c2b.png

 

Litt tekniske data og spesifikasjon: https://drive.google.com/file/d/1ojQHm6ag_SuadmE_cLwxQlSWGROshVxu/view?usp=sharing

Hjemmeside: https://www.sbarmen.no/

 

"Sofia" Nor Star 350 HT, 2008 modell med D6-370

"Sobasa" Nidelv 300 Sport, 2007 modell med D6-350: Historisk Finn annonse

Link to post
Share on other sites

@Sjøbliss: Den så jo interessant ut! Men jeg håper ikke væsken må entre de hullene nederst på ‘pinnen’? I så fall er jeg veldig skeptisk for å være ærlig. Hvis ikke så må det jo være en ‘clean’ og robust løsning!

 

Ville hørt om de kan levere med 0-5/10V output. Mye enklere å interface. Tips: ads1115 er 16 bits, koster nada og er piece of cake å interface mot ESP om du ønsker litt bedre oppløsning enn intern ADC i ESP kan gi. Jeg var oppe og gikk på Blynk på 5 min med et eksempel.

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...