nodeMCU tutorials
16 berichten
• Pagina 1 van 2 • 1, 2
nodeMCU tutorials
Ik zag laatst hier op het forum de lovende woorden van Nico voor het nodeMCU bordje.
Inmiddels heb ik er een binnen en druk aan de slag gegaan met o.a. deze website: https://learn.adafruit.com/adafruit-huz ... rduino-ide
Werkt allemaal prima, maar nu zou ik via een button op een website een ledje op de nodeMCU willen bedienen, maar na veel zoekwerk kan ik nergens een voorbeeld vinden die met de arduino code werkt.
Kent iemand toevallig nog een goede website?
Inmiddels heb ik er een binnen en druk aan de slag gegaan met o.a. deze website: https://learn.adafruit.com/adafruit-huz ... rduino-ide
Werkt allemaal prima, maar nu zou ik via een button op een website een ledje op de nodeMCU willen bedienen, maar na veel zoekwerk kan ik nergens een voorbeeld vinden die met de arduino code werkt.
Kent iemand toevallig nog een goede website?
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: nodeMCU tutorials
Als eens overwogen om gewoon de Arduino standaard wifi web servers sketches te proberen? Alleen dan met de ESP8266 libraries?
Re: nodeMCU tutorials
Wat bedoel je precies Nico, moet ik dan een gewoon wifi bordje gebruiken en niet de esp8266 of kun je die standaard wifi web servers sketches ook gebruiken voor de esp8266
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: nodeMCU tutorials
Ik zou het gewoon proberen. Volgens mij is de aanroep gewoon hetzelfde. Dat is juist het mooie van die nieuwe bordjes. Cross platform ontwikkelen. In feite deden we dat al met de gewone arduinos en de tinies of de due's.
Re: nodeMCU tutorials
Ben eerst maar eens begonnen met een internetshield om wat meer te leren hoe internet werkt met IP adressen en heel dat gedoe, na lang zoeken deze site gevonden:
http://www.instructables.com/id/Arduino ... /?ALLSTEPS
De eerste 2 voorbeeldjes werkte wel, maar bij de derde om een ledje aan te krijgen op de arduino via een website lukt nog niet, enig idee wat ik verkeerd doe
ps. Ik krijg die syntax highlight ook niet werkend
[code2=]if[/code2]
http://www.instructables.com/id/Arduino ... /?ALLSTEPS
De eerste 2 voorbeeldjes werkte wel, maar bij de derde om een ledje aan te krijgen op de arduino via een website lukt nog niet, enig idee wat ik verkeerd doe
- Code: Alles selecteren
/*
Web Server Demo
thrown together by Randy Sarafan
Allows you to turn on and off an LED by entering different urls.
To turn it on:
http://your-IP-address/$1
To turn it off:
http://your-IP-address/$2
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Connect an LED to pin D2 and put it in series with a 220 ohm resistor to ground
Based almost entirely upon Web Server by Tom Igoe and David Mellis
Edit history:
created 18 Dec 2009
by David A. Mellis
modified 4 Sep 2010
by Tom Igoe
*/
#include <SPI.h>
#include <Ethernet.h>
boolean incoming = 0;
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xB2, 0x3D };
IPAddress ip(191,168,1,131); //<<< ENTER YOUR IP ADDRESS HERE!!!
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
void setup()
{
pinMode(13, OUTPUT);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
}
void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
//reads URL string from $ to first blank space
if(incoming && c == ' '){
incoming = 0;
}
if(c == '$'){
incoming = 1;
}
//Checks for the URL string $1 or $2
if(incoming == 1){
Serial.println(c);
if(c == '1'){
Serial.println("ON");
digitalWrite(13, HIGH);
}
if(c == '2'){
Serial.println("OFF");
digitalWrite(13, LOW);
}
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}
ps. Ik krijg die syntax highlight ook niet werkend
[code2=]if[/code2]
Re: nodeMCU tutorials
Na nog wat zoeken toch nog een voor mij werkend voorbeeld gevonden en nog mooier voorbeeld ook.
Nu nog kijken of het lukt met de nodeMCU
Nu nog kijken of het lukt met de nodeMCU
- Code: Alles selecteren
/*--------------------------------------------------------------
Program: eth_websrv_LED
Description: Arduino web server that serves up a web page
allowing the user to control an LED
Hardware: - Arduino Uno and official Arduino Ethernet
shield. Should work with other Arduinos and
compatible Ethernet shields.
- LED and resistor in series connected between
Arduino pin 2 and GND
Software: Developed using Arduino 1.0.3 software
Should be compatible with Arduino 1.0 +
References: - WebServer example by David A. Mellis and
modified by Tom Igoe
- Ethernet library documentation:
http://arduino.cc/en/Reference/Ethernet
Date: 11 January 2013
Author: W.A. Smith, http://startingelectronics.org
--------------------------------------------------------------*/
#include <SPI.h>
#include <Ethernet.h>
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xB2, 0x3D };
IPAddress ip(192,168,1,131); // IP address, may need to change depending on network
EthernetServer server(80); // create a server at port 80
String HTTP_req; // stores the HTTP request
boolean LED_status = 0; // state of LED, off by default
void setup()
{
Ethernet.begin(mac, ip); // initialize Ethernet device
server.begin(); // start to listen for clients
Serial.begin(9600); // for diagnostics
pinMode(2, OUTPUT); // LED on pin 2
}
void loop()
{
EthernetClient client = server.available(); // try to get client
if (client) { // got client?
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) { // client data available to read
char c = client.read(); // read 1 byte (character) from client
HTTP_req += c; // save the HTTP request 1 char at a time
// last line of client request is blank and ends with \n
// respond to client only after last line received
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// send web page
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<title>Arduino LED Control</title>");
client.println("</head>");
client.println("<body>");
client.println("<h1>LED</h1>");
client.println("<p>Click to switch LED on and off.</p>");
client.println("<form method=\"get\">");
ProcessCheckbox(client);
client.println("</form>");
client.println("</body>");
client.println("</html>");
Serial.print(HTTP_req);
HTTP_req = ""; // finished with request, empty string
break;
}
// every line of text received from the client ends with \r\n
if (c == '\n') {
// last character on line of received text
// starting new line with next character read
currentLineIsBlank = true;
}
else if (c != '\r') {
// a text character was received from client
currentLineIsBlank = false;
}
} // end if (client.available())
} // end while (client.connected())
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection
} // end if (client)
}
// switch LED and send back HTML for LED checkbox
void ProcessCheckbox(EthernetClient cl)
{
if (HTTP_req.indexOf("LED2=2") > -1) { // see if checkbox was clicked
// the checkbox was clicked, toggle the LED
if (LED_status) {
LED_status = 0;
}
else {
LED_status = 1;
}
}
if (LED_status) { // switch LED on
digitalWrite(2, HIGH);
// checkbox is checked
cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \
onclick=\"submit();\" checked>LED2");
}
else { // switch LED off
digitalWrite(2, LOW);
// checkbox is unchecked
cl.println("<input type=\"checkbox\" name=\"LED2\" value=\"2\" \
onclick=\"submit();\">LED2");
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: nodeMCU tutorials
Je zal wel eea moeten veranderen als je de default LED wilt gebruiken op de Node. Die zit daar op D0 en niet op 2. Bij de nodeMCU moet je expliciet de digitale poort specificeren. Dus D0, D1 etc.
Re: nodeMCU tutorials
Ik had je voorbeeldje (blink) al gevonden Nico, en dat werkt wel, maar kom niet echt verder.
Bedoel je deze voorbeeldjes: https://www.arduino.cc/en/Tutorial/LibraryExamples
En moet ik dan #include <WiFi101.h> vervangen? en waarmee dan, want als ik het vervang door #include <ESP8266WiFi.h> krijg ik een hoop foutmeldingen
Bedoel je deze voorbeeldjes: https://www.arduino.cc/en/Tutorial/LibraryExamples
En moet ik dan #include <WiFi101.h> vervangen? en waarmee dan, want als ik het vervang door #include <ESP8266WiFi.h> krijg ik een hoop foutmeldingen
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: nodeMCU tutorials
Je had toch een voorbeeld gepost?
Re: nodeMCU tutorials
Sorry Nico, maar ik begrijp er niets meer van. Hier zeg je:
Zijn dit dan de standaard wifi web servers: https://www.arduino.cc/en/Tutorial/LibraryExamples onder het hoofdstuk wifi shield 101 library
In het voorbeeld dat ik gepost heb staat #include <Ethernet.h> moet ik die dan vervangen door #include <ESP8266WiFi.h>???
Als eens overwogen om gewoon de Arduino standaard wifi web servers sketches te proberen? Alleen dan met de ESP8266 libraries?
Zijn dit dan de standaard wifi web servers: https://www.arduino.cc/en/Tutorial/LibraryExamples onder het hoofdstuk wifi shield 101 library
In het voorbeeld dat ik gepost heb staat #include <Ethernet.h> moet ik die dan vervangen door #include <ESP8266WiFi.h>???
16 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten