Skip to content
Snippets Groups Projects
Commit b4b92c17 authored by aliceg3's avatar aliceg3
Browse files

wifi stuff

parent 7858d416
No related branches found
No related tags found
No related merge requests found
const int motorPin1 = 27;
const int motorPin2 = 26;
const int motorPin3 = 15;
const int motorPin4 = 13;
AccelStepper myStepper(AccelStepper::FULL4WIRE, motorPin1, motorPin2, motorPin3, motorPin4);
void setup() {
// put your setup code here, to run once:
serial.begin(9600)
Serial.begin(9600)
float steps_per_rotation=200;
float start_max_speed = 200; // in rpm, arbitrary start max speed, for testing*****
setMaxSpeed(start_max_speed); // based on chart maybe 1000 but that seems way too fast
setSpeed(start_max_speed*steps_per_rotation*60); // ***testing, may work for constant speed
myStepper.setMaxSpeed(start_max_speed); // based on chart maybe 1000 but that seems way too fast
myStepper.setSpeed(start_max_speed*steps_per_rotation*60); // ***testing, may work for constant speed
float min_speed = 20; // set to be the speed at which we apply the goal torque, based on chart maybe 600 but that seems too fast
float same_step_range = 10; // min number of steps allowed before increasing the same position count, test this range*****
float same_position_count = 0; // number of consecutive steps where the current position is within same_step_range as the previous position
float previous_pos=currentPosition()-same_step_range
float previous_pos=myStepper.currentPosition()-same_step_range
float new_pos=200 // 200(1 rotation) is arbitrary number of steps to increase each iteration, **possibly make new target proportional to speed
float reduce_rpm = 12; // when using set speed, reduces speed by 40 steps per second. => 40*60/200 = 2400/200 = 12rpm (rpm/0.3=num)
}
void loop() {
// put your main code here, to run repeatedly:
runToPosition(1)
myStepper.runToPosition(1)
while(cur_speed>=min_speed){
runToNewPosition(targetPosition()+new_pos);
if(currentPosition()-previous_pos<same_step_range){
myStepper.runToNewPosition(myStepper.targetPosition()+new_pos);
if(myStepper.currentPosition()-previous_pos<same_step_range){
same_position_count+=1;
}
else{
......@@ -27,9 +35,9 @@ void loop() {
}
if(same_position_count>1){ // check if it has stayed in the same position for the past two turns.
// setMaxSpeed(cur_speed-=40); // use if there is no way to implement this with the constant speed function.
setSpeed(speed()-(reduce_rpm/0.3));
myStepper.setSpeed(myStepper.speed()-(reduce_rpm/0.3));
}
previous_pos=currentPosition()
previous_pos=myStepper.currentPosition()
}
......
const char MAIN_page[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<style>
.card{
max-width: 400px;
min-height: 250px;
background: #02b875;
padding: 30px;
box-sizing: border-box;
color: #FFF;
margin:20px;
box-shadow: 0px 2px 18px -4px rgba(0,0,0,0.75);
}
</style>
<body>
<div class="card">
<h4>The ESP32 Update web page without refresh</h4><br>
<h1>Sensor Value:<span id="ADCValue">0</span></h1><br>
<br><a href="https://circuits4you.com">Circuits4you.com</a>
</div>
<script>
setInterval(function() {
// Call a function repetatively with 2 Second interval
getData();
}, 1000); //2000mSeconds update rate
function getData() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("ADCValue").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "readADC", true);
xhttp.send();
}
</script>
</body>
</html>
)=====";
\ No newline at end of file
/*
* ESP32 AJAX Demo
* Updates and Gets data from webpage without page refresh
* https://circuits4you.com
*/
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include "index.h" //Web page header file
#include <arduino-timer.h>
WebServer server(80);
//Enter your SSID and PASSWORD
const char* ssid = "Connectify-ESP32 Boot";
const char* password = "temp_pass1234";
int timerCounter = 0;
int intervals[13];
int intervalValues[13];
//===============================================================
// This routine is executed when you open its IP in browser
//===============================================================
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
bool handlePressureIntervalCall (void *argument) {
int a = analogRead(34);
int aModulus = a % 300;
intervals[aModulus] += 1;
intervalValues[aModulus] += a;
timerCounter ++;
Serial.println("Value read: " + a );
Serial.println("Timer counter: " + timerCounter);
if (timerCounter == 10) {
return false;
timerCounter = 0;
}
else {
return true;
}
}
void handleADC() {
intervals[13];
intervalValues[13];
Timer<> timer;
timer.every(10, handlePressureIntervalCall);
timer.tick();
int maxIntervalSize = intervals[0];
int maxIntervalIndex = 0;
for (int index = 1; index < 13; index ++) {
if (intervals[index] > maxIntervalSize) {
maxIntervalIndex = index;
maxIntervalSize = intervals[index];
}
}
Serial.println("maxIntervalIndex: " + maxIntervalIndex);
int adcValueInt = intervalValues[maxIntervalIndex]/maxIntervalSize;
String adcValue = String(adcValueInt);
Serial.println("adcValue: " + adcValue);
Serial.println("******************************");
server.send(200, "text/plane", adcValue); //Send ADC value only to client ajax request
}
//===============================================================
// Setup
//===============================================================
void setup(void){
Serial.begin(115200);
Serial.println();
Serial.println("Booting Sketch...");
/*
//ESP32 As access point
WiFi.mode(WIFI_AP); //Access Point mode
WiFi.softAP(ssid, password);
*/
//ESP32 connects to your wifi -----------------------------------
WiFi.mode(WIFI_STA); //Connectto your wifi
WiFi.begin(ssid, password);
Serial.println("Connecting to ");
Serial.print(ssid);
//Wait for WiFi to connect
while(WiFi.waitForConnectResult() != WL_CONNECTED){
Serial.print(".");
}
//If connection successful show IP address in serial monitor
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
//----------------------------------------------------------------
server.on("/", handleRoot); //This is display page
server.on("/readADC", handleADC);//To get update of ADC Value only
server.begin(); //Start server
Serial.println("HTTP server started");
}
//===============================================================
// This routine is executed when you open its IP in browser
//===============================================================
void loop(void){
server.handleClient();
delay(1);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment