Espruino:Примеры/WiFi-термометр: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 7: Строка 7:
[[File:WiFi_Enabled_Thermometer_graph.png|center]]
[[File:WiFi_Enabled_Thermometer_graph.png|center]]


В этой статье мы расскажем, как создать простой WiFi-термометр. Мы воспользуемся датчиком DS18B20, с помощью которого будем считывать температуру, а также создадим график, на котором будем показывать динамику изменения температурных данных.
В этой статье мы расскажем, как создать простой [[WiFi-термометр]]. Мы воспользуемся датчиком [[DS18B20]], с помощью которого будем считывать температуру, а также создадим график, на котором будем показывать динамику изменения температурных данных.


Мы также воспользуемся WiFi-модулем CC3000, на котором создадим веб-сервер. Запрос к этому веб-серверу будет показывать веб-страницу с графиком, о котором говорилось выше.
Мы также воспользуемся WiFi-модулем [[CC3000]], на котором создадим веб-сервер. Запрос к этому веб-серверу будет показывать веб-страницу с графиком, о котором говорилось выше.


== Нам понадобятся ==
== Нам понадобятся ==


* Одна [https://www.espruino.com/Original плата Espruino]
* Одна [https://www.espruino.com/Original плата Espruino]
* Температурный датчик [https://www.espruino.com/DS18B20 DS18B20] и резистор на 4.7 кОм
* Температурный датчик [https://www.espruino.com/DS18B20 DS18B20] и [[резистор]] на [[4.7 кОм]]
* WiFi-модуль [https://www.espruino.com/CC3000 CC3000]
* WiFi-модуль [https://www.espruino.com/CC3000 CC3000]


== Подсоединение ==
== Подсоединение ==


* О том, как подключить модуль CC3000, читайте в [https://www.espruino.com/CC3000 этой статье].
* О том, как подключить модуль [[CC3000]], читайте в [https://www.espruino.com/CC3000 этой статье].
* Температурный датчик DS18B20 подключается следующим образом:
* Температурный датчик [[DS18B20]] подключается следующим образом:


Провод датчика
{| class="wikitable"
Espruino
|-
Резистор на 4.7 кОм
! Провод датчика !! Espruino !! Резистор на 4.7 кОм
Чёрный
|-
GND
| Чёрный || GND ||
 
|-
Красный
| Красный || 3.3v || 1-ый провод
3.3v
|-
1-ый провод
| Белый || A1 || 2-ой провод
Белый
|}
A1
2-ой провод


== Код ==
== Код ==


Подключитесь к Espruino, скопируйте код ниже в правую часть Web IDE (не забудьте поменять в нём название точки доступа и пароль на те, что используются для вашей WiFi-сети), а затем кликните на кнопку загрузки кода на Espruino.
Подключитесь к [[Espruino]], скопируйте код ниже в правую часть [[Web IDE]] (не забудьте поменять в нём название точки доступа и пароль на те, что используются для вашей [[WiFi-сети]]), а затем кликните на кнопку загрузки кода на [[Espruino]].


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript" enclose="div">
Строка 83: Строка 81:
</syntaxhighlight>
</syntaxhighlight>


Вот и всё. Инициализация CC3000 требует времени, так что вам, возможно, придётся подождать минуту-две. Код будет печатать температуру каждые две секунды, а после подключения напечатает свой IP-адрес. Затем к этому IP-адресу можно будет подключиться в веб-браузере, что откроет страницу с графиком изменения температурных данных, показывающим 30 последних считываний (этот график будет обновляться каждые 5 секунд).
Вот и всё. Инициализация [[CC3000]] требует времени, так что вам, возможно, придётся подождать минуту-две. Код будет печатать температуру каждые две секунды, а после подключения напечатает свой [[IP-адрес]]. Затем к этому [[IP-адрес]]у можно будет подключиться в веб-браузере, что откроет страницу с графиком изменения температурных данных, показывающим 30 последних считываний (этот график будет обновляться каждые 5 секунд).


=См.также=
=См.также=

Версия от 18:19, 1 июля 2021

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


WiFi-термометр[1]

В этой статье мы расскажем, как создать простой WiFi-термометр. Мы воспользуемся датчиком DS18B20, с помощью которого будем считывать температуру, а также создадим график, на котором будем показывать динамику изменения температурных данных.

Мы также воспользуемся WiFi-модулем CC3000, на котором создадим веб-сервер. Запрос к этому веб-серверу будет показывать веб-страницу с графиком, о котором говорилось выше.

Нам понадобятся

Подсоединение

  • О том, как подключить модуль CC3000, читайте в этой статье.
  • Температурный датчик DS18B20 подключается следующим образом:
Провод датчика Espruino Резистор на 4.7 кОм
Чёрный GND
Красный 3.3v 1-ый провод
Белый A1 2-ой провод

Код

Подключитесь к Espruino, скопируйте код ниже в правую часть Web IDE (не забудьте поменять в нём название точки доступа и пароль на те, что используются для вашей WiFi-сети), а затем кликните на кнопку загрузки кода на Espruino.

var ow = new OneWire(A1);
var sensor = require("DS18B20").connect(ow);
var history = new Float32Array(30);

setInterval(function() {
  var temp = sensor.getTemp();
  console.log(temp);
  // Двигаем «историю» назад:
  for (var i=1;i<history.length;i++)
    history[i-1]=history[i];
  // Вставляем новые данные в конце:
  history[history.length-1] = temp;
}, 2000);


function onPageRequest(req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<html><head><meta http-equiv="refresh" content="5"></head>'+
            '<body><canvas id="canvas" width="200" height="200" style="border:1px solid #888;"></canvas><script>');
  res.write('var d='+JSON.stringify(history)+';'+
'var c=document.getElementById("canvas").getContext("2d");'+
'c.moveTo(0,100 - (d[0]-d[d.length-1])*10);'+
'for (i in d) c.lineTo(i*200/(d.length-1),100 - (d[i]-d[d.length-1])*10);'+
'c.stroke()'+
'</script>');
  res.end('</body></html>');
}


var wlan;
function onInit() {
  wlan = require("CC3000").connect();
  wlan.connect( "AccessPointName", "WPA2key", function (s) { 
    if (s=="dhcp") {
      require("http").createServer(onPageRequest).listen(80);
      console.log("Сервер создан на "+wlan.getIP().ip);
    }
  });
}

onInit();

Вот и всё. Инициализация CC3000 требует времени, так что вам, возможно, придётся подождать минуту-две. Код будет печатать температуру каждые две секунды, а после подключения напечатает свой IP-адрес. Затем к этому IP-адресу можно будет подключиться в веб-браузере, что откроет страницу с графиком изменения температурных данных, показывающим 30 последних считываний (этот график будет обновляться каждые 5 секунд).

См.также

Внешние ссылки