Нужно переписать скетч с esp8266 на arduino
- Войдите на сайт для отправки комментариев
Втр, 06/04/2021 - 08:21
Есть работающий скетч на 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");
}
}
Переписать можно, другой вопрос - имеет ли это смысл.
Решитесь, пишите : wrk.sadman@gmail.com
Не имеет. Проще поставить CD4051 на единственный аналоговый порт Вемоса . Дешевле выйдет
Хоть бы примерно сориентировали по цене, а то может и не дешевле.
По цене Вас уже сориентировали: купить железку будет дешевле.
В качестве варианта: вместо мультиплексора можно использовать внешний АЦП.
а что не получилось с wiznet5500? c обычным http там проблем быть не должно. могу помочь решить проблемы с wiznet5500, стоимость от 1 т.р., man9913@mail.ru
Хоть бы примерно сориентировали по цене, а то может и не дешевле.
Это как ? оно же 20р в чипдипе )