Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

SveinHa

Medlemmer
  • Innlegg

    1 505
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    72

Alt skrevet av SveinHa

  1. Logitech sier at batteriet i Ultimate ikke kan skiftes men det kan det, ikke veldig vanskelig heller, ligger flere instruksjonsvideoer på tuben. Batteriet koster rundt kr 230.- på batteryupgrade.no så nå er jeg oppe i flere døgns batteritid igjen. Hele konseptet med fjernkontroll som sender RF til hub og den sender IR videre er jo helt supert.
  2. Done 😁 #include <ArduinoMqttClient.h> #include <WiFiNINA.h> #include "arduino_secrets.h" #include <DS18B20.h> DS18B20 ds(2); //pin number of 1 Wire bus float temps[] = {0.0, 0.0, 0.0}; //Array for storing temps int sensnum = 0; // counter int WaterLevel = 0; int WaterLevelFilt = 0; // Filtrert nivå ///////please enter your sensitive data in the Secret tab/arduino_secrets.h char ssid[] = SECRET_SSID; // your network SSID (name) char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP) WiFiClient wifiClient; MqttClient mqttClient(wifiClient); const char broker[] = "172.16.0.94"; int port = 1883; const char topic0[] = "Pool/TempWater"; const char topic1[] = "Pool/TempDome"; const char topic2[] = "Pool/TempOutside"; const char topic3[] = "Pool/WaterLevel"; //set interval for sending messages (milliseconds) const long interval = 30000; unsigned long previousMillis = 0; int count = 0; void setup() { //Initialize serial and wait for port to open: Serial.begin(9600); // while (!Serial) { // ; // wait for serial port to connect. Needed for native USB port only // } // attempt to connect to Wifi network: Serial.print("Attempting to connect to WPA SSID: "); Serial.println(ssid); while (WiFi.begin(ssid, pass) != WL_CONNECTED) { // failed, retry Serial.print("."); delay(5000); } Serial.println("You're connected to the network"); Serial.println(); Serial.print("Attempting to connect to the MQTT broker: "); Serial.println(broker); if (!mqttClient.connect(broker, port)) { Serial.print("MQTT connection failed! Error code = "); Serial.println(mqttClient.connectError()); while (1); } Serial.println("You're connected to the MQTT broker!"); Serial.println(); Serial.print("Sending MQTT data every "); Serial.print(interval / 1000); Serial.println(" sec to: "); Serial.println(topic0); Serial.println(topic1); Serial.println(topic2); Serial.println(topic3); WaterLevelFilt = analogRead(A0); // Initialize filtered value } void loop() { sensnum = 0; while (ds.selectNext()) { // les temps inn i array temps[sensnum] = ds.getTempC(); sensnum ++; } WaterLevel = analogRead(A0); WaterLevelFilt = (WaterLevelFilt*19 + WaterLevel)/20; // Serial.print("WL: "); // Serial.println(WaterLevel); // call poll() regularly to allow the library to send MQTT keep alives which // avoids being disconnected by the broker mqttClient.poll(); unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // save the last time a message was sent previousMillis = currentMillis; // send message, the Print interface can be used to set the message contents mqttClient.beginMessage(topic0); mqttClient.print(temps[0]); mqttClient.endMessage(); mqttClient.beginMessage(topic1); mqttClient.print(temps[1]); mqttClient.endMessage(); mqttClient.beginMessage(topic2); mqttClient.print(temps[2]); mqttClient.endMessage(); mqttClient.beginMessage(topic3); mqttClient.print(WaterLevelFilt); mqttClient.endMessage(); } } arduino_secrets.h inneholder SSID og passord slik: #define SECRET_SSID "WhateverYouHave" #define SECRET_PASS "Passw" Jeg har ikke funnet noen enkel måte å få oversikt over de topics som finnes tilgjengelige i MQTT så dokumentasjon er viktig. Når Arduino starter så skriver den derfor en liten rapport som oppsummerer: I HS4/MQTT Subscriptions legges Topicene inn manuelt: Oppsett av Mosquitto ligger der mange oppskrifter for og jeg brukte denne: https://obrienlabs.net/how-to-setup-your-own-mqtt-broker/
  3. Har lenge savnet fjernovervåking av temperatur i poolen men ikke kommet på noen god ide om hvordan det skulle gjøres på en elegant måte. Hadde liggende en håndfull DS18B20 sensorer og handlet meg en Arduino MKR WiFi 1010, plukket sammen et par tre av eksempelprogrammene og plutselig hadde jeg vann-, luft-, utetemperatur og nivå sendt til HS4 via Mosquitto MQTT Broker kjørende på en virtuell Linuxmaskin som for det meste går på tomgang likevel... MQTT har vært en smule gresk for meg selv om jeg har nå lest litt men da jeg fant ut at nå er det på tide å få hull på den byllen så var det jo ganske så plankekjøring og det åpner jo for uante muligheter. Begynner å bli gøy med hjemmeautomasjon....eller enda gøyere 😁
  4. Poenget er likt, start og stoppsignal for dataoverføring. RTS/CTS er egne signalledninger i RS232 kabelen mens XON/XOFF er ASCII kode som sendes som data.
  5. Har hatt en Lenovo Yogabook stående på tvbordet til HSTouch men batteriet sovna såpass solid at den ikke ville gå på kontinuerlig lading en gang... En tur i rotekassen og en 23" PC skjerm og en Raspberry Pi dukket opp. Etter å ha prøvd litt forskjellige Android varianter endte jeg på Emteria. Ikke gratis (€5/device/år) men ser ut til å fungere pålitelig på RPi4. Ikke touchskjerm men der får da være grenser for hva en finner i rotekassen... Et Logitech K400+ tastatur med touchpad funker glimrende fra godstolen... ... og bevegelssensorer utendørs popper opp levende video...
  6. Så gikk mesteparten av kvelden med til seriekomm. Ser ut til at labstrømforsyningen ikke er egnet for produksjonsmiljø... eller ikke egnet til USB kommunikasjon i det hele tatt... Har lest på nett at protokollen ikke er særlig pålitelig og ser det tydelig selv også... Det ble nevnt at for å f.eks. sette spenning så måtte en lage loop som først setter spenning og så leser spenning og så loope til de blir like... En kan jo også lese 00.00V gjentatte ganger når setpunkt er f.eks 30.00. "Grei" omgåelse av problemet på en måte men ikke særlig fristende... Om en setter spenning eller strøm og bruker feil antall siffer før eller etter komma blir det enten ignorert helt eller delvis, f.eks. sett 12.12V kan lett bli 02.12V og 12.123 kan bli noe sånt som 12.4. Satt nettopp nå og prøvde å slå på utgangen med "OUTPUT1\n" flere ganger fra PuTTY og ingenting skjedde. Prøvde så "OUTPUT0\n" og da gikk den PÅ?!?!? Nei, ser ut til at jeg har kommet i mål med Arduinoprosjektet mitt ved å unngå kommunikasjon med PSU og bare styre av/på og polvending med releer. Men det var nå gøy å knotte litt Python3 på RPi4 og da, like greit som Arduino.
  7. Har liggende både 3B+ og 4B så akkurat nå har jeg fått gang på GPIO fra Python og leker litt med serie...
  8. Det handler ikke bare om å gjøre det enkelt men også ha det gøy og lære noe nytt 😚👍
  9. Det er litt både og. Flere utenlandske nettsjapper håndterer Norsk MVA og enkelte ganger slipper en helt unna og men i det øyeblikket Posten legger siden klamme hender på pakken blir det jo minst 150 bare i gebyr og det er mye på slike smådeler som dette. Fra Kina tar det ikke bare lang tid men fryktelig mange pakker forsvinner underveis også for tiden, opplevde aldri det for noen år siden...
  10. Det er jo det som må til ja. Har lett litt etter noe slikt uten å finne... Med Postens momsgebyrer blir den jo like dyr som en RPi hos Kjell... Programmet i seg selv er jo enkelt og lite men det er jo klart at der er en viss terskel med å komme i gang med et ukjent språk/utviklingsmiljø som Python men har lyst å prøve det og.
  11. Med standard strømforsyning til Arduino er der intet liv i TTL Rx/Tx men i det øyeblikket jeg plugger inn USB kabel til PC blir der liv i TTL Tx, dog uten svar på Rx. TTL Rx/Tx er jo samme porten som USB. Der ligger noe USB initiering der en plass som jeg ikke har funnet ut av...
  12. Hmmm... Etter en god natt under dyna dukket en ny ide opp. I stedet for å "tvinge" Arduino til å gjøre noe den egentlig ikke har lyst til, kanskje RPi med litt Pyton er en riktigere vei å gå? Tiden er jo alltid moden til å lære noe nytt 🤗
  13. Da har jeg gått for pingleløsningen, flowovervåking, strøm av/på og polaritetsvending styrt av Arduino og strømregulering/spenningsbegrensing i PSU. Gjør nok jobben helt greit men hadde lyst å gjøre det "på rette måten"... Tilkoblingene: Rød/Sort: Spenning fra PSU Nærmeste kontakt: Strøm til klorgenerator. Midterste kontakt: Flowswitch. Borterste kontakt: 5V USB tilførsel til Arduino, Driftsmodus: 25% av tiden er klorgenerering på, ellers av, polariteten veksler for hver periode. PSU er stilt inn på 3.5A og regulerer spenningen til den strømmen er oppnådd. Stiger spenningen trenger klorcellen rengjøring, synker den er der for lite salt i vannet. Trykknappene til høyre er Øk/Mink driftsprosent. "Drift #" er teller som teller ned resten av tiden i aktuell modus. Pausemodus: Rele styrt av Arduino bryter kretsen til klorsellen og spenningen stiger da til max innstilt. Det var spesielt denne funksjonen jeg ville ha gjort i PSU via USB i stedet for å bare bryte kretsen.
  14. Jepp. Kanskje jeg bare skulle snu meg rundt og skaffe en Arduino Due, den kan i alle fall være host men vet ikke om jeg kommer i mål likevel...
  15. Hacket meg inn på PSU. I rød ring er Tx/Rx i Arduino. Ingen kommunikasjon før jeg plugger inn USB til PC, da mottar i alle fall PSU data men ser ikke ut til å svare. Prøvde USB strømforsyning til Arduino uten hell, må ha PC i andre enden av kabelen.
  16. Nettopp det jeg har konkludert med. Ikke verdens mest oversiktlige bilde men viser nå prinsippet... Midt på den blå kabelen har jeg muligheter til å krysse 2 og 3, koble til skop og mate med 5V.
  17. Er den adapteren jeg har. Har klippet og limt litt men begynner å falle ned på at det ikke går uten en eller annen host-konfigurering...
  18. Ja men med USB-B i enden... Fant noe her: https://www.arduino.cc/en/Reference/USBHost Funker KUN med Arduino Due og er fokusert på tastatur og mus men er i allefall i stand til å hoste USB.
  19. Takk men det er en av de mange sidene jeg allerede har vært innom
  20. Ja. Begynner å skjønne at dette ikke vil funke særlig bra. Mulig jeg kan komme i mål med annen Arduino eller men tilleggsutstyr men er usikker. Har ikke funnet noe som beskriver det direkte men sitter med inntrykk av at OSB MÅ ha en eller annen initiering som Arduino selv ikke kan gjøre. Har sjekket pinne for pinne gjennom hele kabelen og den er ok. Den funker også i PC uten dongle.
  21. Det er vel der cluet er... Kabel er en standard USB-A til USB-B med en USB-A til B konverter slik at der blir B i begge ender. I tillegg har jeg mulighet til å krysse pin 2 og 3 (som antagelig er en dårlig ide...) og 5V tilførsel slik at Arduino får strøm og også USB porten i strømforsyning om den skulle trenge det. Dette her ville jo vært plankekjøring med RS232... Kjører for tiden på en Knowlogy som skal tilsvare Uno med Atmega328P Finner mange eksempler på nett men alle med USB har PC e.l. i ene enden, alle andre alternativer ser ut til å bruke TTL-nivå pinnene mellom flere Ardunio.
  22. Et lite skritt videre men står fast likevel. Med USB kabel mellom PC og strømfors finner jeg slike signaler: Ser ganske normalt ut. Men når Arduino overtar blir det slik: Samme kabel, samme målepunkt, samme innstillinger på skop... Når jeg ser på Rx/Tx diodene på Arduino forteller de akkurat det samme: Med PC blinker de ved aktivitet, med Arduino er de døde... Begynner å se ut som om det er et generelt USB problem, at Arduino ikke klarer å initiere USB riktig men er avhengig av at PC gjør den jobben. Noen Arduinokjennere her?
  23. Her fant jeg bl.a. følgende: 9600 8N1 skal virke og virker i PuTTY.
  24. Jepp, men jeg fant på nett at i denne sammenhengen er "\n" ment bokstavlig. Trodde nok at PuTTY sendte direkte uten noen konvertering men får leke litt til med den biten... Kom i natt på at å krysse pin 2 og 3 antagelig er en dårlig ide siden det er differensielle signal... Henger litt 232 igjen i skalpen...
  25. En liten oppdatering. Kjøpte en enkel innbyggingsboks fra Kjell&co: og 3D printet ny front og bakplate samt monteringsplate inni boksen: Da gjenstår egentlig bare å få greiene til å virke... 😚 Men så har jeg møtt på et uventet problem... Nåja, helt plankekjøring er det jo aldri men denne hadde jeg ikke ventet. Kommunikasjonen med lab-strømforsyningen får jeg ikke til fra Arduino. Etter å ha lett litt og funnet ut at "\n" i protokollen ikke er kode for newline men BOKSTAVLIG backslash og liten n klarer jeg å styre strømforsyningen helt 100% fra PuTTY og manuelt skrive inn kommandoer men når Arduino gjør det samme skjer der ingenting i strømforsyningen. Output fra Arduino (eksempelet fanget i PuTTY men ser også helt likt ut i ArduinoIDE) ser slik ut: og er HELT etter boka slik jeg kan se det, dvs. jeg ser der er litt rot med et par kommandoer sendt samtidig men det skjer bare en gang pr minutt og burde ikke bety noe i denne sammenheng. Både strømforsyningen og Arduino har USB B port og jeg har laget meg en kabel som har både ekstern 5V og pin 2 og 3 byttet om og det burde være ok i mitt hode... Noe innlysende jeg overser her?
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.