Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ESP8266/ATtiny13A - Podłączenie pinu CH_PD ESP8266 do ATtiny13A

Defozo 19 Paź 2015 03:31 1716 10
  • #1 19 Paź 2015 03:31
    Defozo
    Poziom 17  

    Witam, buduję czujnik natężenia światła (oparty na fotorezystorze), który miałby przesyłać dane do Internetu.

    Problem jest w tym, że czujnik nie działa poprawnie. Tylko czasem uda się wysłać pomiar.

    Idea jest taka, że ATtiny13A jest cały czas włączone i cały czas robi pomiary ADC na fotorezystorze. Jeśli pomiar będzie się różnił o 100 od poprzedniego to wtedy włącza ESP8266 (pin CH_PD ESP8266 jest połączony z portem PB1 µC). Następnie ESP8266 informuje ATtiny13A o tym, że się już połączyło z siecią WiFi podając stan wysoki na porcie GPIO2, który jest podłączony z pinem PB0 mikrokontrolera. Następnie ATtiny13A wysyła wartość pobraną z ADC, ESP8266 wysyła tą wartość do serwisu ThingSpeak, po czym zmienia stan portu GPIO2 na niski, a ATtiny13A wyłącza ESP8266 podając znowu stan niski na CH_PD ESP8266.

    Kabel PB1 <---> CH_PD oraz PB0 <---> GPIO2 jest podłączony normalnie, bez żadnych rezystorów podciągających. Czy tak jest poprawnie?

    Napisałem taki kod na moje ATtiny13A:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod na ESP8266 (NodeMCU):
    Kod: lua
    Zaloguj się, aby zobaczyć kod


    Co może być nie tak? Czy jest to wina niewłaściwego podłączenia czy programu?

    Proszę o pomoc,
    Defozo

    1 10
  • #3 21 Gru 2015 23:57
    Defozo
    Poziom 17  

    Generalnie połączenie zawsze działało, ale nie udało się zrealizować tego, co opisałem w temacie.
    Teraz jakbym to robił to zrobiłbym to tylko na ESP8266 (bez ATtiny13A).

    0
  • #4 22 Gru 2015 00:04
    piterek-23
    Poziom 32  

    Pytam ponieważ chciałbym odebrać po UART ESP8266 to co ATtiny nadaje i później wysłać poprzez WiFi, ale kompletnie wiem jak odebrać dane :(
    Dane które posyła ATtiny wyglądają tak:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    temperatura | wilgotność | napięcie

    Cały pic polega na tym, że chcę to zrobić tak:
    -uruchamiam ESP
    -wczytuje dane przez UART
    -dziele de dane na trzy
    -wysyłam
    Kod: lua
    Zaloguj się, aby zobaczyć kod

    -wyłączam ESP

    Ale kompletnie nie wiem jak to zrobić :(

    0
  • #5 22 Gru 2015 00:13
    Defozo
    Poziom 17  

    Wysyłasz po UART'cie:

    Code:
    34&temp=24.1&napiecie=4.16a

    A potem odbierasz w ESP8266 tak, jak w kodzie poniżej.

    Popatrz na te dwa kody:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    init.lua
    Kod: lua
    Zaloguj się, aby zobaczyć kod

    1
  • #6 22 Gru 2015 00:17
    piterek-23
    Poziom 32  

    Edytowałem post wyżej ;)

    W ESP nie chcę używać GPIO. ESP nie musi sprawdzać połączenia Wifi :)
    ESP musi odebrać dane, podzielić na trzy i wysłać. Od strony ATtiny mam już wszystko-piszę w BASCOMie

    0
  • #7 22 Gru 2015 00:23
    Defozo
    Poziom 17  

    Zauważ, że ESP nie musi dzielić danych na 3.
    Wystarczy, że z mikrokontrolera wyślesz gotową linijkę do wysłania na serwer:

    Code:
    34&temp=24.1&napiecie=4.16


    Czy chodzi o sam program na ESP?

    1
  • #8 22 Gru 2015 00:28
    piterek-23
    Poziom 32  

    Moim problemem jest tylko program na ESP. A te dane muszę podzielić i każdą wysłać osobno :(
    A jak taki program (lua) miałby wyglądać aby działał tak:
    -po włączeniu zasilania płacz z WiFi bez sprawdzania czy połączony itp.
    -odbierz dane z UART
    -wyślij dane na serwer
    Takie minimum.

    0
  • #9 22 Gru 2015 00:43
    Defozo
    Poziom 17  

    Odbieranie po UART i wysyłanie danych na serwer:

    Kod: lua
    Zaloguj się, aby zobaczyć kod

    Niestety nie wiem, jak dzielić dane.

    0
  • #10 22 Gru 2015 10:05
    piterek-23
    Poziom 32  

    Czy to tak ma wyglądać?

    Kod: lua
    Zaloguj się, aby zobaczyć kod

    Czy jeszcze coś potrzebuje?

    Normalnie ten język LUA to dla mnie jakaś czarna magia-nie rozumiem go w ogóle :(

    0
  • #11 22 Gru 2015 21:53
    piterek-23
    Poziom 32  

    Siedzę dziś przy tym cały wieczór i prawie działa, no właśnie prawie :|
    Zmajstrowałem coś takiego:

    Kod: lua
    Zaloguj się, aby zobaczyć kod

    Działam na razie z jedną daną aby jakoś to opanować-tu akurat temperatura "temp"
    ESP widzę w routerze.
    uC posyła daną w formacie "xx.x"
    ESP niby coś wysyła (widzę po diodzie) ale do serwera nic nie dociera :cry:
    Dana jest odbierana przez ESP bo gdy podłącze się konwerterem USB-UART pod ESP to daną z uC mam na terminalu.

    0