Нужно переписать скетч с esp8266 на arduino

subeday
Offline
Зарегистрирован: 06.04.2021

Есть работающий скетч на wemos d1 он собирает показания датчиков температуры, давления и отправляет это периодично в базу данных сайта, на котором все это дело собирается и хранится. На данный момент отправка осуществляется по средствам wi fi самого вемоса. Из за нехватки аналоговых входов на вемосе было решено сменить его на ардуино нано и ethernet модуль wiznet5500. После потраченного дня на борьбу с подбором нужных библиотек и попыток переписать тоже самое другими словами пришло понимание что это невозможно или не мое). 

Прикладываю имеющийся код.

#include <ESP8266HTTPClient.h>
 
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>
 
#define ONE_WIRE_BUS D4
 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
 
char ssid[] = "Teasa-mikrot"; // Название WiFi сети
char pass[] = "69698651"; // Пароль к WiFi сети
 
 
int pressurePin = A0;
int P1 = 0;
int P0 = 0;
 
 
void setup () 
  Serial.begin(9600);
  WiFi.begin(ssid, pass); 
  while (WiFi.status() != WL_CONNECTED) { 
    delay(1000);
    Serial.println("Connecting.."); 
  } 
  sensors.begin();
}
 
void loop() { 
  P0 = analogRead(pressurePin);
  P0 = P0/1.57;
  P1 = map(P0, 0, 1023, 0, 120);
  sendTemps(); 
  delay(10000);    //Send a request every 30 seconds 
}
 
void sendTemps()
{
  
  sensors.requestTemperatures();
  float temp1 = sensors.getTempCByIndex(0); 
  float temp2 = sensors.getTempCByIndex(1); 
  float temp3 = sensors.getTempCByIndex(2); 
  float temp4 = sensors.getTempCByIndex(3); 
  char str[200];
  
  
  
  sprintf (str, "Temperatures: t1:%.2f, P1:%d", temp1, P1);
  Serial.println(str);
 
  if (WiFi.status() == WL_CONNECTED) {
    char url[200];
    
    sprintf (url, "http://тут адрес сайта--p1ai/set-params?t1=%.2f&P1=%d", temp1, P1);
    Serial.println(url);
 
    HTTPClient http; 
    http.begin(url);
    int httpCode = http.GET();  //Send the request 
    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println("Sent to server, response: " + payload);
    } 
    else {
      Serial.println("http status: " + httpCode);  
    }
    http.end();   //Close connection 
  }
  else {
    Serial.print("not connected"); 
  }

sadman41
Offline
Зарегистрирован: 19.10.2016

Переписать можно, другой вопрос - имеет ли это смысл.
Решитесь, пишите : wrk.sadman@gmail.com

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

sadman41 пишет:
Переписать можно, другой вопрос - имеет ли это смысл.

Не имеет. Проще поставить CD4051 на единственный аналоговый порт Вемоса . Дешевле выйдет

subeday
Offline
Зарегистрирован: 06.04.2021

Хоть бы примерно сориентировали по цене, а то может и не дешевле.  

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

По цене Вас уже сориентировали: купить железку будет дешевле.

В качестве варианта: вместо мультиплексора можно использовать внешний АЦП.

man9913
Offline
Зарегистрирован: 19.03.2016

а что не получилось с wiznet5500? c обычным http там проблем быть не должно. могу помочь решить проблемы с wiznet5500, стоимость от 1 т.р., man9913@mail.ru

Morroc
Offline
Зарегистрирован: 24.10.2016

subeday пишет:

Хоть бы примерно сориентировали по цене, а то может и не дешевле.  

Это как ? оно же 20р в чипдипе )