Wifi gjæringstemperatur

Hei, har allerede vært og raidet ebay etter deler, men ble sittende og prøve å forstå og lære meg programeringen av den..
har du muligheten til å legge ut koden også så har jeg kanskje en mulighet til å forstå hvorfor og hvordan det fungerer :)
Hilsen Tormod.
Gammel hund som skal lære nye triks :)
 

Amarillo

Norbrygg-medlem
Ja, skal legge ut programmering og bygging etterhvert.
ESP-12 er litt sær, og det er mye mindre info om den på nettet enn ESP-01, men jeg skal nok finne en god løsning etterhvert.
 

TorfinnS

Norbrygg-medlem
Ja, skal legge ut programmering og bygging etterhvert.
ESP-12 er litt sær, og det er mye mindre info om den på nettet enn ESP-01, men jeg skal nok finne en god løsning etterhvert.
Programmeringer er lik på de to. 12 har noen flere io det er vel største forskjellen.
 

Amarillo

Norbrygg-medlem
Stemmer det, men litt mer knotete med programmeringen. Litt flere ledninger og ingen pins. Fikk en NodeMCU i posten i dag og den er jo perfekt å teste kode på, har fått ryddet opp mye i koden. Fikk nettopp OTA-programmering til å funke. Det gjør jo saker og ting mye enklere, spesielt på ESP-12.
 

msevland

Fylkesstyre Oslo
Sentralstyre
Har etterhvert flere :)
 

Mc.

Norbrygg-medlem
En sånn duppeditt som ligger og koser seg i vørteren og logger gjæringstemperaturen til trådløsnettverket høres supert ut. Da blir det mindre synsing og mere fakta for den som er interessert i det. All cudos til dere som greier å utvikle slikt. En slik dings kan jo ha mange bruksområder.
 

Amarillo

Norbrygg-medlem
Ja, det blir mindre synsing. Har lenge hatt mistanke om at det er temperaturforskjell i de to gjæringskarene i skapet mitt. Har kjørt en test med vann de siste dagene og det viser seg at temperaturen i det nederste karet er 0,7°C høyere enn det øverste. Det er såpass mye at det gjør en forskjell, så vifter er bestilt...
 

msevland

Fylkesstyre Oslo
Sentralstyre
Jeg har lenge kjørt logging med mine Temploggere, og ser at jeg får temp-variasjon også med vifte. Avhenger av kjøleskap og hvor kjøleelementet er. Hos med henger den fritt bakerst i øverste del...
 

Amarillo

Norbrygg-medlem
Ok, får prøve meg fram, bruker varme i stedet for kjøling ettersom skapene står i utetemperatur.
Det som var positivt var at temperaturen i vannet var ekstremt jevn over tid.
Jeg trodde det var noe feil med målingen for den målte konstant 19,56°C hvert femte minutt i over et døgn.
Måtte ta den ut for å sjekke til slutt, men da forandret det seg med en gang så målingene var reelle.
 

Amarillo

Norbrygg-medlem
Lag gjerne en DIY på OTA :)

Det er egentlig nokså enkelt å bruke OTA.
Første opplasting med OTA-kode må lastes opp via seriell kabel, men etter det kan wifi brukes på alle oppdateringer.
Det ligger to OTA-filer i 'Examples' i Arduino IDE, 'BasicOTA.ino' og 'OTALeds.ino'.

Før opplasting må du ha Python 2.7.x installert på maskinen. Sørg for å velge 'Add python.exe to Path' under innstallering hvis du har Windows.
python.jpg

Så er det bare å laste opp f.eks. BasicOTA via kabel. Steng IDE og start på nytt, da skal ESP'en dukke opp under 'Tools - Port' sammen med seriellportene. Velg den og last opp filen din trådløst, men husk at OTA-koden alltid må være med i din egen sketch. Du kan f.eks. kopiere din egen kode inn i BasicOTA-koden.

Lykke til!
 
Sist redigert:

Amarillo

Norbrygg-medlem
Programmering

Er litt usikker på hvor detaljert jeg skal være, men må gå ut fra at de som går løs på dette har drevet litt med Arduino eller annen programmering. Men jeg svarer selvsagt på spørsmål hvis noen står fast. Å sette opp en Thingspeak-kanal er veldig enkelt og står forklart mange steder så det hopper jeg også over.

ESP-12 har ingen pins, kun loddepunkter og er derfor litt vanskeligere å programmere enn ESP-01 jeg brukte i første utgave.
Vanlige Dupont-kabler er litt for tykke til å passe i loddepunktene, men jeg fant noen som fulgte med et Arduino-sett jeg kjøpte for en stund siden. De har dårlig kvalitet, men de passer perfekt i loddepunktene. De som følger med i breadboard-settet i 'handlelisten' over er denne type kabler.
dupont.jpg pro2.jpg

8 kabler må kobles på ESP-12 for å programmere den.
+3.3v
VCC
EN
GPIO2


Jord
GND
GPIO15
GPIO0

I tillegg kobles TX mot RX og RX mot TX mellom ESP og det du bruker til seriell kontakt mot pc (Arduino, USB to TTL etc). Husk felles jording av alt du kobler sammen.
pro1.jpg pro3.jpg
Jeg bruker en ekstra strømforsyning når jeg flasher, har sett at noen mener at USB-porten på en pc ikke klarer å gi nok strøm, uten at jeg har testet dette, og jeg
bruker Arduino IDE til å sende over koden. Velg 'Generic ESP8266 Module' under 'Tools - Board' og riktig USB-port under 'Tools - Port'..

Legg inn Write API-key fra din Thingspeak-kanal, navn på wifi-nettverk (ssid) og passord til nettverket i koden.
Etter programmering fjernes kablene på TX, RX, GPIO0 og GPIO2 og ESP'en skal være klar til bruk.
Den hvite kabelen på bildet kobler sammen RST og GPIO16, den må ikke være der under programmeringen, men må være på plass for at dvale-funksjonen skal fungere. Hvis ikke vil den gå i dvale, men ikke våkne igjen.

Før man begynner å lodde på ledninger er det greit å teste at alt fungerer. Sensoren (DS18B20) har tre bein. Holder du den flate siden mot deg er jord beinet til venstre, signal i midten (til GPIO4) og +3.3v til høyre. Det må kobles en 4,7k motstand mellom signal og +. Hvis temperatur og spenning på strømforsyningen nå kommer inn på Thingspeak-kanalen din er alt ok.

ds18b20.jpg thgspk1.jpg thgspk.jpg

Kode

Kode:
#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4    // tempsensor på GPIO4

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);

const char* server = "api.thingspeak.com";
String apiKey ="**********";
const char* ssid = "**********";
const char* passord = "**********";
const float kalibrering = 0.0;  // kalibrering av tempsensor
const int venteTid = 300;        // dvale i sekunder
ADC_MODE(ADC_VCC);

void setup() {

  // kobler til wifi, går videre etter 10 sekunder hvis mislykket
  WiFi.begin(ssid, passord);
  while ((millis() < 10000) && (WiFi.status() != WL_CONNECTED)) {
  delay(500);
  }

// leser temperatur og spenning
  DS18B20.requestTemperatures();
  float temp = (DS18B20.getTempCByIndex(0)) + kalibrering;
  float volt = ESP.getVcc() / 1000.0;

// sender data til Thingspeak
   WiFiClient client;
   if (client.connect(server, 80)) {
   String postStr = apiKey;
   postStr += "&field1=";
   postStr += String(temp);
   postStr +="&field2=";
   postStr += String(volt);
   postStr += "\r\n\r\n";
   client.print("POST /update HTTP/1.1\n");
   client.print("Host: api.thingspeak.com\n");
   client.print("Connection: close\n");
   client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
   client.print("Content-Type: application/x-www-form-urlencoded\n");
   client.print("Content-Length: ");
   client.print(postStr.length());
   client.print("\n\n");
   client.print(postStr);
   delay(100);
   client.stop();
   }

// setter ESP i dvale
ESP.deepSleep(venteTid * 1000000);
delay(100);
  }

void loop() {}

Noen vil kanskje synes det er merkelig at det ikke er noe kode i 'void loop'. Det er på grunn av deepsleep-funksjonen, hver gang ESP'en våkner fra dvale, starter den med linje 1 i koden, kjører gjennom koden en gang og går i dvale igjen. Dermed har den ikke behov for kode som skal gjentas, den kjører all kode kun en gang.

OTA-programmering (trådløs programmering) er diskutert lenger opp i tråden, jeg har ikke fått testet det så mye, så jeg går ikke inn på det her. Virker veldig enkelt og greit og er en stor fordel på ESP-12 fordi man slipper å koble til 4-5 ledninger hver gang man forandrer på noe småtteri i koden, dvaletid, thingspeak-kanal osv.

Lykke til!
 
Sist redigert:
Hoi... dette var interresant[emoji4] Er det noen av dere som kunne lagd slike på bestilling? Har absolutt null programeringsevner, så dette har jeg slått i fra meg, men kjøper gjerne et par om noen gidder å lage for salg! Spesielt interessant når man kan måle SG[emoji1303]


Sent from my iPhone using Tapatalk
 

Amarillo

Norbrygg-medlem
Jeg kan sikkert lage noen til deg , men må ha litt tid til testing for å se at det fungerer stabilt. Det er fortsatt noen løse tråder jeg må samle sammen (bokstavelig talt) for å få en god løsning.

SG-måling har jeg ikke forsøkt, men har kjøpt inn noen gyroer og skal teste etterhvert. Er litt skeptisk til hvor nøyaktig det blir, men vi får se.
 
Jeg kan sikkert lage noen til deg , men må ha litt tid til testing for å se at det fungerer stabilt. Det er fortsatt noen løse tråder jeg må samle sammen (bokstavelig talt) for å få en god løsning.

SG-måling har jeg ikke forsøkt, men har kjøpt inn noen gyroer og skal teste etterhvert. Er litt skeptisk til hvor nøyaktig det blir, men vi får se.

Jeg setter meg gjerne på prøvekanin lista i allefall, og kan finansiere evt. byggekostnader og rapportere feil og mangler underveis[emoji4] Får du til en nogen lunde løsning med gyro, så tester jeg gjerne[emoji1303]
Hadde det vert mulig å få en annen ESP til å styre varme/kjøling vha. data fra den i karet?


Sent from my iPhone using Tapatalk
 
Topp