Wgrywanie supli do nodemcu
-
PuteR
- Posts: 1473
- Joined: Wed Dec 06, 2017 10:07 am
Witam, czy może ktoś mi pomóc lub przekierować do jakiejś instrukcji jak do nodemcu wgrać suplę?? Szukałem jakiegoś FAQ ale nic nie znalazłem. Wersja którą ja posiadam to V3 ale do innych pewnie wgrywa się podobnie. Może ktoś był by wstanie stworzyć jakąś instrukcję.
-
Duch__
- Posts: 2199
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
- Been thanked: 6 times
Zasada jest taka:
W twoim przypadku NodeMCU V3 posiada port USB, wpinasz go do komputera. Żeby cokolwiek zaprogramować musisz wejść w tryb programowania w procesorze tzw. BOOT MODE, robi się to w następującej kolejności. Przytrzymujesz przycisk FLASH (GPIO 0) i następnie naciskasz na pół sekundy przycisk RESET. Puszczasz następnie przycisk FLASH. Od tego moment procesor czeka na wgranie nowego softu. W przypadku innego rodzaju płytki musisz GPIO 0 zewrzeć do masy i uruchomić procesor lub nacisnąć przycisk RESET ( o ile dostępny ). Wtedy też procesor wejście w tryb BOOT MODE.
Kolejną czynnością to jest wybrać program który chcemy wgrać.
Jeśli jest to program z roszerzeniem *.INO to wgrywasz go przez Arduino IDE
Jeśli jest to program z roszerzeniem *.BIN to wgrywasz go przez np. NODEMCU FIRMWARE PROGRAMMER
Wybierasz w obu przypadkach port COM na którym pojawił Ci się moduł (np. COM3).
W zależności od rozszerzenia pliku jeśli jest to tylko INO to dajesz wgraj, ew. ustawiasz w pliku swoje dane typu ssid i hasło do wifi, które zostanie po chwili wgrane do procesora.
Jeśli jest to plik BIN to możliwe jest jeszcze ustawienie odpowieniego adresu pamięci do którego ma być wgrany plik / pliki.
W twoim przypadku NodeMCU V3 posiada port USB, wpinasz go do komputera. Żeby cokolwiek zaprogramować musisz wejść w tryb programowania w procesorze tzw. BOOT MODE, robi się to w następującej kolejności. Przytrzymujesz przycisk FLASH (GPIO 0) i następnie naciskasz na pół sekundy przycisk RESET. Puszczasz następnie przycisk FLASH. Od tego moment procesor czeka na wgranie nowego softu. W przypadku innego rodzaju płytki musisz GPIO 0 zewrzeć do masy i uruchomić procesor lub nacisnąć przycisk RESET ( o ile dostępny ). Wtedy też procesor wejście w tryb BOOT MODE.
Kolejną czynnością to jest wybrać program który chcemy wgrać.
Jeśli jest to program z roszerzeniem *.INO to wgrywasz go przez Arduino IDE
Jeśli jest to program z roszerzeniem *.BIN to wgrywasz go przez np. NODEMCU FIRMWARE PROGRAMMER
Wybierasz w obu przypadkach port COM na którym pojawił Ci się moduł (np. COM3).
W zależności od rozszerzenia pliku jeśli jest to tylko INO to dajesz wgraj, ew. ustawiasz w pliku swoje dane typu ssid i hasło do wifi, które zostanie po chwili wgrane do procesora.
Jeśli jest to plik BIN to możliwe jest jeszcze ustawienie odpowieniego adresu pamięci do którego ma być wgrany plik / pliki.
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Wszystko się zgadza poza polecaniem programu NODEMCU FIRMWARE PROGRAMMER.Duch__ wrote: Wed Jun 06, 2018 7:37 pm ...
Jeśli jest to program z roszerzeniem *.BIN to wgrywasz go przez np. NODEMCU FIRMWARE PROGRAMMER
...
Jest to program niepolecany przez forumowiczów Supli. Nie wiadomo dlaczego, ale potrafi sprawić wiele problemów.
Dla tych co mają dogłębnie przeczytane forum jest to znana opinia o tym programie.
Proszę używać programu firmy Espressif "ESP Flash Download Tool".
Edit:
a tak w ogóle, to należy zapoznać się z tym wątkiem:
viewtopic.php?f=23&t=2108
oraz innymi w dziale FAQ i forum czytać!
-
PuteR
- Posts: 1473
- Joined: Wed Dec 06, 2017 10:07 am
A czy w arduinio ide muszę wybrać jakiś rodzaj płytki, bo wyskakuje "Błąd kompilacji dla płytki Arduino/Genuino Uno.", a NodemCu nie ma do wyboru/
-
shimano73
- Posts: 2174
- Joined: Sun Feb 28, 2016 12:27 pm
- Location: Orzesze
- Been thanked: 1 time
Jeśli Arduino IDE to zajrzyj tu
http://www.jarzebski.pl/arduino/arduino ... a.html
http://www.jarzebski.pl/arduino/arduino ... a.html
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
-
cino111
- Posts: 714
- Joined: Mon May 07, 2018 8:00 pm
Wszystko na forum przeczytałem napisałem program i mam trzy pytania:
1.Nie chce działać mi termometr. Podczas pracy układu wyjmę zasilanie czujnika to zaskoczy i pokazuje -125 stopni i jak podam ponownie zasilanie to już działa prawidłowo, aż do momentu wyłączenia całkowicie układu i ponownego włączenia - sytuacja się powtarza. Dodatkowo jak już w końcu po kombinacjach z odpinaniem kabelków zadziała to każda zmiana w cloudzie nazwy czujnika wywala odczyt temperatury.
2. Podczas pracy pokazuje się wifi ESP8266. Czy po programowaniu z Arduino IDE można połączyć się z ESP i zmienić parametry np SSID? Chyba nie, więc pewnie za dużo gdzieś jest dopisane. Czy moze wykasować
3. jakim poleceniem mogę wykonać ściemniacz? Nie chcę RGBW tylko samo W.
Tu mam cały kod. Poproszę o uwagi do niego.
1.Nie chce działać mi termometr. Podczas pracy układu wyjmę zasilanie czujnika to zaskoczy i pokazuje -125 stopni i jak podam ponownie zasilanie to już działa prawidłowo, aż do momentu wyłączenia całkowicie układu i ponownego włączenia - sytuacja się powtarza. Dodatkowo jak już w końcu po kombinacjach z odpinaniem kabelków zadziała to każda zmiana w cloudzie nazwy czujnika wywala odczyt temperatury.
2. Podczas pracy pokazuje się wifi ESP8266. Czy po programowaniu z Arduino IDE można połączyć się z ESP i zmienić parametry np SSID? Chyba nie, więc pewnie za dużo gdzieś jest dopisane. Czy moze wykasować
Code: Select all
bool supla_arduino_svr_connect(const char *server, int port) {
return client.connect(server, 2015);3. jakim poleceniem mogę wykonać ściemniacz? Nie chcę RGBW tylko samo W.
Tu mam cały kod. Poproszę o uwagi do niego.
Code: Select all
/**
* Supla.org NodeMCU WiFi minimal example
* Author: Programistyk - Kamil Kaminski <[email protected]>
*
* This example shows how to configure SuplaDevice for building for NodeMCU within Arduino IDE
*/
#include <OneWire.h>
#include <DallasTemperature.h>
#include <srpc.h>
#include <log.h>
#include <eh.h>
#include <proto.h>
#include <IEEE754tools.h>
// We define our own ethernet layer
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#include <lck.h>
#include <WiFiClient.h>
#include <ESP8266WiFiType.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiServer.h>
#include <ESP8266WiFiGeneric.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiSTA.h>
#include <WiFiUdp.h>
// Setup a oneWire instance
OneWire oneWire(2); // D4 GPIO 2 - Pin number
// Pass oneWire reference to Dallas Temperature
DallasTemperature sensors(&oneWire);
WiFiClient client;
// Setup Supla connection
const char* ssid = "xxxxxx" ;
const char* password = "xxxxxx";
// DS18B20 Sensor read implementation
double get_temperature(int channelNumber, double last_val) {
double t = -275;
if ( sensors.getDeviceCount() > 0 )
{
sensors.requestTemperatures();
t = sensors.getTempCByIndex(0);
};
return t;
}
void setup() {
Serial.begin(115200);
// Init DS18B20 library
sensors.begin();
delay(10);
// Replace the falowing GUID
char GUID[SUPLA_GUID_SIZE] = {0x5A,0x0D,0x07,0x01,0xE7,0xC2,0x46,0x07,0xA3,0x19,0x2C,0x26,0xED,0xD3,0x42,0xC7};
// with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
// Ethernet MAC address
uint8_t mac[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05};
/*
* Having your device already registered at cloud.supla.org,
* you want to change CHANNEL sequence or remove any of them,
* then you must also remove the device itself from cloud.supla.org.
* Otherwise you will get "Channel conflict!" error.
*/
// CHANNEL 0
SuplaDevice.addDS18B20Thermometer(); //czujnik temperatury DS18B20 na D2 GPIO-4
// CHANNEL1 - RELAY
SuplaDevice.addRelay(D1, true); // GPIO5 - Pin number where the relay is connected
// Call SuplaDevice.addRelay(D1, true) with an extra "true" parameter
// to enable "port value inversion"
// where HIGH == LOW, and LOW == HIGH
// CHANNEL2 - RELAY
SuplaDevice.addRelay(D2, true); // GPIO4 - Pin dla przekaznika - dopisanie true odwraca logikę, czyli dla przekaznikow zalaczanych masa
// omijam D3 gdyz jest to GPIO 0 i sluzy do flashowania
// CHANNEL3 - RELAY
SuplaDevice.addRelay(D6, true); // GPIO2 - Pin number where the relay is connected
// CHANNEL4 - RELAY
SuplaDevice.addRelay(D5, true); // GPIO14 - Pin number where the relay is connected
// CHANNEL5 - Opening sensor (Normal Open)
// SuplaDevice.addSensorNO(D5); // A0 - Pin number where the sensor is connected
// Call SuplaDevice.addSensorNO(A0, true) with an extra "true" parameter
// to enable the internal pull-up resistor
// CHANNEL5 - Opening sensor (Normal Open)
//SuplaDevice.addSensorNO(D7); // A1 - Pin number where the sensor is connected
// CHANNEL6 - DHT22 Sensor
// SuplaDevice.addDHT11();
// SuplaDevice.addAM2302();
// SuplaDevice.addDHT22();
SuplaDevice.begin(GUID, // Global Unique Identifier
mac, // Ethernet MAC address
"xxxx.supla.org", // SUPLA server address
xxxx, // Location ID
"xxxx"); // Location Password
}
void loop() {
SuplaDevice.iterate();
}
// Supla.org ethernet layer
int supla_arduino_tcp_read(void *buf, int count) {
_supla_int_t size = client.available();
if ( size > 0 ) {
if ( size > count ) size = count;
return client.read((uint8_t *)buf, size);
};
return -1;
};
int supla_arduino_tcp_write(void *buf, int count) {
return client.write((const uint8_t *)buf, count);
};
bool supla_arduino_svr_connect(const char *server, int port) {
return client.connect(server, 2015);
}
bool supla_arduino_svr_connected(void) {
return client.connected();
}
void supla_arduino_svr_disconnect(void) {
client.stop();
}
void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {
// Serial.println("WiFi init");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
// Serial.print(".");
}
//Serial.print("\nlocalIP: ");
//Serial.println(WiFi.localIP());
//Serial.print("subnetMask: ");
//Serial.println(WiFi.subnetMask());
//Serial.print("gatewayIP: ");
//Serial.println(WiFi.gatewayIP());
}
SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
SuplaDeviceCallbacks cb;
cb.tcp_read = &supla_arduino_tcp_read;
cb.tcp_write = &supla_arduino_tcp_write;
cb.eth_setup = &supla_arduino_eth_setup;
cb.svr_connected = &supla_arduino_svr_connected;
cb.svr_connect = &supla_arduino_svr_connect;
cb.svr_disconnect = &supla_arduino_svr_disconnect;
cb.get_temperature = &get_temperature;
cb.get_temperature_and_humidity = NULL;
cb.get_rgbw_value = NULL;
cb.set_rgbw_value = NULL;
return cb;
}
-
PuteR
- Posts: 1473
- Joined: Wed Dec 06, 2017 10:07 am
Panowie co robię tak jak w Adruino IDE wywala mi coś takiego??
Code: Select all
Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Płytka:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"
In file included from C:\Users\puter\Desktop\Supla_Button\Supla_Button.ino:7:0:
C:\Users\puter\Documents\Arduino\libraries\ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display\src/SH1106Brzo.h:35:22: fatal error: brzo_i2c.h: No such file or directory
#include <brzo_i2c.h>
^
compilation terminated.
exit status 1
Błąd kompilacji dla płytki NodeMCU 1.0 (ESP-12E Module).
Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
-
Espablo
- Posts: 1754
- Joined: Wed Jun 29, 2016 5:04 pm
- Location: Oświęcim
Brakuje pliku brzo_i2c.h. Spróbuj na pierwszyraz coś z podstawowych źródeł.
Każde urządzenie elektryczne działa o wiele lepiej jeśli podłączysz je do prądu.

