• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос ESP-01 + arduino mini pro

TAHKICT

New member
Начал испытание платки ESP8266 ESP-01.

Подключение по схеме
esp8266 arduino pro mini.png

Подскажите, пожалуйста, какую библиотеку использовать и может пример самого простого скетча для проверки работоспособности.

Вообще, данный модуль мне необходим для отправки и получения HTTP запросов.
 

kab

New member
@TAHKICT
На этом сайте поищите сообщения пользователя tretyakov_sa. У него в подписи сообщений ссылка на его видеокурсы. Очень интересно и полезно.

Зы. Можно найти его сообщение через ссылку, указанную в "подвале" у меня
 

=AK=

New member
  1. Земля Ардуино должна быть соединена с землей ESP
  2. Для согласования уровней надо поставить хотя бы делитель R1, R2, например, R1=1k, R2=2.2k
  3. На входе питания ESP желательно поставить электролит C1=470...1000 uF
  4. Отдельный блок питания для ESP не нужен и даже вреден, USB дает достаточно тока для ESP, особенно когда стоит C1
  5. Регулятор 3.3В для ESP должен быть способен выдать не менее 0.5А
esp8266 arduino pro mini.png
Подскажите, пожалуйста, какую библиотеку использовать и может пример самого простого скетча для проверки работоспособности.
Когда поставите Ардуино для ESP, там полнО примеров, берите любой. При этом вам внешний Ардуино будет не нужен. Сам ESP может работать как Ардуино и исполнять скетчи.

И вообще, чтобы не париться с железом и подключениями, купите лучше модуль NodeMCU и грузите в него ардуиновские скетчи для ESP. В этом модуле "в одном флаконе" уже все собрано и правильно подключено: и ESP , и питание, и UART-USB.

 
Последнее редактирование:

ewas

New member
у меня есть такая идея входные 5 аналоговых, и цифровой, выход 1 цифровой, для этого подходит любая ардуинка, и вот это всё хочу по вай-фай пересылать на МД, конечно хочу использовать ЕСП-12, как это организовать только ЕСП не подходит мало аналоговых. Может у кого есть ссылка как это осуществить.
A I2C расширителя у меня нет, заказывать это два месяца может пройти, будет не актуально уже. Да это было бы здорово использовать PCF8591 или ADS1115 под них уже ESPEASY предусмотрена опция, но как уже писал нет у меня пока таких хочу сгородить из того что имеется.
нашёл более менее нормальный скетч с обезьянить, но всё же есть вопросы к понимающим, всё ли правильно понял, я свои комментарии в скетче выделил, где мне не совсем понято как с оригинала thingsboardServer перенаправить к своему Мajordomo серверу.
И поскольку нет на этом форуме рабочего скетча по применению большего числа аналоговых входов для ESP8266, может и другим подойдёт.
ещё на счёт отладки ESP8266 у меня ESP12 (хотел бы на ESP14 - валяется без дела несколько штук). Прошью её http://www.espruino.com/files/ESP8266_A ... 2-512k.bin как и предлагает тут https://www.hackster.io/thingsboard/tem ... qtt-5e26eb и что с ней дальше ни каких настроек она как вай-фай передатчик-антенна работать будет без ни каких AP настроек?
Такие вопросы есть по коду:

#define WIFI_AP "YOUR_WIFI_AP" // здесь мой ssid
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" //здесь мой password
#define TOKEN "ARDUINO_DEMO_TOKEN" //что с этим за комментировать?
char thingsboardServer[] = "YOUR_THINGSBOARD_HOST_OR_IP"; //тут я понимаю надо вписать IP Маего сервера
client.setServer( thingsboardServer, 1883 );//порт MQTT Маего 1883
soft.begin(9600); // тут может быт проблема с скоростью 9600 в инструкции пишут: "Обратите внимание, что скорость последовательной передачи ESP8266 должна быть установлена равной 9600 следующей командой AT: AT + UART_DEF = 9600,8,1,0,0"
if ( client.connect("Arduino Uno Device", TOKEN, NULL) ) // и тут токен запрашивает а начинаеш стиран вряд ли ошибок избежать

Код:
#include "DHT.h"
#include <WiFiEspClient.h>
#include <WiFiEsp.h>
#include <WiFiEspUdp.h>
#include <PubSubClient.h>
#include "SoftwareSerial.h"

#define WIFI_AP "YOUR_WIFI_AP"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"

#define TOKEN "ARDUINO_DEMO_TOKEN"

// DHT
#define DHTPIN 4
#define DHTTYPE DHT22

char thingsboardServer[] = "YOUR_THINGSBOARD_HOST_OR_IP";
// Initialize the Ethernet client object
WiFiEspClient espClient;

// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);

PubSubClient client(espClient);

SoftwareSerial soft(2, 3); // RX, TX

int status = WL_IDLE_STATUS;
unsigned long lastSend;

void setup() {
  // initialize serial for debugging
  Serial.begin(9600);
  dht.begin();
  InitWiFi();
  client.setServer( thingsboardServer, 1883 );
  lastSend = 0;
}

void loop() {
  status = WiFi.status();
  if ( status != WL_CONNECTED) {
    while ( status != WL_CONNECTED) {
      Serial.print("Attempting to connect to WPA SSID: ");
      Serial.println(WIFI_AP);
      // Connect to WPA/WPA2 network
      status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
      delay(500);
    }
    Serial.println("Connected to AP");
  }

  if ( !client.connected() ) {
    reconnect();
  }

  if ( millis() - lastSend > 1000 ) { // Update and send only after 1 seconds
    getAndSendTemperatureAndHumidityData();
    lastSend = millis();
  }

  client.loop();
}

void getAndSendTemperatureAndHumidityData()
{
  Serial.println("Collecting temperature data.");

  // Reading temperature or humidity takes about 250 milliseconds!
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");

  String temperature = String(t);
  String humidity = String(h);


  // Just debug messages
  Serial.print( "Sending temperature and humidity : [" );
  Serial.print( temperature ); Serial.print( "," );
  Serial.print( humidity );
  Serial.print( "]   -> " );

  // Prepare a JSON payload string
  String payload = "{";
  payload += "\"temperature\":"; payload += temperature; payload += ",";
  payload += "\"humidity\":"; payload += humidity;
  payload += "}";

  // Send payload
  char attributes[100];
  payload.toCharArray( attributes, 100 );
  client.publish( "v1/devices/me/telemetry", attributes );
  Serial.println( attributes );
}

void InitWiFi()
{
  // initialize serial for ESP module 
  soft.begin(9600);
 
  // initialize ESP module
  WiFi.init(&soft);
  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue
    while (true);
  }

  Serial.println("Connecting to AP ...");
  // attempt to connect to WiFi network
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(WIFI_AP);
    // Connect to WPA/WPA2 network
    status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);
    delay(500);
  }
  Serial.println("Connected to AP");
}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Connecting to Thingsboard node ...");
    // Attempt to connect (clientId, username, password)
    if ( client.connect("Arduino Uno Device", TOKEN, NULL) ) {
      Serial.println( "[DONE]" );
    } else {
      Serial.print( "[FAILED] [ rc = " );
      Serial.print( client.state() );
      Serial.println( " : retrying in 5 seconds]" );
      // Wait 5 seconds before retrying
      delay( 5000 );
    }
  }
}

Результат:
[WiFiEsp] Initializing ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Cannot initialize ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
WiFi shield not present
:(

Спасибо за помощ
 
Сверху Снизу