Arduino, skriva till externt html eller txt.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Arduino, skriva till externt html eller txt.

Inlägg av PopUnoNkoK »

Jag har en NodeMcu som jag programmerar via Arduino ide.

Den funkar bra och skickar data till Thingspeaks molntjänst.

Jag skulle även vilja skriva till ett externt html dokument eller alternativt ett txt eller xml dokument som ligger på en extern hemsida.

All info jag hittar är att man skriver en hemsida som ligger på microcontrollern.

Om jag skriver till txt ska det bara stå ett tempvärde som byts ut varje gång. Skriver jag till html skulle det vara bra att få in värdet på ett specifikt ställe.

Kan någon peka mig i rätt riktning?
svanted
Inlägg: 5082
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: Arduino, skriva till externt html eller txt.

Inlägg av svanted »

om du har access till webservern via ftp?
http://playground.arduino.cc/Code/FTP
kan man byta ut hela html filen,
eller skriva till en textfil som används av webservern för att generera websidan mha cgi script.
Användarvisningsbild
AndLi
Inlägg: 17048
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Arduino, skriva till externt html eller txt.

Inlägg av AndLi »

Jag hade använt ett HTTP get anrop till webservern, där sen webservern stoppar in infon på rätt ställe...
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: Arduino, skriva till externt html eller txt.

Inlägg av PopUnoNkoK »

Tack för svaren!

Det blev en HTTP Get som skickar tempvärdet för Utetempen till ett externt .txt dokument.

Nu kommer då en liten följdfråga.
Hur skriver jag "snygg" kod som gör att jag kan skicka denna GET request varje minut eller varannan minut men sedan logga till Thingspeak var 20e minut.

Alltså om jag skriver så här. PSUDO KOD:

Kod: Markera allt

void loop() {
   var = 0;
   while(var < 20){
      Skicka temp med HTTP GET
      delay(60*1000);
  var++;
  }
  Logga till Thingspeak
}
Jag ser framför mig att detta skulle "förskjuta" Thingsspeak loggningen hela tiden eftersom det tar tid att utföra kommandona. Jag skulle förstås kunna korta av Delaytiden men då är det väl risk att det förskjuts åt andra hållet. Jag skulle alltså helst vilja att Thingspeak loggade så Regelbundet var 20e minut som möjligt.

Går det att skriva med millis(); på nått smart sätt? Och hur får man det så att det inte blir ett "hack" var 50:e dag när millis() rullar över till 0 igen?

MVH Peter
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Arduino, skriva till externt html eller txt.

Inlägg av lillahuset »

Du använder unsigned för beräkningen. Något i den här stilen:

Kod: Markera allt

/**
  * @brief  check if *timer has timed out
  * @brief  initialise *timer by a call with ticks = 0
  * @param  timer: pointer to timer variable
  * @param  ticks: number of ticks to wait
  * @retval return 0 if not timeout, !0 if timeout
  * @date   2012-12-14
  */
int timeout(uint32_t *timer, uint32_t ticks)
{
  uint32_t t, diff;
  int tout;

  tout = 0;
  t = getTicks();
  diff = t - *timer;

  if (0 == ticks || diff >= ticks) {
    *timer = t;
    tout = 1;
  }

  return tout;
} /* timeout */
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: Arduino, skriva till externt html eller txt.

Inlägg av PopUnoNkoK »

Hmm... Det där gick rakt över huvudet på mig.
OM du har tid och ork får du gärna förklara, annars får jag fortsätta att leta en lösning.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Arduino, skriva till externt html eller txt.

Inlägg av lillahuset »

Ett tips är att du skärper dig en smula. Vad är problemet?
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Arduino, skriva till externt html eller txt.

Inlägg av johano »

Ta tid på hur många millisekunder minutloggningen tar och justera sedan minutdelayen genom att dra bort tiden för loggningen

Samma kan sen göras med 20-minutloggningen..

/j
Skriv svar