2022年7月24日日曜日

espr2 softap receiver and raspico sender via uart

 Raspberry Pi Picoに無線機能を付けてみました - 自由に工作中 (hatenablog.com)

センダー間隔を4秒にとらずに原本のように1秒にとると、とても反応が鈍くなる

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

#define WIFI_SSID "your-ssid"  //ネットワーク名。各自入力する
#define WIFI_PWD "your-password" //パスワード。各自入力する

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_SSIDWIFI_PWD);
  Serial.begin(115200);
    
  server.on("/", [](){ // 無名関数の利用、以下の定義により5秒ごとにブラウザ更新
    
  String str = "";  
  String msg = ""; 
  int strlen = 0;
  String str_send = "";
            
   if ( Serial.available() ) {
       {  
       str = Serial.readStringUntil(';');  //「;」を検出したら終了 
       str += Serial.readStringUntil(';');  //「;」を検出したら終了
       strlen = str.length();
       str_send = str.substring(str.length()-5,str.length()); //データ抽出
              
       };
  
  }
    msg += "<!DOCTYPE html>";
    msg += "<html><head>";
    msg += "<meta http-equiv='refresh' content='5'>"; //5秒おきに更新
    msg += "<title>Sensor</title><body>";
    msg += "<font size='5'>" + str  + "</font>"; 
    msg += "<br>";
    msg += "<font size='5'>" + str_send  + "</font>"; 
    msg += "<br>";
    msg += "</body></html>";
    server.send(200, "text/html", msg);
  
  });
 
  server.begin();

}

void loop() {
  server.handleClient();
}


ーーーーーーーーーーーーーーーーーーーーーーーーーーー

from machine import UART, Pin
import time

PIN_ADC = 26
VREF = 3.3
adc = machine.ADC( PIN_ADC ) 

uart0 = UART(0, baudrate=115200, tx=Pin(12), rx=Pin(13))

while True:
    value = adc.read_u16()
    volt = (value /65535 * VREF)
    voltx = "{0:.3f}".format(volt) + ";" #ケタ数を揃えて;を追加
    time.sleep(4)

   #原本では1だが、uartのバッファリングが効いて5秒ごとの更新で途中経過も全部でる

   #4秒ごとにしておくと、そこそこの表示となるようだ


    uart0.write(voltx)

0 件のコメント:

コメントを投稿