kimstoroy Skrevet 21. november 2017 Skrevet 21. november 2017 Hei. Her er jeg inne på et område der jeg ikke har noen kunnskaper, jeg har bygget meg en garasje til robotklipper. I dag bruker jeg en Fibaro RGBW + Universalsensor, men tenker jeg kunne ha forenklet dette litt. Er i dag mange rele og mye kabler som må til for at dette skal fungere. Kan noe hjelpe meg i gang med hva jeg trenger her for å få sensor verdier inn i HomeSeer og kunne sende kommandoer tilbake dersom jeg benytter en Arduino / Node MC. Behov: Innganger: 1stk for Magnetkontakt på robotklipper 2stk for Microbryter endestopp på garasjeport Sensorer: 1stk Temperatur sensor 1stk Lyd Sensor Utganger: 1stk on/off for styring av 12v rele til garasjeport 1stk on/off for styring av 12v polaritets releer til garasjeport 1stk Dimmer for 12v led stripe utvendig 1stk on/off for styring av 12v grønn led stripe 1stk on/off for styring av 12v rød led stripe Bør ha wifi modul 2 Siter
Einar Skrevet 21. november 2017 Skrevet 21. november 2017 Uten bilder tror jeg ikke på dette. ? Jeg har også en slik ullernsau og har tenkt på å lage et hus til den. 1 Siter
kimstoroy Skrevet 21. november 2017 Forfatter Skrevet 21. november 2017 8A88FCD8-B978-4E6C-95DA-92F23C97AEB8.mp4 4 Siter
Actibus Skrevet 21. november 2017 Skrevet 21. november 2017 Du kommer iallefall veldig lagt med en Wemos eller NodeMcu, der har du både wifi og inn/utganger Magnetkontakt, vil det si at du har en magnet på klipperen og en "mottaker" for den i garasjen, eller hva mener du her? Uansett, magnetkontakt, mikrobryter, temperatur og lyd kan du fint koble opp mot en NodeMcu el, samme med releer, dimmingen er jeg mer usikker på hvor lett er å få til, det har jeg aldri forsøkt. I teorien har du 11 brukbare inn/utganger på en ESP8266 brikke som Wemos og NodeMcu er bygd opp rundt, men pga flere innganger også har andre bruksområder er det ikke alle som kan brukes helt fritt, mulig du derfor må ha 2 stk for å få nok innganger/utganger. Det er veldig enkelt å sette opp input og outputs med Arduino plugin til HS, du bare velger NodeMcu som kort, og hvilken pinne som skal være inngang og hvilken som er utgang, så laster du opp den koden pluginen gir deg. Når det gjelder temp sensor må du velge NodeMcu API mode og lage koden selv, men det er heller ikke vanskelig, hjelper gjerne hvis det er noe. Reler 3v NodeMcu Temp/Fukt sensor Lydsensor har jeg ikke brukt før, men ser det finnes flere for arduino, hva er den for? Mikrobrytere er jo også grei skuring, mange å velge mellom der Siter
Einar Skrevet 21. november 2017 Skrevet 21. november 2017 Se der ja! Litt av en tøffing den klippern din! Min hadde nok sendt meg en klage om det var så ulendt terreng foran foringsplassen. Ellers kan jeg ikke hjelpe så mye med tanke på Arduino. Jeg hadde tenkt å kjøre ModbusRTU til et kort med 2 motordrivere, 8 reléer, temperaturmåling og et titall digitale innganger. Det er et kort jeg selv har designet. Det er også satt av plass for radiomoduler, men dette har jeg ikke laget noe program for. Kortet er basert på AVR XMega. Kan du tenke deg å kjøre ModbusRTU som et alternativ så ta kontakt. Siter
kimstoroy Skrevet 21. november 2017 Forfatter Skrevet 21. november 2017 @Actibus takk for info. Ble en handlerunde på Kjell i kveld: Kort: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/utviklingskort/nodemcu-utviklingskort-p87949 Lyd Sens: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/moduler/luxorparts-lydsensormodul-for-arduino-p90789 Dimme modul: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/moduler/luxorparts-mosfet-modul-for-arduino-p90631 Rele Modul: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/moduler/luxorparts-relemodul-for-arduino-4x-p87879 Temp sens: https://www.kjell.com/no/produkter/elektro-og-verktoy/arduino/moduler/temperatursensor-for-arduino-p87883 Lyd sensor tenker jeg å benytte ettersom klipper begynner å pipe før den starter, tenker dette kan trigge åpning av port. Micro brytere har jeg så jeg må sikker koble dem mellom GND og input eller noe slikt. Samme gjelder nok magnet sensor også, denne bruker jeg for å se om den er parkert i lader. Jeg tar gjerne imot all hjelp du kan bidra med har ikke sett på dette tidligere, så kan ingenting @Einar skal nok få fikset litt på terreng, den er satt i et hjørne med takrenne nedløp fra 2 garasjer og der er noe fjell som kommer igjennom plenen akkurat der 1 Siter
kimstoroy Skrevet 22. november 2017 Forfatter Skrevet 22. november 2017 (endret) Slik skal jeg koble styring av motor med 4x rele modul Her vil da aktivering av rele 1 sende strøm til motor. Rele 2 og 3 vil snu polaritet på motor for å lukke porten. Rele 4 styrer en LED stripe direktekoblet på rød og grønn som forteller om den er parkert eller ute å klipper. Grønn = Parkert Endret 22. november 2017 av kimstoroy Siter
Moskus Skrevet 22. november 2017 Skrevet 22. november 2017 17 timer siden, kimstoroy skrev: Kan noe hjelpe meg i gang med hva jeg trenger her for å få sensor verdier inn i HomeSeer og kunne sende kommandoer tilbake dersom jeg benytter en Arduino / Node MC. NodeMCU og Arduino-plugin'en. 1 Siter
Einar Skrevet 22. november 2017 Skrevet 22. november 2017 Du kan klare deg med 2 motorreléer. Legg NC kontaktene til 0V og NO kontaktene til +12V. Da får du 4 mulige tilstander: Høyre/Venstre/Bråstopp/Bråstopp. Forskjellen ift. ditt tredje relé er at med det kan du koble motoren fra så den stopper litt roligere. Men den vil jo uansett bråstarte så mekanikken må jo tilpasses for rykk. LED releét kan du også kutte ut. Bruk spolespenningen fra de andre reléene + en motstand til hver LED. Siter
kimstoroy Skrevet 22. november 2017 Forfatter Skrevet 22. november 2017 @Einar Usikker på hva du mente her, motor styres inn/ut ved endring av polaritet? (denne er kun for å åpne/lukke port) LED rele blir aktivert av status magnet bryter, så det blir riktig. Det skal kun vise om den er parkert eller ikke. Siter
kimstoroy Skrevet 23. november 2017 Forfatter Skrevet 23. november 2017 Har fått satt opp plugin osv i Homeseer, men sliter med å "connect" til NodeMCU. Brukte BETA plugin ettersom det var eneste som jeg fikk NodeMCU som valg på, har lastet opp Sketch i Audrino med wifi info. Har konfigurert pinner og får dem opp i HomeSeer, men klarer ikke å koble til kortet. Noe tips? Siter
Moskus Skrevet 23. november 2017 Skrevet 23. november 2017 2 timer siden, kimstoroy skrev: Har konfigurert pinner og får dem opp i HomeSeer, men klarer ikke å koble til kortet. ... og du har definert rett WLAN med riktig passord og satt opp en MAC-adresse, og deretter lastet ned .uno-filen som du lastet opp på NodeMCUen? Siter
kimstoroy Skrevet 23. november 2017 Forfatter Skrevet 23. november 2017 @Moskus satt opp den mac adresse som kom opp automatisk, må jeg evt sjekke den? Alt annet er riktig Siter
Moskus Skrevet 23. november 2017 Skrevet 23. november 2017 3 minutter siden, kimstoroy skrev: må jeg evt sjekke den? Tror det går greit med mindre det er mange NodeMCUer. Kan du pinge enheten? Siter
kimstoroy Skrevet 23. november 2017 Forfatter Skrevet 23. november 2017 Sjekket Fing app og det ser ikke ut som den har koblet seg til wifi på IP adr jeg har gitt den Siter
Moskus Skrevet 23. november 2017 Skrevet 23. november 2017 ... da hadde jeg begynt å sjekke det. Hvordan ser .uno filen ut? Er det riktig der? Siter
Actibus Skrevet 23. november 2017 Skrevet 23. november 2017 Pass på at IP adressen er i samme range som du bruker ellers, og at det er riktig subnet og gateway. Skal da koble seg til fint egentlig.. Det er mulig å overvåke hva som skjer ved å åpne seriell monitor inni Arduino ide med NodeMCU tilkoplet, du får iallefall opp info om Wi-Fi oppkobling. Koble den til PC, åpne Arduino og tools serial monitor/seriell overvåking eller noe sånt, velg riktig hastighet nederst til høyre, 115200 burde det være, prøv evt en reset av NodeMCU mens du ser på skjermen, da burde det komme info om at den forsøker å koble til 1 Siter
kimstoroy Skrevet 23. november 2017 Forfatter Skrevet 23. november 2017 (endret) 1 time siden, Moskus skrev: ... da hadde jeg begynt å sjekke det. Hvordan ser .uno filen ut? Er det riktig der? Fant feilen, koblet fra relene så kom den inn med en gang. Ser ut som USB power jeg benyttet leverer litt for lite Takker Endret 23. november 2017 av kimstoroy 1 Siter
ZoRaC Skrevet 24. november 2017 Skrevet 24. november 2017 8 timer siden, kimstoroy skrev: Ser ut som USB power jeg benyttet leverer litt for lite Begrensningen kan ligge i NodeMCU også - den har ganske liten maks strøm den kan levere. Reléene bør mates med strøm utenom NodeMCU og bare styres fra den. Siter
Moskus Skrevet 24. november 2017 Skrevet 24. november 2017 35 minutter siden, ZoRaC skrev: Reléene bør mates med strøm utenom NodeMCU og bare styres fra den. Det høres smart ut, men hvordan kobler man sånt? Siter
ZoRaC Skrevet 24. november 2017 Skrevet 24. november 2017 1 time siden, Moskus skrev: Det høres smart ut, men hvordan kobler man sånt? Omtrent slik: 1 Siter
Moskus Skrevet 24. november 2017 Skrevet 24. november 2017 Ah, OK. Felles 0, det gir jo mening. Siter
kimstoroy Skrevet 28. november 2017 Forfatter Skrevet 28. november 2017 @Actibus kunne du hjulpet meg litt på vei her? Ser jeg blir nødt til å benytte API mode på Nodemcu pga PWM dimmer og temp sensor. Jeg har testet i standard mode og det fungerer bra. dette blir oppsettet: Siter
Actibus Skrevet 28. november 2017 Skrevet 28. november 2017 Her har du nok ikke mange nok tilgjengelige GPIO (inn/utganger) til å kunne bruke bare 1 NodeMcu. Jeg ville vurdert å bruke 2. Først begynner du med å velge NodeMcu API i Arduino pluginen, der velger du hvor mange inputs og outputs du skal ha (du kan fint legge til flere senere, trenger ikke laste ned sketchen på nytt). Så åpner du sketchen i Arduino IDE, den er da satt opp med det du trenger for å connecte til HS, men du legge inn kode i setup() og loop() for å utføre det du ønsker. En viktig ting å vite er at du ikke kan bruke delay() funksjonen, hvis det skulle være nødvendig må man bruke prinsippet fra BlinkWithoutDelay eksempelet i Arduino IDE. Legger ved et enkelt eksempel på hvordan du kan styre rele, bryter/magnetsensoe/lyd, temp, PWM har jeg ikke prøvd før. Tror ikke du trenger ekstern motstand på det DS18B20 kortet du har kjøpt, kjøper man sensoren løs må man ha 4.7K motstand mellom + og Data på føleren. Denne er ikke testet med NodeMcu, men compiler greit. Du får hyle ut hvis du lurer på noe Du åpner sketchen du laster ned og kopierer inn det som står under i disse feltene: - Declare your variables here - Add your setup here - Add your code here Du vil finne igjen de samme feltene i sketchen du laster ned fra HS,. /************************************************************* Arduino to Homeseer 3 Plugin API written by Enigma Theatre. V1.0.0.140 * * *************************************************************/ int FromHS[50]; boolean IsConnected = false; //************************************************************ //**************Declare your variables here******************* //Sketch -> Include library -> OneWire og DallasTemperature, evt Manage Library og last de ned hvis ikke i lista #include <OneWire.h> #include <DallasTemperature.h> //Definer hvilken GPIO pinner du vil bruke, google NodeMcu pinout så finner du bilde. int MotorPin = 16; //D0 på NodeMcu int FasevenderPin = 5; //D1 int MikrobryterPin = 4; //D2 int TempPin = 14; //D5 // Variabler int interval = 10000; //hvor ofte du vil at temperatur skal sendes til HS, i millisekunder, 10000 er 10 sek unsigned long previousMillis = 0; unsigned long currentMillis; double Temperatur; int MotorAktiv = LOW; int FasevenderAktiv = LOW; int Mikrobryter = LOW; int MikrobryterStatus = LOW; int MotorStatus = LOW; //HS Inputs og Outputs int MotorHS = 1; //API Output nr 1 int FasevenderHS = 2; //API Output nr 2 int TempHS = 1; //API Input nr 1 int MikrobryterHS = 2; //API Input nr 2 //Temp sensor setup OneWire oneWire_in(TempPin); DallasTemperature tempsensor(&oneWire_in); //**************************************************************** void HSSetup() { //************************ //Add YOUR SETUP HERE; pinMode(MotorPin, OUTPUT); //Setter pinnen som Motor er linket til som en utgang pinMode(FasevenderPin, OUTPUT); pinMode(MikrobryterPin, INPUT); //Alle pinner står som standard til INPUTS, men greit å definere de uansett pinMode(TempPin, INPUT); tempsensor.begin(); //************************ } void HSloop() { //************************ //Add YOUR CODE HERE; //Lese ut temperatur currentMillis = millis(); if (currentMillis - previousMillis <= interval) //Utfører det som står i { } under så ofte som angitt i interval { tempsensor.requestTemperatures(); Temperatur = (tempsensor.getTempCByIndex(0)); SendToHS(TempHS, Temperatur); //Sender temperaturen til HS, API inngang som oppgitt i HS Inputs og Outputs lenger opp } //Se om noen utganger skal aktiveres (samme kode brukes for fasevender og andre reler, bare med egne unike variabler) MotorAktiv = FromHS[MotorHS]; if (MotorAktiv == HIGH && MotorStatus == LOW) //Hvis HS har sendt beskjed om å slå på relet, og det ikke allerede er på, slå det på { digitalWrite(MotorPin, HIGH); //Setter utgangen på pinnen tilhørende Motor til Høy (noen reler trigger på lavt signal, da må man sette digitalWrite(Motor, HIGH); i Setup() over, og sette den til LOW her nede. MotorStatus = HIGH; //Vi setter denne til HIGH for å forhindre å trigger denne If hele tiden, den trenger ikke å trigge hvis den allerede er PÅ } if (MotorAktiv == LOW && MotorStatus == HIGH) //Hvis HS har sendt beskjed om å sle relet av, og det ikke allerede er av, slå det av { digitalWrite(MotorPin, LOW); //Og motsatt må den settes tilbake til HIGH her. MotorStatus = LOW; } //Se om noen brytere er aktivert (bryter kan være magnetkontakt, mikrobryter, lydsensor, bevegelsensor etc.) Mikrobryter = digitalRead(MikrobryterPin); if (Mikrobryter == HIGH && MikrobryterStatus == LOW) { SendToHS(MikrobryterHS, Mikrobryter); MikrobryterStatus == HIGH; } if (Mikrobryter == LOW && MikrobryterStatus == HIGH) { SendToHS(MikrobryterHS, Mikrobryter); MikrobryterStatus == LOW; } //************************ /* To Send Data to Homeseer use SendToHS(Device,Value) Eg.. SendToHS(1,200); where 1 is the API device in homeseer and 200 is the value to send To Recieve data from Homeseer look up the FromHS array that is updated when the device value changes. Eg.. FromHS[5] would be the data from API Output device 5 All code that is located just below this block will execute regardless of connection status! You can include SendToHS() calls, however when there isn't an active connection, it will just return and continue. If you only want code to execute when HomeSeer is connected, put it inside the if statement below. */ /*Execute regardless of connection status*/ if (IsConnected == true) { /*Execute ONLY when HomeSeer is connected*/ } } //************Do not change anything after Here***************** 1 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.