ーーーーーーーsdc−−−−−−−−−−−
ESP8266でSPI通信する - Qiita? のピン配置でvccはvout(5V仕様にて) uno用の
サンプルスケッチ sd/readwrite.inoのSD.begin(4)をbegin(15)に変えて成功
CLK | IO14 | default | esp8266 |
MISO | IO12 | default | esp8266 |
MOSI | IO13 | default | esp8266 |
CS | IO15 | default | esp8266 |
--------rtc---------------------------------------------------------
ESPr Developerを使って、温度を測定し、サーバー上のSQLiteファイルに記録してみる | KatsEye (kats-eye.net) を参考に vccはvoutよりもらう(5V駆動にて)
esp32のRTC用のスケッチに Wire.begin(12,14) // SDA,SCL を加えて成功
------------dht11-----------------------------
ESP8266とDHT11とAmbientを使って部屋の温度と湿度をグラフ化 - Qiita
ambientのつかいかたまで載っている 良品サイト
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ESP8266 with BME280 using Arduino IDE (Pressure, Temperature, Humidity) | Random Nerd Tutorials sda4,scl5をカスケードしてbme は3v、
lcdはVoutでとり(あとで3V3にしておいた、安全のため、字はうすくなるが)
Gndは共通として以下のコードで成功
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
LiquidCrystal_I2C lcd(0x27,20,4); // 手持ちの20文字4行のディスプレイの設定
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
unsigned long delayTime;
void setup()
{ Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
// initialize the lcd
lcd.init(); // Print a message to the LCD.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Hello, world!");
lcd.setCursor(2,1);
lcd.print("Ywrobot Arduino!");
lcd.setCursor(1,2);
lcd.print("Arduino LCM IIC 2004");
lcd.setCursor(0,3);
lcd.print("Power By Ec-yuan!");
Serial.println();
}
void loop()
{
printValues();
delay(delayTime);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp *C= ");
lcd.print(bme.readTemperature());
lcd.setCursor(0,1);
lcd.print("Press\ KhPa= ");
lcd.print(bme.readPressure() / 100000.0F);
lcd.setCursor(0,2);
lcd.print("Humid %= ");
lcd.print(bme.readHumidity());
lcd.setCursor(0,3);
lcd.print("Alti m= ");
lcdf.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
// Convert temperature to Fahrenheit
/*Serial.print("Temperature = ");
Serial.print(1.8 * bme.readTemperature() + 32);
Serial.println(" *F");*/
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
------------------portal site--------------------------------------------------
https://kats-eye.net/info/category/espr-developer/page/15/
--------------softAp of esp8266 ----------------------------
https://www.mgo-tec.com/esp8266-board-install01-htmlを参考にした
(「Arduino実用入門」の設定でも動いたが)
以下が一番実用的かも ただしIPアドレスが後付けなのでシリアルモニタ必須
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> /* ESPR 自身をAP(アクセスポイント)とする接続 */ const char *ssid = "ESPR"; // APモード:自身のSSID const char *password = "ESPR0001"; // APモード:自身のパスワード ESP8266WebServer server(80); // WEBサーバーポート(80番) const int led = 13; // LED用出力端子番号 /* ブラウザに表示するボタンなど html でString form = に続いて表記 */ // LEDオフ時のHTML String form_off ="<html><head><meta name=viewport content=width=100></head>" "<p>SW OFF</p>" "<form action=ON><input type='submit' value='ON' style='background-color:khaki; color:white;'></form>" "<form action=OF><input type='submit' value='OFF' style='background-color:blue; color:white;'></form>" "</html>"; // LEDオン時のHTML String form_on ="<html><head><meta name=viewport content=width=200></head>" "<p>SW ON</p>" "<form action=ON><input type='submit' value='ON' style='background-color:red; color:yellow;'></form>" "<form action=OF><input type='submit' value='OFF' style='background-color:lightgray; color:gray;'></form>" "</html>"; // 初回送信(LEDオフ時のHTML送信) void handleRoot() { digitalWrite(led, 0); server.send(200, "text/html",form_off); Serial.println("OFF"); } // LEDオン時のHTML送信 void LedOn(){ digitalWrite(led, 1); server.send(200, "text/html", form_on); Serial.println("ON"); } // LEDオフ時のHTML送信 void LedOff(){ digitalWrite(led, 0); server.send(200, "text/html", form_off); Serial.println("OFF"); } // 初回設定 void setup() { pinMode(led,OUTPUT); digitalWrite(led, 0); delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Configuring access point..."); WiFi.softAP(ssid, password); // APモード SSID/パスワード設定 delay(1000); IPAddress myIP = WiFi.softAPIP(); // IPアドレス取得 Serial.print("AP IP address: "); Serial.println(myIP); server.on("/", handleRoot); server.on("/ON", LedOn); server.on("/OF", LedOff); server.begin(); Serial.println("HTTP server started"); } // 連続処理 void loop() { server.handleClient(); }
https://iot.keicode.com/esp8266/esp8266-ap.phpでソフトアクセスポイントの記載あり
この方式の利点は、最初にIPアドレスを固定できることだ
#include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #define WIFI_SSID "適当でいい" #define WIFI_PWD "適当でいい" ESP8266WebServer server( 80 ); IPAddress ip( 192, 168, 10, 1 ); IPAddress subnet( 255, 255, 255, 0 ); void setup() { WiFi.mode(WIFI_AP); WiFi.softAPConfig(ip, ip, subnet); WiFi.softAP(WIFI_SSID, WIFI_PWD); server.on("/", [](){ server.send( 200, "text/html", "<h1>Hello! Web Server!</h1>"); }); server.begin(); } void loop() { server.handleClient(); }
ーーーーーーーーーー両者をあわせるとーーーーーーーーーーーー決定版ーーーー
#include <ESP8266WiFi.h>#include <WiFiClient.h> #include <ESP8266WebServer.h>
/* ESPR 自身をAP(アクセスポイント)とする接続 */const char *ssid = "ESPR"; // APモード:自身のSSIDconst char *password = "ESPR0001"; // APモード:自身のパスワードIPAddress ip(192,168,10,1); //added codeIPAddress subnet(255,255,255,0); // added codeESP8266WebServer server(80); // WEBサーバーポート(80番)const int led = 13; // LED用出力端子番号
/* ブラウザに表示するボタンなど html でString form = に続いて表記 */// LEDオフ時のHTMLString form_off ="<html><head><meta name=viewport content=width=100></head>""<p>SW OFF</p>""<form action=ON><input type='submit' value='ON' style='background-color:khaki; color:white;'></form>""<form action=OF><input type='submit' value='OFF' style='background-color:blue; color:white;'></form>""</html>";
// LEDオン時のHTMLString form_on ="<html><head><meta name=viewport content=width=200></head>""<p>SW ON</p>""<form action=ON><input type='submit' value='ON' style='background-color:red; color:yellow;'></form>""<form action=OF><input type='submit' value='OFF' style='background-color:lightgray; color:gray;'></form>""</html>";
// 初回送信(LEDオフ時のHTML送信)void handleRoot() { digitalWrite(led, 0); server.send(200, "text/html",form_off); Serial.println("OFF");}
// LEDオン時のHTML送信void LedOn(){ digitalWrite(led, 1); server.send(200, "text/html", form_on); Serial.println("ON");}
// LEDオフ時のHTML送信void LedOff(){ digitalWrite(led, 0); server.send(200, "text/html", form_off); Serial.println("OFF");}
// 初回設定void setup() { pinMode(led,OUTPUT); digitalWrite(led, 0); delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Configuring access point...");
WiFi.mode(WIFI_AP); // added code WiFi.softAPConfig(ip,ip,subnet); // added code WiFi.softAP(ssid, password); // APモード SSID/パスワード設定 delay(1000); // IPAddress myIP = WiFi.softAPIP(); // added codeにてIPアドレス取得は不要となる //Serial.print("AP IP address: "); //Serial.println(myIP); server.on("/", handleRoot); server.on("/ON", LedOn); server.on("/OF", LedOff); server.begin(); Serial.println("HTTP server started");}
// 連続処理void loop() { server.handleClient();}
------------ soft access あれこれ ----------------------------------
ESPr Developerをアクセスポイントにして接続する | KatsEye (kats-eye.net)
これが一番実用的だった
Raspberry Pi Pico MicroPython シリアル通信(UART) テスト - JH7UBCブログ (goo.ne.jp)
これをつかうとラズピコにWifi機能がつけられる
Raspberry Pi Picoに無線機能を付けてみました - 自由に工作中 (hatenablog.com)
これが上の発展形で最終形 ソフトアクセスポイントのipを自由に設定できるノウハウ込み
ちなみに、単体使用のためのバッテリはVINをつかう
http://kujiraiken.sit.ac.jp/blog/2019/06/esp-wroom-02-with-battery/ に詳しい
DCモータ作動であれば単三x3は欲しい
0 件のコメント:
コメントを投稿