www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Node MCU in arduino

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Tor Avg 25, 2020 12:11 am    Naslov sporočila:  Node MCU in arduino Odgovori s citatom

Uf, na "stara leta" sem se lotil arduino okolja. Nainštaliral sem IDE in dodal "board" ESP8266. Na USB sem nataknil en moj USB/Serial na STM32 in priklopil ESP8266E.

Po osvajanju pojmov "Sketch", "Verify" in "Upload" je nekako zalaufalo.

Prvi primer, ki sem ga zalaufal je, da se mi prižigajo LED preko WEB strani, pred tem pa še poberem točen čas iz IJS NTP strežnika.

Kar zabavno.


Kode ni veliko...

Koda:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>

#include <stdio.h>
#include <time.h>



/* SSID & Pass */
const char* ssid = "***********";  // SSID
const char* password = "********";  // Pass

/** NTP klient */
IPAddress timeServerIP;
const char* ntpServerName = "goodtime.ijs.si";
unsigned int localPort = 2390;

const int NTP_PACKET_SIZE = 48; // rfc5905: NTP odgovore strežnika je v prvih 48 bajtih
byte packetBuffer[ NTP_PACKET_SIZE]; // buffer za NTP UDP paket

// UDP instanca za hendlanje paketkov
WiFiUDP udp;

/** Test NTP sinhronizacije */
void GetTime(void);


// Tole je copy paste enega http server demo, samo da vidim, ce dela
ESP8266WebServer server(80);

uint8_t LED1pin = D7;
bool LED1status = LOW;

uint8_t LED2pin = D6;
bool LED2status = LOW;


void setup() {
  Serial.begin(115200);    // aleluja, kako je to simpl, samo buhnedej da se kaj zastrika (a dela to prek kakega ISR ?)
 
  /** se malo copy / šaste */
  pinMode(LED1pin, OUTPUT);
  pinMode(LED2pin, OUTPUT);

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  /* Explicitly set the ESP8266 to be a WiFi-client, otherwise, it by default,
     would try to act as both a client and an access-point and could cause
     network-issues with your other WiFi-devices on your WiFi-network. */
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
 
  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");


  Serial.println("Kurblam UDP");
  udp.begin(localPort);
  Serial.print("UDP lokalni port: ");
  Serial.println(udp.localPort());

  GetTime();  // poslji UDP, pocakaj odgovor, razpakiraj odgovor
}


void loop() {

  /* Tudi tole je copy paste */

  server.handleClient();
  if(LED1status)
  {digitalWrite(LED1pin, HIGH);}
  else
  {digitalWrite(LED1pin, LOW);}
 
  if(LED2status)
  {digitalWrite(LED2pin, HIGH);}
  else
  {digitalWrite(LED2pin, LOW);}
}

void handle_OnConnect() {
  LED1status = LOW;
  LED2status = LOW;
  Serial.println("GPIO7 Status: OFF | GPIO6 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1status,LED2status));
}

void handle_led1on() {
  LED1status = HIGH;
  Serial.println("GPIO7 Status: ON");
  server.send(200, "text/html", SendHTML(true,LED2status));
}

void handle_led1off() {
  LED1status = LOW;
  Serial.println("GPIO7 Status: OFF");
  server.send(200, "text/html", SendHTML(false,LED2status));
}

void handle_led2on() {
  LED2status = HIGH;
  Serial.println("GPIO6 Status: ON");
  server.send(200, "text/html", SendHTML(LED1status,true));
}

void handle_led2off() {
  LED2status = LOW;
  Serial.println("GPIO6 Status: OFF");
  server.send(200, "text/html", SendHTML(LED1status,false));
}

void handle_NotFound(){
  server.send(404, "text/plain", "Not found");
}

String SendHTML(uint8_t led1stat,uint8_t led2stat){
  String ptr = "<!DOCTYPE html> <html>\n";
  ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  ptr +="<title>LED Control</title>\n";
  ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  ptr +=".button {display: block;width: 80px;background-color: #1abc9c;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  ptr +=".button-on {background-color: #1abc9c;}\n";
  ptr +=".button-on:active {background-color: #16a085;}\n";
  ptr +=".button-off {background-color: #34495e;}\n";
  ptr +=".button-off:active {background-color: #2c3e50;}\n";
  ptr +="p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  ptr +="</style>\n";
  ptr +="</head>\n";
  ptr +="<body>\n";
  ptr +="<h1>ESP8266 Web Server</h1>\n";
  ptr +="<h3>Using Access Point(AP) Mode</h3>\n";
 
   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";}

  ptr +="</body>\n";
  ptr +="</html>\n";
  return ptr;
}



/**** NTP ... udp   */
// poslji NTP request
void sendNTPpacket(IPAddress& address) {
  Serial.println("posiljam NTP zahtevo...");
  // upam, da tole na arduino dela...
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
 
  // Postavi UDP paket za NTP zahtevo
  // Glej RFC
  packetBuffer[0] = 0xe3;  // 11100011 ... LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision
  // 8 x nula za Root Delay & Root Dispersion
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;

  // alo, daj mi pravi cajt....
  udp.beginPacket(address, 123); // NTP zahteva gre na port 123
  udp.write(packetBuffer, NTP_PACKET_SIZE);
  udp.endPacket();
}


/** Pa da vidimo, ce dela */
void GetTime(void)
{
  // kaksen je IP NTP streznika ?
  WiFi.hostByName(ntpServerName, timeServerIP);

  sendNTPpacket(timeServerIP); // UDP handlanje s paketi
  // dajmo mu malo cajta
  delay(1000);

  int cb = udp.parsePacket();
  if (!cb) {
    Serial.println("nic ne bo s pravim cajtom");
  } else {
    Serial.print("Juhu, paket je tu, dolzina=");
    Serial.println(cb);
    // Dajmo se malo to razpakirat, glej RFC
    udp.read(packetBuffer, NTP_PACKET_SIZE);
 
    // timestamp je na offsetu 40, dolzine 4 bajte,

    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
    // dobimo long integer, ki predstavlja stevilo sekund od 1.1.1900
 
    unsigned long secsSince1900 = highWord << 16 | lowWord;
    Serial.print("Sekund od prejsnjega stoletja: ");
    Serial.println(secsSince1900);

    // dejmo se malo pretvorit:
    Serial.print("Ura je = ");
    // Uporabimo kar ardujino "Unix time", ki se zacne 1.1.1970. Razlika je 2208988800 sekund
    const unsigned long sedemdesetlet = 2208988800UL;
    unsigned long epoch = secsSince1900 - sedemdesetlet;
    // pretvorba UX casa

    struct tm  ts;
    char       buf[80];
    ts = *localtime((time_t *)epoch);
   
    /* to ni implementirano
    strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", &ts); */   
 
    Serial.print("UTC: ");   
    Serial.print((epoch  % 86400L) / 3600);
    Serial.print(':');
    if (((epoch % 3600) / 60) < 10) {
      Serial.print('0');
    }
    Serial.print((epoch  % 3600) / 60);
    Serial.print(':');
    if ((epoch % 60) < 10) {
      Serial.print('0');
    }
    Serial.println(epoch % 60);

   
  }

}


_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Tor Avg 25, 2020 12:15 am    Naslov sporočila:   Odgovori s citatom

Tole se pa izpise....

Koda:
Connecting to SoferjiUnited
..
WiFi connected
IP address:
44.150.168.170
HTTP server started
Kurblam UDP
UDP lokalni port: 2390
posiljam NTP zahtevo...
Juhu, paket je tu, dolzina=48
Sekund od prejsnjega stoletja: 3807295897
Ura je = UTC: 22:11:37



Ujej, bo treba spat.

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7768
Aktiv.: 34.98
Kraj: Koprivnica HR

PrispevekObjavljeno: Tor Avg 25, 2020 8:39 am    Naslov sporočila:   Odgovori s citatom

Še shema (v Fritzingu) manjka. Saj ne da bi gnjavil vendar, kako naj to preizkusim brez sheme?
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Tor Avg 25, 2020 10:52 pm    Naslov sporočila:   Odgovori s citatom

Takole... moraš skombinirat dve shemi. Jaz sem uporabil PSF-A85 modulčke z ESP8266:
https://www.itead.cc/wiki/images/d/dd/PSF-A85_Schmatic.pdf

priklop sem pa dobil po shemi Node MCU razvojne plošče:
https://github.com/nodemcu/nodemcu-devkit-v1.0/blob/master/NODEMCU_DEVKIT_V1.0.PDF


Če ročno šofiraš FLASH/RUN (GPIO0), je dovolj, da priklopiš samo nRST na RTS.

Bom zrisal, ko dodam še par stvari.

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Čet Avg 27, 2020 11:34 pm    Naslov sporočila:   Odgovori s citatom

Našel sem zelo zanimivo spletno stran:
https://randomnerdtutorials.com/
Brane, tu je tudi shema, kako pripklopit ESP8266 modul na USB/UART pretvornik.


Testiram tole:
"pritiskom na dugme" na spletni strani, ko jo gosti ESP8266 se pokliče ena spletna stran na enem drugem strežniku, kjer se izvede PHP koda (j.b.g., jave se še nisem navadil, php pa uporabljam že od v.3 dalje). Trenutno se vrednost BME280 senzorja, kii je priključen na ESP8266 vpiše v text datoteko na tistem tavelikem strežniku. Prenos je preko JSON, kasneje bom to še predelal tako, da bo strežnik videl enako zahtevo, kot če bi prišla iz LoRaWAN omrežja. Tako imam potem lahko na voljo enake grafe in obdelavo shranjenih podatkov za LoRa omrežje, kot za WiFi...

Saj verjetno odkrivam toplo vodo, ampak je pa zanimivo.

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Ned Avg 30, 2020 12:16 am    Naslov sporočila:   Odgovori s citatom

Dodal sem še PWM kontrolo ventilatorjev...
https://www.youtube.com/watch?v=bqiZl8khJRY

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Sre Sep 16, 2020 11:42 pm    Naslov sporočila:   Odgovori s citatom

Še vedno se malo igram s tem....

na nekem strežniku imam spletno stran za nastavljanje parametrov (namenoma ne želim, da je spletna stran na ESP8266, ker ne želim imeti http dostopa do modula).

Nastavitve iz obrazca (html form) se shranijo v json. Skripta je preprosti php:
Koda:
<!DOCTYPE html>
<html>
<head>
  <title>Nastavitve za ventilacijo.</title>
</head>
<body>
  <form action="action_page.php">
  Nastavitve:<br>
  <label for="time_from">Izberi uro delovanja od:</label>
  <select name="time_from" id="time_from">
    <option value="00:00">00:00</option>
    <option value="00:30">00:30</option>
    <option value="01:00">01:00</option>
    <option value="01:30">01:30</option>
    <option value="02:00">02:00</option>
    <option value="02:30">02:30</option>
    <option value="03:00">03:00</option>
    <option value="03:30">03:30</option>
    <option value="04:00">04:00</option>
    <option value="04:30">04:30</option>
    <option value="05:00">05:00</option>
    <option value="05:30">05:30</option>
    <option value="06:00">06:00</option>
    <option value="06:30">06:30</option>
    <option value="07:00">07:00</option>
    <option value="07:30">07:30</option>
    <option value="08:00">08:00</option>
    <option value="08:30">08:30</option>
    <option value="09:00">09:00</option>
    <option value="09:30">09:30</option>
    <option value="10:00">10:00</option>
    <option value="10:30">10:30</option>
    <option value="11:00">11:00</option>
    <option value="11:30">11:30</option>
    <option value="12:00">12:00</option>
    <option value="12:30">12:30</option>
    <option value="13:00">13:00</option>
    <option value="13:30">13:30</option>
    <option value="14:00">14:00</option>
    <option value="14:30">14:30</option>
    <option value="15:00">15:00</option>
    <option value="15:30">15:30</option>
    <option value="16:00">16:00</option>
    <option value="16:30">16:30</option>
    <option value="17:00">17:00</option>
    <option value="17:30">17:30</option>
    <option value="18:00">18:00</option>
    <option value="18:30">18:30</option>
    <option value="19:00">19:00</option>
    <option value="19:30">19:30</option>
    <option value="20:00">20:00</option>
    <option value="20:30">20:30</option>
    <option value="21:00">21:00</option>
    <option value="21:30">21:30</option>
    <option value="22:00">22:00</option>
    <option value="22:30">22:30</option>
    <option value="23:00">23:00</option>
    <option value="23:30">23:30</option>
  </select>
  <br>
  <label for="time_to">Izberi uro delovanja do:</label>
  <select name="time_to" id="time_to">
    <option value="00:00">00:00</option>
    <option value="00:30">00:30</option>
    <option value="01:00">01:00</option>
    <option value="01:30">01:30</option>
    <option value="02:00">02:00</option>
    <option value="02:30">02:30</option>
    <option value="03:00">03:00</option>
    <option value="03:30">03:30</option>
    <option value="04:00">04:00</option>
    <option value="04:30">04:30</option>
    <option value="05:00">05:00</option>
    <option value="05:30">05:30</option>
    <option value="06:00">06:00</option>
    <option value="06:30">06:30</option>
    <option value="07:00">07:00</option>
    <option value="07:30">07:30</option>
    <option value="08:00">08:00</option>
    <option value="08:30">08:30</option>
    <option value="09:00">09:00</option>
    <option value="09:30">09:30</option>
    <option value="10:00">10:00</option>
    <option value="10:30">10:30</option>
    <option value="11:00">11:00</option>
    <option value="11:30">11:30</option>
    <option value="12:00">12:00</option>
    <option value="12:30">12:30</option>
    <option value="13:00">13:00</option>
    <option value="13:30">13:30</option>
    <option value="14:00">14:00</option>
    <option value="14:30">14:30</option>
    <option value="15:00">15:00</option>
    <option value="15:30">15:30</option>
    <option value="16:00">16:00</option>
    <option value="16:30">16:30</option>
    <option value="17:00">17:00</option>
    <option value="17:30">17:30</option>
    <option value="18:00">18:00</option>
    <option value="18:30">18:30</option>
    <option value="19:00">19:00</option>
    <option value="19:30">19:30</option>
    <option value="20:00">20:00</option>
    <option value="20:30">20:30</option>
    <option value="21:00">21:00</option>
    <option value="21:30">21:30</option>
    <option value="22:00">22:00</option>
    <option value="22:30">22:30</option>
    <option value="23:00">23:00</option>
    <option value="23:30">23:30</option>
  </select>
  <br>

  <label for="ExtMin">Min. temperatura zunaj:</label>
  <input type="range" name="ExtMin" id="ExtMin" value="5" min="-20" max="50" oninput="ExtMinId.value = ExtMin.value">
    <output name="ExtMinOutputName" id="ExtMinId">5</output>
  <br> 
 
  <label for="ExtMax">Max. temperatura zunaj:</label>
  <input type="range" name="ExtMax" id="ExtMax" value="25" min="-20" max="50" oninput="ExtMaxId.value = ExtMax.value">
    <output name="ExtMaxOutputName" id="ExtMaxId">25</output>
  <br>
  <label for="IntMin">Min. temperatura znotraj:</label>
  <input type="range" name="IntMin" id="IntMin" value="5" min="-20" max="50" oninput="IntMinId.value = IntMin.value">
    <output name="IntMinOutputName" id="IntMinId">5</output>
  <br> 

  <label for="IntMax">Max. temperatura znotraj:</label>
  <input type="range" name="IntMax" id="IntMax" value="25" min="-20" max="50" oninput="IntMaxId.value = IntMax.value">
    <output name="IntMaxOutputName" id="IntMaxId">25</output>
 
  <br> 

  <label for="Target">Ciljna temperatura znotraj:</label>
  <input type="range" name="Target" id="Target" value="25" min="15" max="30" oninput="TargetId.value = Target.value">
    <output name="TargetName" id="TargetId">25</output>
 
  <br><br>
  <input type="submit" value="Shrani">
</form>

<p>Klikni na "shrani", da se shranijo nove vrednosti.</p>

</body>
</html>



Tisti "action.php" je potem še pretvorba v json:
Koda:
<?php
$json = json_encode($_GET);
file_put_contents ( "settings.json" , $json );
echo "Json written:<br> ".$json;
?>



Na koncu dobim zapisan json na strežniku...
Koda:
{
    "time_from" : "00:00",
    "time_to"   : "23:30",
    "ExtMin"    : -6,
    "ExtMax"    : -3,
    "IntMin"    : 1,
    "IntMax"    : 11,
    "Target"    : 24
}


Tega potem prebere ESP8266 z uporabo arduinojson in httpclient knjižnice takole:


Koda:
#include <ESP8266HTTPClient.h>
#define REMOTEPARAM_URL "http://tam.nekje/settings.json"

typedef struct {
  time_t time_from;
  time_t time_to;
  float ExtMin;
  float ExtMax;
  float IntMin;
  float IntMax;
  float Target;
} remoteparam_t;
 
void GetRemoteParameters(void);

static remoteparam_t rem_p;

void GetRemoteParameters(void){
  HTTPClient http;

  if (http.begin(REMOTEPARAM_URL)) {  // HTTP
    Serial.print("[HTTP] GET...\n");
    // start connection and send HTTP header
    int httpCode = http.GET();
 
    // httpCode will be negative on error
    if (httpCode > 0) {
      // HTTP header has been send and Server response header has been handled
      Serial.printf("[HTTP] GET... code: %d\n", httpCode);
 
      // file found at server
      if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
        String payload = http.getString();
        Serial.println("Raw JSON...");
        Serial.println(payload);
        ParseParams(payload);
      }
    } else {
      Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
    }
 
    http.end();
  }

}


void ParseParams(String payload) {

  String str;
 
  DynamicJsonDocument doc(2048);
 
  deserializeJson(doc, payload);
  str = doc["time_from"].as<String>();
  // todo convert to time_t
  //time_from = makeTime(str);
  str = doc["time_to"].as<String>();
  // todo convert to time_t
  //time_to = makeTime(str);

  str = doc["ExtMin"].as<String>();
  rem_p.ExtMin = str.toFloat();
 
  str = doc["ExtMax"].as<String>();
  rem_p.ExtMax = str.toFloat();

  str = doc["IntMin"].as<String>();
  rem_p.IntMin = str.toFloat();
 
  str = doc["IntMax"].as<String>();
  rem_p.IntMax = str.toFloat();
 
  str = doc["Target"].as<String>();
  rem_p.Target = str.toFloat();
 
  Serial.println(doc["time_from"].as<String>());
  Serial.println(doc["time_to"].as<String>()); 
  Serial.println(rem_p.ExtMin);
  Serial.println(rem_p.ExtMax);
  Serial.println(rem_p.IntMin);
  Serial.println(rem_p.IntMax);
  Serial.println(rem_p.Target);
 
}



Pa še kontrolni izpis:

Koda:
Time is in sync
[HTTP] GET...
[HTTP] GET... code: 200
Raw JSON...
{"time_from":"00:00","time_to":"23:30","ExtMin":"-6","ExtMax":"-2","IntMin":"2","IntMax":"13","Target":"25"}
00:00
23:30
-6.00
-2.00
2.00
13.00
25.00



forma.JPG
 Opis:
 Velikost datoteke:  28.88 KB
 Pogledana:  0 krat

forma.JPG



_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7768
Aktiv.: 34.98
Kraj: Koprivnica HR

PrispevekObjavljeno: Sre Sep 16, 2020 11:51 pm    Naslov sporočila:   Odgovori s citatom

mosqito je napisal/a:
Našel sem zelo zanimivo spletno stran:
https://randomnerdtutorials.com/
Brane, tu je tudi shema, kako pripklopit ESP8266 modul na USB/UART pretvornik.
...
Kaj pa misliš od kod jaz črpam...
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14551
Aktiv.: 65.53
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Sep 17, 2020 5:14 pm    Naslov sporočila:   Odgovori s citatom

Tudi sam sem spet po kakih 4 letih zagnal ESP. Sam ne delam pa v arduio okolju.
Firmware sem generiral tukaj. Programiram v lua okolju.
Imel sem kaj nekaj težav z firmwarom. Firmware, ki sem ga generiral pred 4-mi leti je deloval normalno. Ker sem potreboval en dodaten modul sem generiral novega. Na temu ni hotel delati web server. Po x neuspelih poizkusih sem generiral firmware kot 1.5.4.1-final (frozen, for 512KB flash) ta deluje brez problema (prej sem ga generiral kot master oz. dev) Tak je bil tudi tisti iz pred 4-jih let.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 3221
Aktiv.: 33.19

PrispevekObjavljeno: Čet Sep 24, 2020 11:22 pm    Naslov sporočila:   Odgovori s citatom

Arduino IDE je živ obup. Čisto neuporabno. Ni code completion, ne da se nič lepo urediti po enih minimalnih standardih programiranja. Uporaben je le za copy/paste neke source code iz interneta, kaj več pa ne.

Kljub vsem mukam sem se nekaj časa trudil, da bi uspel ugotoviti, od kod tako zanič IDE toliko pozornosti in kako to, da je stvar tako razširjena. Hm, enostavno nisem ugotovil. "Prešaltal" sem na Visual studio code in nainštrliral platformIO. Zadaj je še vedno "arduino" prevajanje, knjižnice itd... IDE je seveda normalno uporaben (VS code uporabljam že od prej, npr. za remote programiranje malinc). Edino, kar še pogrešam je GDB ali kak drug debuger namesto izpisovanja na serijski port. V glavnem - uporabno Smile

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Branez
Moderator
Moderator



Pridružen-a: Pon 14 Apr 2003 7:21
Prispevkov: 7768
Aktiv.: 34.98
Kraj: Koprivnica HR

PrispevekObjavljeno: Pet Sep 25, 2020 8:01 am    Naslov sporočila:   Odgovori s citatom

mosqito je napisal/a:
...
Kljub vsem mukam sem se nekaj časa trudil, da bi uspel ugotoviti, od kod tako zanič IDE toliko pozornosti in kako to, da je stvar tako razširjena. Hm, enostavno nisem ugotovil. ...
Saj si si sam odgovoril na to vprašanje.
mosqito je napisal/a:
...
Uporaben je le za copy/paste neke source code iz interneta, kaj več pa ne.
...
Kaj več pa "Arduinaši" ne počnemo.
_________________
The true sign of intelligence is not knowledge but imagination.
Creativity is intelligence having fun!

Albert Einstein
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
dumr666
Član
Član



Pridružen-a: Tor 31 Jan 2012 23:30
Prispevkov: 409
Aktiv.: 2.76
Kraj: Ljubljana

PrispevekObjavljeno: Tor Okt 20, 2020 4:01 pm    Naslov sporočila:   Odgovori s citatom

Načeloma če želiš res dober IDE za Arduino, je najboljša opcija po mojem mnenju, VS Code ter Platformio dodaten (extension). Maš pokrito od knjižnic, do boardov, do primerov.
_________________
Robots will steal your job. But that's OK.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group