Skocz do zawartości

ESP 8266 + Arduino IDE- pomocy!


Krisk

Pomocna odpowiedź

Kupiłem taki moduł:

obraz.thumb.png.5664764793d6f78daa748fb42246c098.png

Trochę czytałem i zacząłem od sformatowania płytki programem NodeMcuFlasher.

W Arduino IDE wybrałem płytkę: Generic8266 Module.

Napisałem najprostszy programik i niestety nie działa. Tak zakończył się Upload (była także informacja, że Upload done.

obraz.thumb.png.7a693964722f22ffc654af26ae90f7b9.png

Gdzie zrobiłem błąd?

Czy może ktoś podpowiedzieć, co od początku zrobić, aby ta płytka działała jak Arduino Uno?

Czy to formatowanie/ Flashowanie jest niezbędne?

 

 

 

 

Link do komentarza
Share on other sites

4 minuty temu, Krisk napisał:

Czy to formatowanie/ Flashowanie jest niezbędne?

Nie, z tej fotki wynika, że program powinien być wgrany poprawnie. Próbowałeś przycisku RESET? Niekiedy te moduły miewają problemy ze sobą.

Link do komentarza
Share on other sites

(edytowany)

 

Skoro to flashowanie jest niepotrzebne, to co powinienem zrobić, aby przywrócić tej płytce oryginalny soft?

Program, np taki.

 

Edytowano przez Krisk
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

No to zmień pin na taki, który masz. Piny same się nie rozmnożą.

Do obowiązkowego przeczytania: https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/ że szczególnym uwzględnieniem tabelki z opisem, który pin do czego służy.

A oryginalnie płytka albo nie ma nic, albo ma wgranego blinka. Żadne przywracanie nie jest potrzebne, kolejny program automatycznie kasuje poprzedni.

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

Ale na płytce jest napisane D9...

Ok, rozumiem:)

W kodzie dla Arduino Uno program był ok, a dla tego układu trzeba wpisać D9- tak zrobiłem i zaczęło działać.

Tego nigdzie nie wyczytałem:)

Dzięki!

 

Czyli jeśli to działa (zastosowanie innych oznaczeń PIN), to płytka powinna już działać jak Arduino UNO?

 

A możesz jeszcze wyjaśnić jak uruchomić połączenie WIFI?

 

 

 

Link do komentarza
Share on other sites

To mam chyba sporo wiedzy do przyswojenia.

Samo działanie tego prostego programu zależy od rodzaju wybranej płytki, w moim przypadku użyłem: LOLIN(WoMos)D1 R1

A co zrobić, aby program do działania sensora odległości działał na tej płytce?

Działa on na Arduino Uno, ale chciałbym to przełożyć na płytkę ESP.

 

#include <Adafruit_BMP085_U.h>

// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
// - HCSR04 library: https://github.com/Martinsos/arduino-lib-hc-sr04
// - MD_Parola Library: https://github.com/MajicDesigns/MD_Parola
// - MD_MAX72XX library can be found at https://github.com/MajicDesigns/MD_MAX72XX
// Find All "Great Projects" Videos : https://www.youtube.com/channel/UCCC8DuqicBtP3A_aC53HYDQ/videos

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <HCSR04.h>
#include "DHT.h"
#include <Ultrasonic.h>

#define DHTTYPE DHT11   // DHT 11

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

// SPI hardware interface
//MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// SOFTWARE SPI
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
UltraSonicDistanceSensor distanceSensor(9, 8);  // Initialize sensor that uses digital pins 13 and 12.

uint8_t scrollSpeed = 25;    // default frame delay value
char megs[4];

int distance;
int lastdistance;
bool newDistance = false;
uint32_t lastTime = 0;


           

void readDistance() {        
distance = distanceSensor.measureDistanceCm() + 1;      
    delay(200);                 
   if (distance != lastdistance)
    {
    lastdistance = distance;
    newDistance = true;           
  }
}
void setup()
{
  Serial.begin(115200);
  P.begin(1);
  P.setZone(2, 0, 2);
  P.displayZoneText(0, megs, PA_CENTER, scrollSpeed, 0, PA_PRINT, PA_NO_EFFECT);
  
}

void loop()
{
readDistance(); 
P.displayAnimate();
P.getZoneStatus(0);
    if (newDistance)
    {
    lastTime = millis(); 
    sprintf(megs, "%d", distance);
    P.displayReset(0);
    newDistance = false;
  }
  if (millis() - lastTime >= 10000)
  {
   
  }
}

 

Link do komentarza
Share on other sites

2 minuty temu, Krisk napisał:

co zrobić, aby program do działania sensora odległości działał na tej płytce?

https://randomnerdtutorials.com/esp8266-nodemcu-hc-sr04-ultrasonic-arduino/

Czy ja nie wspominałem coś na temat poczytania sobie materiałów z tej strony?

Uprzedzam, że na następne pytanie na które odpowiedź można znaleźć na owej stronie odpowiem milczeniem. Znaczącym milczeniem 😉

 

Link do komentarza
Share on other sites

Przepraszam za tego typu pytania, ale jestem początkującym...

Podłączyłem HC-SR04 wg podesłanego przez Ciebie linku- i faktycznie to działa, niestety nie jestem w stanie przełożyć takiego programu jak napisałem do działania z wyświetlaczem MD_MAX7219 na ESP. Jestem w stanie napisać proste programy, jednak to dla mnie za trudne.

Zrobiłem kilka projektów na UNO i po prostu myślałem, że ESP8266 będzie działał na tych samych programach. Jak się okazuje - jest inaczej, chyba nie pozostaje mi nic innego jak zakupić jakiś klon UNO, np: Moduł ACS ATMEGA328- czy on zadziała na tych samych programach co UNO?

 

  • Lubię! 1
Link do komentarza
Share on other sites

Klony UNO są tanie, tylko nie bierz jakiegoś dziwacznego. A co do wyświetlacza - masz tu: https://microcontrollerslab.com/max7219-led-dot-matrix-display-esp8266-nodemcu-tutorial/

Problemem może być trochę za mało pinów. 12, 13, 14 i 15 masz zablokowane dla wyświetlacza (co prawda nie wykorzystujesz MISO ale próba wykorzystania to raczej nie na dziś). Masz do dyspozycji dwa pełnoprawne piny (5 i 6), oprócz tego możesz wykorzystać jako wyjścia 2 i 16. Ja bym spróbował podłączyć wyświetlacz tak jak w podlinkowanym artykule (D7, D8, D5), a sensory np pary D0-D1 i D2-D4 (przy czym D0 i D2 jako Trig, D1 i D4 jako Echo). Być może zadziała...

W każdym razie próbuj i jak nie wyjdzie to się nie poddawaj tylko pisz. Co najwyżej polecimy jakiegoś konkretnego kolona UNO 🙂

 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.